- Nov 17, 2022
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 15, 2022
-
-
Simon McVittie authored
In older chroot environments it's sometimes a symbolic link to /run/shm. Use /dev/pts as something that is more likely to be a real directory, and skip this part of the test if /dev/pts is somehow also a symlink. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 28, 2022
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously the result when the directory didn't exist was not guaranteed by the GPtrArray documentation: it could either be NULL (which would be OK) or a non-terminated array of 0 entries (which would lead to a segmentation fault in the caller). In practice it seems to have been reasonably reliably NULL, but let's make this predictable, by always returning a non-NULL (but possibly empty) GStrv. The practical result is that before, `_srt_recursive_list_content(..., "/nonexistent")` would return `NULL`, but now it returns `(const char[]) { NULL }`. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will make it easier to compare log files from different runs. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we don't have any better way to choose an implementation, using lexicographic order makes it a little easier to compare log files. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 27, 2022
-
-
Simon McVittie authored
With a new enough Meson release, this lets you run something like meson devenv -C _build/host bin/steam-runtime-system-info and have it pick up the correct helpers directory. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This reduces duplication, and lets us set them from the most logical location: it is the helpers directory that builds our helper executables, so it makes sense for the helpers directory to be responsible for setting SRT_HELPERS_PATH. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously, we used hash table order, which is in principle non-deterministic (although GLib's string hash function hasn't changed for a long time, so our tests were in fact accidentally relying on a consistent hash table order). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 11, 2022
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 10, 2022
-
-
Simon McVittie authored
The standards-conformant behaviour is that the contents of saveptr are ignored when the first argument is non-NULL, but the man page notes that some older implementations required saveptr to be NULL in that situation, and the gcc 4.8 provided by the Steam Runtime warns about this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
These were only added in 2.38, and some projects with particularly ancient dependencies (like the Steam Runtime, based on a 2012 version of Ubuntu) still avoid depending on that version. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
libglnx now provides better versions of these. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
These were in GLib 2.16, which is considerably older than the oldest version we support. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
libglnx is intentionally not portable to non-Unix platforms or to compilers that do not implement gcc/clang extensions, so it's counterproductive to warn about these extensions, even if libglnx is used by a parent project that generally (for the parts that don't use libglnx) wants to be portable to any ISO C compiler. Suggested by Will Thompson on !36. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 06, 2022
-
-
Ludovico de Nittis authored
Add a stricter version of `soname:`, where a library is considered to be a match only if its DT_SONAME is exactly what capture-libs was asked to look into. This can be used as a protection against misconfigured systems where two incompatible libraries have been symlinked. E.g. if there is an unexpected symlink `libudev.so.0 -> libudev.so.1`, with `soname:libudev.so.0` we will import `libudev.so.0` inside the container even if its DT_SONAME is `libudev.so.1`. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 27, 2022
-
-
Simon McVittie authored
This should not be expected to pass reliably yet, particularly if the version of steam-runtime-tools included in the LD_LIBRARY_PATH runtime is not in sync with the version that provided the tests. This doesn't use ginsttest-runner and its .test files, for two reasons: - the gnome-desktop-testing package isn't included in the LD_LIBRARY_PATH variant of the Steam Runtime; - the .test files are not relocatable (they name tests according to their absolute path), but to test a relocatable LD_LIBRARY_PATH runtime, we need relocatable tests Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 26, 2022
-
-
Ludovico de Nittis authored
When we are using an interpreter like FEX, we have a FEX's rootfs, that is usually x86-64, and the real host system root, that is usually AArch64. When setting up the runtime we can also include the real host graphics DRIs/layers to support thunking. Then, based on what the loader needs, the correct architecture libraries will be loaded at runtime. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
Add the ability to skip the architecture-specific helpers via the enum "SRT_CHECK_FLAGS_NO_HELPERS". This will be used in a follow-up commit when we start to support the host graphics stack while running inside an interpreter like FEX. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 22, 2022
-
-
Ludovico de Nittis authored
Returning an error when a library was located in a directory that ended with 32, for x86_64, and 64, for i386, was, in theory, a good and simple strategy. However we also check libraries by using their `/proc/${PID}/fd/...` path instead of the canonical absolute path. This means that if the PID ended with 32 or 64, we could have received an unexpected reply. Given that this check is not actually necessary for the tests that we have, we can simply remove it. Fixes: https://gitlab.steamos.cloud/steamrt/tasks/-/issues/162 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 20, 2022
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 19, 2022
-
-
Ludovico de Nittis authored
Since glibc 2.36-4, Arch Linux started to include the `/usr/share/i18n/SUPPORTED` file. https://github.com/archlinux/svntogit-packages/commit/3c537bee8d7921bc0af775fdb4d69124026532ac For this reason we don't need to special case Arch Linux anymore in our tests. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 08, 2022
-
-
Simon McVittie authored
This can either be run as an ordinary build-time test, in which case it uses the just-built mock libraries for the build architecture only, or as an integration test for the LD_LIBRARY_PATH Steam Runtime: ~/.steam/root/ubuntu12_32/steam-runtime/run.sh -- \ ~/tmp/steam-runtime-tools-tests/libcurl-compat.py --verbose in which case it expects to be run on an x86_64 machine, tests the mock libraries for both x86_64 and i386, and also asserts that the Steam Runtime has been set up to use the shim to provide the real libcurl ABI. Helps: steamrt/tasks#119 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
To test this mechanism, it's useful to have a set of libraries that implement a predictable interface between distributions. Use a small subset of the real libcurl API. Helps: steamrt/tasks#119 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 02, 2022
-
-
Simon McVittie authored
When we're running tests in the LD_LIBRARY_PATH Steam Runtime, the test will generally use the system copy of libjson-glib (if there is one), but steam-runtime-system-info will use the Steam Runtime copy of libjson-glib via its RPATH. This can result in them being pretty-printed differently: old versions of json-glib like the one in scout will consistently add a newline after the opening bracket or brace of an array or object, but newer versions fold the empty array or object into a single line. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Comparing two giant strings of JSON in g_assert_cmpstr() output is not straightforward, so let's try to write them out to files and run diff on them. The AUTOPKGTEST_ARTIFACTS variable set by Debian's autopkgtest framework is as good a mechanism as any for signalling where would be a good place; or if that's not set, use a temporary directory. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Otherwise, the SrtSystemInfo in test-system-info-cli will be unable to find the necessary helpers, because its path relative to the runtime is unlikely to be what it would be when installed "properly" into a sysroot. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We'll get an unintended result for these tests if we are, because they set up a mock environment that doesn't match the one we're already in. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 01, 2022
-
-
Simon McVittie authored
This makes the tests more amenable to being copied to a test system and run "as-installed", and in particular being able to run them inside the LD_LIBRARY_PATH Steam Runtime using an external (OS-provided) Python executable. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
When running tests against an installed Steam Runtime, it's inconvenient to have to make the tests and the installed programs match exactly. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This isn't really used yet, but will be used in a future commit. It's useful to be able to write high-level integration tests in a friendlier language. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
GLib-based tests want a --tap argument, but other test scripts generally will not. Similarly, it's fairly common to want to use an interpreter or wrapper around a test. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously we were only using it for pressure-vessel, but it's also useful to be able to write test scripts in Python for other things. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
These weren't previously detected because we weren't running lint tools against tests/*.py, but a subsequent commit will fix that omission. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-