From 9ab7936e75ecb511d975cdd4e8aa806a2fe3b020 Mon Sep 17 00:00:00 2001
From: Ludovico de Nittis <ludovico.denittis@collabora.com>
Date: Thu, 4 Mar 2021 11:42:44 +0100
Subject: [PATCH] tests: Programmatically generate the tests sysroots

When we build a debian package of steam-runtime-tools, due to the debian
source format 3.0 (native), all our `.so` test files are stripped down.

To avoid losing them we generate the `fake-icds` and `fake-icds-flatpak`
sysroots from the python script `generate-sysroots.py`.

Addresses T26709

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
---
 tests/fake-icds-flatpak/.flatpak-info         |   0
 .../etc/glvnd/egl_vendor.d/invalid.json       |   0
 .../etc/vulkan/icd.d/basename.json            |   7 -
 .../etc/xdg/vulkan/icd.d/invalid.json         |   0
 .../etc/xdg/vulkan/icd.d/invalid.txt          |   0
 tests/fake-icds-flatpak/false.json            |   1 -
 .../share/vulkan/icd.d/relative_new.json      |   7 -
 .../usr/lib/i386-mock-abi/libvulkan_intel.so  |   0
 .../GL/glvnd/egl_vendor.d/relative.json       |   6 -
 .../GL/glvnd/libEGL_relative.so               |   0
 .../GL/vulkan/icd.d/invalid.json              |   1 -
 .../lib/x86_64-mock-abi/libvulkan_intel.so    |   0
 .../vulkan/icd.d/relative.json                |   7 -
 .../vulkan/libvulkan_relative.so              |   0
 .../share/vulkan/icd.d/intel_icd.i686.json    |   7 -
 .../usr/share/glvnd/egl_vendor.d/50_mesa.json |   6 -
 .../share/vulkan/icd.d/intel_icd.x86_64.json  |   7 -
 .../confdir/vulkan/icd.d/invalid.json         |   7 -
 .../datadir/vulkan/icd.d/invalid.json         |   7 -
 .../datahome/vulkan/icd.d/invalid.json        |   6 -
 tests/fake-icds/egl1/AAA.json                 |   1 -
 tests/fake-icds/egl1/BBB.json                 |   0
 tests/fake-icds/egl1/a.json                   |   0
 tests/fake-icds/egl1/b.json                   |   0
 tests/fake-icds/egl1/soname_zlib_dup.json     |   6 -
 tests/fake-icds/egl1/z.json                   |   3 -
 tests/fake-icds/egl2/absolute.json            |   6 -
 tests/fake-icds/egl2/soname_zlib.json         |   6 -
 .../etc/glvnd/egl_vendor.d/invalid.json       |   0
 .../fake-icds/etc/vulkan/icd.d/basename.json  |   7 -
 .../etc/xdg/vulkan/icd.d/invalid.json         |   0
 .../etc/xdg/vulkan/icd.d/invalid.txt          |   0
 tests/fake-icds/false.json                    |   1 -
 .../.local/share/vulkan/icd.d/invalid.json    |   1 -
 tests/fake-icds/no-api-version.json           |   6 -
 tests/fake-icds/no-library.json               |   6 -
 tests/fake-icds/null.json                     |   1 -
 tests/fake-icds/opt/libEGL_myvendor.so        |   0
 tests/fake-icds/str.json                      |   1 -
 .../usr/lib/i386-mock-abi/libvulkan_intel.so  |   0
 .../GL/glvnd/egl_vendor.d/relative.json       |   6 -
 .../GL/vulkan/icd.d/invalid.json              |   1 -
 .../usr/lib/x86_64-mock-abi/libEGL_mesa.so.0  |   0
 .../lib/x86_64-mock-abi/libvulkan_basename.so |   0
 .../lib/x86_64-mock-abi/libvulkan_intel.so    |   0
 .../usr/lib/x86_64-mock-abi/libz.so.1         |   0
 .../vulkan/icd.d/relative.json                |   7 -
 .../share/vulkan/icd.d/intel_icd.i686.json    |   7 -
 .../usr/share/glvnd/egl_vendor.d/50_mesa.json |   6 -
 .../share/vulkan/icd.d/intel_icd.x86_64.json  |   7 -
 .../i386-linux-gnu/libglib2.0-0.symbols       |  11 -
 .../i386-linux-gnu/libtheora0.symbols         |   4 -
 .../i386-linux-gnu/zlib1g.symbols             |   4 -
 .../x86_64-linux-gnu/libglib2.0-0.symbols     |  11 -
 .../x86_64-linux-gnu/libtheora0.symbols       |   4 -
 .../x86_64-linux-gnu/zlib1g.symbols           |   4 -
 .../usr/lib/steamrt/steam-runtime-abi.json    |  48 ---
 tests/generate-sysroots.py                    | 395 ++++++++++++++++++
 tests/graphics.c                              |  13 +-
 tests/meson.build                             |   2 -
 tests/system-info.c                           |   2 +-
 61 files changed, 400 insertions(+), 246 deletions(-)
 delete mode 100644 tests/fake-icds-flatpak/.flatpak-info
 delete mode 100644 tests/fake-icds-flatpak/etc/glvnd/egl_vendor.d/invalid.json
 delete mode 100644 tests/fake-icds-flatpak/etc/vulkan/icd.d/basename.json
 delete mode 100644 tests/fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.txt
 delete mode 100644 tests/fake-icds-flatpak/false.json
 delete mode 100644 tests/fake-icds-flatpak/home/.local/share/vulkan/icd.d/relative_new.json
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/i386-mock-abi/libvulkan_intel.so
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/libEGL_relative.so
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/libvulkan_intel.so
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json
 delete mode 100644 tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/libvulkan_relative.so
 delete mode 100644 tests/fake-icds-flatpak/usr/local/share/vulkan/icd.d/intel_icd.i686.json
 delete mode 100644 tests/fake-icds-flatpak/usr/share/glvnd/egl_vendor.d/50_mesa.json
 delete mode 100644 tests/fake-icds-flatpak/usr/share/vulkan/icd.d/intel_icd.x86_64.json
 delete mode 100644 tests/fake-icds/confdir/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds/datadir/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds/datahome/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds/egl1/AAA.json
 delete mode 100644 tests/fake-icds/egl1/BBB.json
 delete mode 100644 tests/fake-icds/egl1/a.json
 delete mode 100644 tests/fake-icds/egl1/b.json
 delete mode 100644 tests/fake-icds/egl1/soname_zlib_dup.json
 delete mode 100644 tests/fake-icds/egl1/z.json
 delete mode 100644 tests/fake-icds/egl2/absolute.json
 delete mode 100644 tests/fake-icds/egl2/soname_zlib.json
 delete mode 100644 tests/fake-icds/etc/glvnd/egl_vendor.d/invalid.json
 delete mode 100644 tests/fake-icds/etc/vulkan/icd.d/basename.json
 delete mode 100644 tests/fake-icds/etc/xdg/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds/etc/xdg/vulkan/icd.d/invalid.txt
 delete mode 100644 tests/fake-icds/false.json
 delete mode 100644 tests/fake-icds/home/.local/share/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds/no-api-version.json
 delete mode 100644 tests/fake-icds/no-library.json
 delete mode 100644 tests/fake-icds/null.json
 delete mode 100644 tests/fake-icds/opt/libEGL_myvendor.so
 delete mode 100644 tests/fake-icds/str.json
 delete mode 100644 tests/fake-icds/usr/lib/i386-mock-abi/libvulkan_intel.so
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/libEGL_mesa.so.0
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/libvulkan_basename.so
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/libvulkan_intel.so
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/libz.so.1
 delete mode 100644 tests/fake-icds/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json
 delete mode 100644 tests/fake-icds/usr/local/share/vulkan/icd.d/intel_icd.i686.json
 delete mode 100644 tests/fake-icds/usr/share/glvnd/egl_vendor.d/50_mesa.json
 delete mode 100644 tests/fake-icds/usr/share/vulkan/icd.d/intel_icd.x86_64.json
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libglib2.0-0.symbols
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libtheora0.symbols
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/zlib1g.symbols
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libglib2.0-0.symbols
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libtheora0.symbols
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/zlib1g.symbols
 delete mode 100644 tests/fake-steam-runtime/usr/lib/steamrt/steam-runtime-abi.json

diff --git a/tests/fake-icds-flatpak/.flatpak-info b/tests/fake-icds-flatpak/.flatpak-info
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/etc/glvnd/egl_vendor.d/invalid.json b/tests/fake-icds-flatpak/etc/glvnd/egl_vendor.d/invalid.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/etc/vulkan/icd.d/basename.json b/tests/fake-icds-flatpak/etc/vulkan/icd.d/basename.json
deleted file mode 100644
index cfee90f4c..000000000
--- a/tests/fake-icds-flatpak/etc/vulkan/icd.d/basename.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.2.3",
-        "library_path": "libvulkan_basename.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.json b/tests/fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.txt b/tests/fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/false.json b/tests/fake-icds-flatpak/false.json
deleted file mode 100644
index c508d5366..000000000
--- a/tests/fake-icds-flatpak/false.json
+++ /dev/null
@@ -1 +0,0 @@
-false
diff --git a/tests/fake-icds-flatpak/home/.local/share/vulkan/icd.d/relative_new.json b/tests/fake-icds-flatpak/home/.local/share/vulkan/icd.d/relative_new.json
deleted file mode 100644
index 5183247ac..000000000
--- a/tests/fake-icds-flatpak/home/.local/share/vulkan/icd.d/relative_new.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.2",
-        "library_path": "/usr/lib/x86_64-mock-abi/vulkan/icd.d/../libvulkan_relative.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds-flatpak/usr/lib/i386-mock-abi/libvulkan_intel.so b/tests/fake-icds-flatpak/usr/lib/i386-mock-abi/libvulkan_intel.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json b/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json
deleted file mode 100644
index 13ff8653e..000000000
--- a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "ICD": {
-        "library_path": "../libEGL_relative.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/libEGL_relative.so b/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/libEGL_relative.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json b/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json
deleted file mode 100644
index fe51488c7..000000000
--- a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/libvulkan_intel.so b/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/libvulkan_intel.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json b/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json
deleted file mode 100644
index da0863d13..000000000
--- a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.1",
-        "library_path": "../libvulkan_relative.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/libvulkan_relative.so b/tests/fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/libvulkan_relative.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds-flatpak/usr/local/share/vulkan/icd.d/intel_icd.i686.json b/tests/fake-icds-flatpak/usr/local/share/vulkan/icd.d/intel_icd.i686.json
deleted file mode 100644
index c9a874f79..000000000
--- a/tests/fake-icds-flatpak/usr/local/share/vulkan/icd.d/intel_icd.i686.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102",
-        "library_path": "/usr/lib/i386-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds-flatpak/usr/share/glvnd/egl_vendor.d/50_mesa.json b/tests/fake-icds-flatpak/usr/share/glvnd/egl_vendor.d/50_mesa.json
deleted file mode 100644
index 8aaaa100f..000000000
--- a/tests/fake-icds-flatpak/usr/share/glvnd/egl_vendor.d/50_mesa.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "file_format_version" : "1.0.0",
-    "ICD" : {
-        "library_path" : "libEGL_mesa.so.0"
-    }
-}
diff --git a/tests/fake-icds-flatpak/usr/share/vulkan/icd.d/intel_icd.x86_64.json b/tests/fake-icds-flatpak/usr/share/vulkan/icd.d/intel_icd.x86_64.json
deleted file mode 100644
index d309e3750..000000000
--- a/tests/fake-icds-flatpak/usr/share/vulkan/icd.d/intel_icd.x86_64.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102",
-        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/confdir/vulkan/icd.d/invalid.json b/tests/fake-icds/confdir/vulkan/icd.d/invalid.json
deleted file mode 100644
index 8ff64cd57..000000000
--- a/tests/fake-icds/confdir/vulkan/icd.d/invalid.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102",
-        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "1.1.0"
-}
diff --git a/tests/fake-icds/datadir/vulkan/icd.d/invalid.json b/tests/fake-icds/datadir/vulkan/icd.d/invalid.json
deleted file mode 100644
index 19cb63f2d..000000000
--- a/tests/fake-icds/datadir/vulkan/icd.d/invalid.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102",
-        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "2.0.0"
-}
diff --git a/tests/fake-icds/datahome/vulkan/icd.d/invalid.json b/tests/fake-icds/datahome/vulkan/icd.d/invalid.json
deleted file mode 100644
index b50b52dd1..000000000
--- a/tests/fake-icds/datahome/vulkan/icd.d/invalid.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "ICD": {
-        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/egl1/AAA.json b/tests/fake-icds/egl1/AAA.json
deleted file mode 100644
index 270c611ee..000000000
--- a/tests/fake-icds/egl1/AAA.json
+++ /dev/null
@@ -1 +0,0 @@
-hello, world!
diff --git a/tests/fake-icds/egl1/BBB.json b/tests/fake-icds/egl1/BBB.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/egl1/a.json b/tests/fake-icds/egl1/a.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/egl1/b.json b/tests/fake-icds/egl1/b.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/egl1/soname_zlib_dup.json b/tests/fake-icds/egl1/soname_zlib_dup.json
deleted file mode 100644
index 8f0f7ca55..000000000
--- a/tests/fake-icds/egl1/soname_zlib_dup.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "file_format_version" : "1.0.0",
-    "ICD" : {
-        "library_path" : "libz.so.1"
-    }
-}
diff --git a/tests/fake-icds/egl1/z.json b/tests/fake-icds/egl1/z.json
deleted file mode 100644
index 2525216ab..000000000
--- a/tests/fake-icds/egl1/z.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "file_format_version" : "9000.0.0"
-}
diff --git a/tests/fake-icds/egl2/absolute.json b/tests/fake-icds/egl2/absolute.json
deleted file mode 100644
index 76b8903cd..000000000
--- a/tests/fake-icds/egl2/absolute.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "file_format_version" : "1.0.0",
-    "ICD" : {
-        "library_path" : "/opt/libEGL_myvendor.so"
-    }
-}
diff --git a/tests/fake-icds/egl2/soname_zlib.json b/tests/fake-icds/egl2/soname_zlib.json
deleted file mode 100644
index 8f0f7ca55..000000000
--- a/tests/fake-icds/egl2/soname_zlib.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "file_format_version" : "1.0.0",
-    "ICD" : {
-        "library_path" : "libz.so.1"
-    }
-}
diff --git a/tests/fake-icds/etc/glvnd/egl_vendor.d/invalid.json b/tests/fake-icds/etc/glvnd/egl_vendor.d/invalid.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/etc/vulkan/icd.d/basename.json b/tests/fake-icds/etc/vulkan/icd.d/basename.json
deleted file mode 100644
index cfee90f4c..000000000
--- a/tests/fake-icds/etc/vulkan/icd.d/basename.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.2.3",
-        "library_path": "libvulkan_basename.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/etc/xdg/vulkan/icd.d/invalid.json b/tests/fake-icds/etc/xdg/vulkan/icd.d/invalid.json
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/etc/xdg/vulkan/icd.d/invalid.txt b/tests/fake-icds/etc/xdg/vulkan/icd.d/invalid.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/false.json b/tests/fake-icds/false.json
deleted file mode 100644
index c508d5366..000000000
--- a/tests/fake-icds/false.json
+++ /dev/null
@@ -1 +0,0 @@
-false
diff --git a/tests/fake-icds/home/.local/share/vulkan/icd.d/invalid.json b/tests/fake-icds/home/.local/share/vulkan/icd.d/invalid.json
deleted file mode 100644
index 0967ef424..000000000
--- a/tests/fake-icds/home/.local/share/vulkan/icd.d/invalid.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/tests/fake-icds/no-api-version.json b/tests/fake-icds/no-api-version.json
deleted file mode 100644
index 1736f34f3..000000000
--- a/tests/fake-icds/no-api-version.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "ICD": {
-        "library_path": "libfoo.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/no-library.json b/tests/fake-icds/no-library.json
deleted file mode 100644
index 7cd3af7be..000000000
--- a/tests/fake-icds/no-library.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/null.json b/tests/fake-icds/null.json
deleted file mode 100644
index 19765bd50..000000000
--- a/tests/fake-icds/null.json
+++ /dev/null
@@ -1 +0,0 @@
-null
diff --git a/tests/fake-icds/opt/libEGL_myvendor.so b/tests/fake-icds/opt/libEGL_myvendor.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/str.json b/tests/fake-icds/str.json
deleted file mode 100644
index 749d69f41..000000000
--- a/tests/fake-icds/str.json
+++ /dev/null
@@ -1 +0,0 @@
-"hello, world!"
diff --git a/tests/fake-icds/usr/lib/i386-mock-abi/libvulkan_intel.so b/tests/fake-icds/usr/lib/i386-mock-abi/libvulkan_intel.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json b/tests/fake-icds/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json
deleted file mode 100644
index 13ff8653e..000000000
--- a/tests/fake-icds/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "ICD": {
-        "library_path": "../libEGL_relative.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json b/tests/fake-icds/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json
deleted file mode 100644
index fe51488c7..000000000
--- a/tests/fake-icds/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/libEGL_mesa.so.0 b/tests/fake-icds/usr/lib/x86_64-mock-abi/libEGL_mesa.so.0
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/libvulkan_basename.so b/tests/fake-icds/usr/lib/x86_64-mock-abi/libvulkan_basename.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/libvulkan_intel.so b/tests/fake-icds/usr/lib/x86_64-mock-abi/libvulkan_intel.so
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/libz.so.1 b/tests/fake-icds/usr/lib/x86_64-mock-abi/libz.so.1
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tests/fake-icds/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json b/tests/fake-icds/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json
deleted file mode 100644
index da0863d13..000000000
--- a/tests/fake-icds/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.1",
-        "library_path": "../libvulkan_relative.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/usr/local/share/vulkan/icd.d/intel_icd.i686.json b/tests/fake-icds/usr/local/share/vulkan/icd.d/intel_icd.i686.json
deleted file mode 100644
index c9a874f79..000000000
--- a/tests/fake-icds/usr/local/share/vulkan/icd.d/intel_icd.i686.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102",
-        "library_path": "/usr/lib/i386-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-icds/usr/share/glvnd/egl_vendor.d/50_mesa.json b/tests/fake-icds/usr/share/glvnd/egl_vendor.d/50_mesa.json
deleted file mode 100644
index 8aaaa100f..000000000
--- a/tests/fake-icds/usr/share/glvnd/egl_vendor.d/50_mesa.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "file_format_version" : "1.0.0",
-    "ICD" : {
-        "library_path" : "libEGL_mesa.so.0"
-    }
-}
diff --git a/tests/fake-icds/usr/share/vulkan/icd.d/intel_icd.x86_64.json b/tests/fake-icds/usr/share/vulkan/icd.d/intel_icd.x86_64.json
deleted file mode 100644
index d309e3750..000000000
--- a/tests/fake-icds/usr/share/vulkan/icd.d/intel_icd.x86_64.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ICD": {
-        "api_version": "1.1.102",
-        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
-    },
-    "file_format_version": "1.0.0"
-}
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libglib2.0-0.symbols b/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libglib2.0-0.symbols
deleted file mode 100644
index 17fc854ac..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libglib2.0-0.symbols
+++ /dev/null
@@ -1,11 +0,0 @@
-# Cut-down version of libglib2.0-0:amd64.symbols, to illustrate what we expect
-# to find here
-libgio-2.0.so.0 libglib2.0-0 #MINVER#
-* Build-Depends-Package: libglib2.0-dev
- g_action_activate@Base 2.28.0
- g_action_change_state@Base 2.30.0
-libglib-2.0.so.0 libglib2.0-0 #MINVER#
-* Build-Depends-Package: libglib2.0-dev
- g_access@Base 2.12.0
- g_allocator_free@Base 2.12.0
- g_allocator_new@Base 2.12.0
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libtheora0.symbols b/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libtheora0.symbols
deleted file mode 100644
index a46156c32..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libtheora0.symbols
+++ /dev/null
@@ -1,4 +0,0 @@
-# Cut-down version of libtheora0:i386.symbols, to illustrate what we expect
-# to find here
-libtheoraenc.so.1 libtheora0 #MINVER#
-# No symbols listed here yet
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/zlib1g.symbols b/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/zlib1g.symbols
deleted file mode 100644
index 63be790e3..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/zlib1g.symbols
+++ /dev/null
@@ -1,4 +0,0 @@
-# Cut-down version of zlib1g:amd64.symbols, to illustrate what we expect
-# to find here
-libz.so.1 zlib1g #MINVER#
- adler32@Base 1:1.1.4
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libglib2.0-0.symbols b/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libglib2.0-0.symbols
deleted file mode 100644
index 17fc854ac..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libglib2.0-0.symbols
+++ /dev/null
@@ -1,11 +0,0 @@
-# Cut-down version of libglib2.0-0:amd64.symbols, to illustrate what we expect
-# to find here
-libgio-2.0.so.0 libglib2.0-0 #MINVER#
-* Build-Depends-Package: libglib2.0-dev
- g_action_activate@Base 2.28.0
- g_action_change_state@Base 2.30.0
-libglib-2.0.so.0 libglib2.0-0 #MINVER#
-* Build-Depends-Package: libglib2.0-dev
- g_access@Base 2.12.0
- g_allocator_free@Base 2.12.0
- g_allocator_new@Base 2.12.0
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libtheora0.symbols b/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libtheora0.symbols
deleted file mode 100644
index 0d054e654..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libtheora0.symbols
+++ /dev/null
@@ -1,4 +0,0 @@
-# Cut-down version of libtheora0:amd64.symbols, to illustrate what we expect
-# to find here
-libtheoraenc.so.1 libtheora0 #MINVER#
-# No symbols listed here yet
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/zlib1g.symbols b/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/zlib1g.symbols
deleted file mode 100644
index 63be790e3..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/zlib1g.symbols
+++ /dev/null
@@ -1,4 +0,0 @@
-# Cut-down version of zlib1g:amd64.symbols, to illustrate what we expect
-# to find here
-libz.so.1 zlib1g #MINVER#
- adler32@Base 1:1.1.4
diff --git a/tests/fake-steam-runtime/usr/lib/steamrt/steam-runtime-abi.json b/tests/fake-steam-runtime/usr/lib/steamrt/steam-runtime-abi.json
deleted file mode 100644
index 5f5eb828a..000000000
--- a/tests/fake-steam-runtime/usr/lib/steamrt/steam-runtime-abi.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "architectures": {
-  "i386-linux-gnu": {
-   "dpkg_name": "i386"
-  },
-  "x86_64-linux-gnu": {
-   "dpkg_name": "amd64"
-  }
- },
- "extra_debs": {
-  "libs": [
-   "dconf-gsettings-backend",
-   "gtk2-engines"
-  ]
- },
- "private_libraries": [
-  {
-   "libVkLayer_*.so": {
-    "deb": "libvulkan1"
-   }
-  }
- ],
- "shared_libraries": [
-  {
-   "libglut.so.3": {
-    "deb": "freeglut3"
-   }
-  },
-  "libacl.so.1",
-  {
-   "libtheoraenc.so.1": {
-    "deb": "libtheora0",
-    "hidden_dependencies": [
-     "libtheoradec.so.1"
-    ]
-   }
-  },
-  {
-   "libtWithHiddens.so.1": {
-    "deb": "libtWithHiddens0",
-    "hidden_dependencies": [
-     "firstHidden.so.0",
-     "secondHidden.so.3"
-    ]
-   }
-  }
- ]
-}
diff --git a/tests/generate-sysroots.py b/tests/generate-sysroots.py
index 0df01c954..f64f7a350 100755
--- a/tests/generate-sysroots.py
+++ b/tests/generate-sysroots.py
@@ -60,6 +60,36 @@ debian10/usr/local/etc/vulkan/explicit_layer.d
 debian10/usr/share/vulkan/implicit_layer.d
 debian10/run/systemd
 debian-unstable/etc
+fake-icds/home/.local/share/vulkan/icd.d
+fake-icds/egl2
+fake-icds/confdir/vulkan/icd.d
+fake-icds/etc/glvnd/egl_vendor.d
+fake-icds/etc/vulkan/icd.d
+fake-icds/etc/xdg/vulkan/icd.d
+fake-icds/datadir/vulkan/icd.d
+fake-icds/egl1
+fake-icds/opt
+fake-icds/datahome/vulkan/icd.d
+fake-icds/usr/lib/i386-mock-abi
+fake-icds/usr/lib/x86_64-mock-abi/vulkan/icd.d
+fake-icds/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d
+fake-icds/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d
+fake-icds/usr/local/share/vulkan/icd.d
+fake-icds/usr/share/glvnd/egl_vendor.d
+fake-icds/usr/share/vulkan/icd.d
+fake-icds-flatpak/etc/glvnd/egl_vendor.d
+fake-icds-flatpak/etc/vulkan/icd.d
+fake-icds-flatpak/etc/xdg/vulkan/icd.d
+fake-icds-flatpak/home/.local/share/vulkan/icd.d
+fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/icd.d
+fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d
+fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d
+fake-icds-flatpak/usr/lib/i386-mock-abi
+fake-icds-flatpak/usr/local/share/vulkan/icd.d
+fake-icds-flatpak/usr/share/glvnd/egl_vendor.d
+fake-icds-flatpak/usr/share/vulkan/icd.d
+fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu
+fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu
 fedora/custom_path
 fedora/custom_path2
 fedora/custom_path3
@@ -132,6 +162,28 @@ debian10/usr/lib/x86_64-linux-gnu/libvdpau.so.1
 debian10/usr/lib/x86_64-linux-gnu/vdpau/libvdpau_r600.so.1.0.0
 debian10/usr/lib/x86_64-linux-gnu/vdpau/libvdpau_radeonsi.so.1.0.0
 debian-unstable/.dockerenv
+fake-icds/egl1/a.json
+fake-icds/egl1/b.json
+fake-icds/egl1/BBB.json
+fake-icds/etc/glvnd/egl_vendor.d/invalid.json
+fake-icds/etc/xdg/vulkan/icd.d/invalid.json
+fake-icds/etc/xdg/vulkan/icd.d/invalid.txt
+fake-icds/opt/libEGL_myvendor.so
+fake-icds/usr/lib/i386-mock-abi/libvulkan_intel.so
+fake-icds/usr/lib/x86_64-mock-abi/libEGL_mesa.so.0
+fake-icds/usr/lib/x86_64-mock-abi/libvulkan_basename.so
+fake-icds/usr/lib/x86_64-mock-abi/libvulkan_intel.so
+fake-icds/usr/lib/x86_64-mock-abi/libz.so.1
+
+
+fake-icds-flatpak/etc/glvnd/egl_vendor.d/invalid.json
+fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.json
+fake-icds-flatpak/etc/xdg/vulkan/icd.d/invalid.txt
+fake-icds-flatpak/usr/lib/i386-mock-abi/libvulkan_intel.so
+fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/libvulkan_relative.so
+fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/libEGL_relative.so
+fake-icds-flatpak/usr/lib/x86_64-mock-abi/libvulkan_intel.so
+fake-icds-flatpak/.flatpak-info
 fedora/usr/lib/dri/i965_dri.so
 fedora/usr/lib/dri/r300_dri.so
 fedora/usr/lib/dri/r600_drv_video.so
@@ -437,6 +489,349 @@ with open('debian10/home/debian/.local/share/vulkan/implicit_layer.d/steamoverla
   }
 }''')
 
+with open('fake-icds/false.json', 'w') as writer:
+    writer.write('''false''')
+
+with open('fake-icds/no-api-version.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "library_path": "libfoo.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/no-library.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/null.json', 'w') as writer:
+    writer.write('''null''')
+
+with open('fake-icds/str.json', 'w') as writer:
+    writer.write('''"hello, world!"''')
+
+with open('fake-icds/confdir/vulkan/icd.d/invalid.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102",
+        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "1.1.0"
+}''')
+
+with open('fake-icds/datadir/vulkan/icd.d/invalid.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102",
+        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "2.0.0"
+}''')
+
+with open('fake-icds/datahome/vulkan/icd.d/invalid.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/home/.local/share/vulkan/icd.d/invalid.json', 'w') as writer:
+    writer.write('''{ }''')
+
+with open('fake-icds/egl2/absolute.json', 'w') as writer:
+    writer.write('''\
+{
+    "file_format_version" : "1.0.0",
+    "ICD" : {
+        "library_path" : "/opt/libEGL_myvendor.so"
+    }
+}''')
+
+with open('fake-icds/egl1/AAA.json', 'w') as writer:
+    writer.write('''hello world!''')
+
+with open('fake-icds/egl1/soname_zlib_dup.json', 'w') as writer:
+    writer.write('''\
+{
+    "file_format_version" : "1.0.0",
+    "ICD" : {
+        "library_path" : "libz.so.1"
+    }
+}''')
+
+with open('fake-icds/egl1/z.json', 'w') as writer:
+    writer.write('''\
+{
+    "file_format_version" : "9000.0.0"
+}''')
+
+with open('fake-icds/egl2/soname_zlib.json', 'w') as writer:
+    writer.write('''\
+{
+    "file_format_version" : "1.0.0",
+    "ICD" : {
+        "library_path" : "libz.so.1"
+    }
+}''')
+
+with open('fake-icds/etc/vulkan/icd.d/basename.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.2.3",
+        "library_path": "libvulkan_basename.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.1",
+        "library_path": "../libvulkan_relative.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "library_path": "../libEGL_relative.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json', 'w') as writer:
+    writer.write('''[]''')
+
+with open('fake-icds/usr/local/share/vulkan/icd.d/intel_icd.i686.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102",
+        "library_path": "/usr/lib/i386-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds/usr/share/glvnd/egl_vendor.d/50_mesa.json', 'w') as writer:
+    writer.write('''\
+{
+    "file_format_version" : "1.0.0",
+    "ICD" : {
+        "library_path" : "libEGL_mesa.so.0"
+    }
+}''')
+
+with open('fake-icds/usr/share/vulkan/icd.d/intel_icd.x86_64.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102",
+        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds-flatpak/home/.local/share/vulkan/icd.d/relative_new.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.2",
+        "library_path": "/usr/lib/x86_64-mock-abi/vulkan/icd.d/../libvulkan_relative.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds-flatpak/etc/vulkan/icd.d/basename.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.2.3",
+        "library_path": "libvulkan_basename.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds-flatpak/false.json', 'w') as writer:
+    writer.write('''false''')
+
+with open('fake-icds-flatpak/usr/lib/x86_64-mock-abi/vulkan/icd.d/relative.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.1",
+        "library_path": "../libvulkan_relative.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/glvnd/egl_vendor.d/relative.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "library_path": "../libEGL_relative.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds-flatpak/usr/lib/x86_64-mock-abi/GL/vulkan/icd.d/invalid.json', 'w') as writer:
+    writer.write('''[]''')
+
+with open('fake-icds-flatpak/usr/local/share/vulkan/icd.d/intel_icd.i686.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102",
+        "library_path": "/usr/lib/i386-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-icds-flatpak/usr/share/glvnd/egl_vendor.d/50_mesa.json', 'w') as writer:
+    writer.write('''\
+{
+    "file_format_version" : "1.0.0",
+    "ICD" : {
+        "library_path" : "libEGL_mesa.so.0"
+    }
+}''')
+
+with open('fake-icds-flatpak/usr/share/vulkan/icd.d/intel_icd.x86_64.json', 'w') as writer:
+    writer.write('''\
+{
+    "ICD": {
+        "api_version": "1.1.102",
+        "library_path": "/usr/lib/x86_64-mock-abi/libvulkan_intel.so"
+    },
+    "file_format_version": "1.0.0"
+}''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libglib2.0-0.symbols', 'w') as writer:
+    writer.write('''\
+# Cut-down version of libglib2.0-0:amd64.symbols, to illustrate what we expect
+# to find here
+libgio-2.0.so.0 libglib2.0-0 #MINVER#
+* Build-Depends-Package: libglib2.0-dev
+ g_action_activate@Base 2.28.0
+ g_action_change_state@Base 2.30.0
+libglib-2.0.so.0 libglib2.0-0 #MINVER#
+* Build-Depends-Package: libglib2.0-dev
+ g_access@Base 2.12.0
+ g_allocator_free@Base 2.12.0
+ g_allocator_new@Base 2.12.0
+''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/libtheora0.symbols', 'w') as writer:
+    writer.write('''\
+# Cut-down version of libtheora0:amd64.symbols, to illustrate what we expect
+# to find here
+libtheoraenc.so.1 libtheora0 #MINVER#
+# No symbols listed here yet
+''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/expectations/x86_64-linux-gnu/zlib1g.symbols', 'w') as writer:
+    writer.write('''\
+# Cut-down version of zlib1g:amd64.symbols, to illustrate what we expect
+# to find here
+libz.so.1 zlib1g #MINVER#
+ adler32@Base 1:1.1.4
+''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libglib2.0-0.symbols', 'w') as writer:
+    writer.write('''\
+# Cut-down version of libglib2.0-0:amd64.symbols, to illustrate what we expect
+# to find here
+libgio-2.0.so.0 libglib2.0-0 #MINVER#
+* Build-Depends-Package: libglib2.0-dev
+ g_action_activate@Base 2.28.0
+ g_action_change_state@Base 2.30.0
+libglib-2.0.so.0 libglib2.0-0 #MINVER#
+* Build-Depends-Package: libglib2.0-dev
+ g_access@Base 2.12.0
+ g_allocator_free@Base 2.12.0
+ g_allocator_new@Base 2.12.0
+''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/libtheora0.symbols', 'w') as writer:
+    writer.write('''\
+# Cut-down version of libtheora0:i386.symbols, to illustrate what we expect
+# to find here
+libtheoraenc.so.1 libtheora0 #MINVER#
+# No symbols listed here yet
+''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/expectations/i386-linux-gnu/zlib1g.symbols', 'w') as writer:
+    writer.write('''\
+# Cut-down version of zlib1g:amd64.symbols, to illustrate what we expect
+# to find here
+libz.so.1 zlib1g #MINVER#
+ adler32@Base 1:1.1.4
+''')
+
+with open('fake-steam-runtime/usr/lib/steamrt/steam-runtime-abi.json', 'w') as writer:
+    writer.write('''\
+{
+ "architectures": {
+  "i386-linux-gnu": {
+   "dpkg_name": "i386"
+  },
+  "x86_64-linux-gnu": {
+   "dpkg_name": "amd64"
+  }
+ },
+ "extra_debs": {
+  "libs": [
+   "dconf-gsettings-backend",
+   "gtk2-engines"
+  ]
+ },
+ "private_libraries": [
+  {
+   "libVkLayer_*.so": {
+    "deb": "libvulkan1"
+   }
+  }
+ ],
+ "shared_libraries": [
+  {
+   "libglut.so.3": {
+    "deb": "freeglut3"
+   }
+  },
+  "libacl.so.1",
+  {
+   "libtheoraenc.so.1": {
+    "deb": "libtheora0",
+    "hidden_dependencies": [
+     "libtheoradec.so.1"
+    ]
+   }
+  },
+  {
+   "libtWithHiddens.so.1": {
+    "deb": "libtWithHiddens0",
+    "hidden_dependencies": [
+     "firstHidden.so.0",
+     "secondHidden.so.3"
+    ]
+   }
+  }
+ ]
+}''')
+
 with open('fedora/usr/share/vulkan/implicit_layer.d/incomplete_layer.json', 'w') as writer:
     writer.write('''\
 {
diff --git a/tests/graphics.c b/tests/graphics.c
index 537e911fb..9c1b63d51 100644
--- a/tests/graphics.c
+++ b/tests/graphics.c
@@ -75,25 +75,21 @@ setup (Fixture *f,
 {
   const Config *config = context;
 
-  f->srcdir = g_strdup (g_getenv ("G_TEST_SRCDIR"));
   f->builddir = g_strdup (g_getenv ("G_TEST_BUILDDIR"));
 
-  if (f->srcdir == NULL)
-    f->srcdir = g_path_get_dirname (argv0);
-
   if (f->builddir == NULL)
     f->builddir = g_path_get_dirname (argv0);
 
   f->sysroots = global_sysroots;
 
-  if (g_chdir (f->srcdir) != 0)
-    g_error ("chdir %s: %s", f->srcdir, g_strerror (errno));
+  if (g_chdir (f->sysroots) != 0)
+    g_error ("chdir %s: %s", f->sysroots, g_strerror (errno));
 
   f->fake_icds_envp = g_get_environ ();
 
   if (config != NULL && config->icd_mode == ICD_MODE_FLATPAK)
     {
-      f->sysroot = g_build_filename (f->srcdir, "fake-icds-flatpak", NULL);
+      f->sysroot = g_build_filename (f->sysroots, "fake-icds-flatpak", NULL);
       /* Some of the mock helper programs rely on this, so we set it
        * even though SrtSystemInfo doesn't use it any more */
       f->fake_icds_envp = g_environ_setenv (f->fake_icds_envp,
@@ -101,7 +97,7 @@ setup (Fixture *f,
     }
   else if (config == NULL || config->icd_mode != ICD_MODE_RELATIVE_FILENAMES)
     {
-      f->sysroot = g_build_filename (f->srcdir, "fake-icds", NULL);
+      f->sysroot = g_build_filename (f->sysroots, "fake-icds", NULL);
       /* Some of the mock helper programs rely on this, so we set it
        * even though SrtSystemInfo doesn't use it any more */
       f->fake_icds_envp = g_environ_setenv (f->fake_icds_envp,
@@ -200,7 +196,6 @@ teardown (Fixture *f,
 {
   G_GNUC_UNUSED const Config *config = context;
 
-  g_free (f->srcdir);
   g_free (f->builddir);
   g_free (f->sysroot);
   g_strfreev (f->fake_icds_envp);
diff --git a/tests/meson.build b/tests/meson.build
index 15599a8c4..7228ae367 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -116,8 +116,6 @@ install_subdir('expectations_with_missings', install_dir : tests_dir)
 # than one *.json file in any directory that we are going to scan for
 # Vulkan *.json files. (The order of EGL *.json files is well-defined.)
 install_subdir('fake-icds', install_dir : tests_dir)
-install_subdir('fake-icds-flatpak', install_dir : tests_dir)
-install_subdir('fake-steam-runtime', install_dir : tests_dir)
 install_subdir('input-monitor-outputs', install_dir : tests_dir)
 install_subdir('json-report', install_dir : tests_dir)
 
diff --git a/tests/system-info.c b/tests/system-info.c
index 88decfb5d..47b377d4a 100644
--- a/tests/system-info.c
+++ b/tests/system-info.c
@@ -362,7 +362,7 @@ auto_expectations (Fixture *f,
     }
 
   env = g_get_environ ();
-  steam_runtime = g_build_filename (f->srcdir, "fake-steam-runtime", NULL);
+  steam_runtime = g_build_filename (f->sysroots, "fake-steam-runtime", NULL);
   env = g_environ_setenv (env, "STEAM_RUNTIME", steam_runtime, TRUE);
 
   info = srt_system_info_new (NULL);
-- 
GitLab