Skip to content
Snippets Groups Projects
  1. Aug 18, 2020
  2. Aug 05, 2020
  3. Aug 04, 2020
  4. Jul 31, 2020
  5. Jul 29, 2020
  6. Jul 23, 2020
  7. Jul 21, 2020
  8. Jul 09, 2020
    • Simon McVittie's avatar
      tests: Ignore inability to load libOSMesa.so.8 · 68303f6b
      Simon McVittie authored
      
      This is included in prerelease versions of SteamRT 2 'soldier',
      but because it uses the post-gcc-5 C++ ABI of libLLVM-7.so.1, it's
      incompatible with versions of libLLVM-7.so.1 that were compiled to be
      compatible with the gcc 4 C++ ABI, and in particular the one in
      SteamOS 2 'brewmaster'.
      
      This and the previous commit are sufficient to make tests/containers.py
      pass on SteamOS 2 'brewmaster', if we also configure libxcb.so.1 to
      be chosen by counting symbols (T22538) and libgcc_s.so.1 to be chosen
      by counting verdefs (T16561).
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      68303f6b
    • Simon McVittie's avatar
      tests: Run s-r-s-i on host with LD_BIND_NOW=1 · 32cb6de9
      Simon McVittie authored
      
      If we allow lazy binding, we can succeed in loading a GIO module from
      the host (which depends on a newer GObject than the one bundled with
      pressure-vessel), then find that a symbol reference fails at the time
      that we try to actually use it. Make it fail early, instead.
      
      In particular, this is helpful on SteamOS 2 'brewmaster'.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      32cb6de9
    • Simon McVittie's avatar
      tests: Add support for basic testing on a soldier container · 02e57b93
      Simon McVittie authored
      
      For the moment, this is basically scout with fewer guarantees: we
      can't assume whether the host glibc is newer (like Arch Linux or
      Ubuntu 20.04) or older (like SteamOS 2 'brewmaster').
      
      Only tested successfully on Debian testing/unstable, for now.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      02e57b93
  9. Jun 23, 2020
  10. Jun 17, 2020
  11. Jun 16, 2020
  12. Jun 12, 2020
    • Simon McVittie's avatar
      tests: Add an integration test for running in a container · 1a9769dd
      Simon McVittie authored
      
      This requires resources external to pressure-vessel, and makes some
      assumptions about the container - but that's OK, because the first
      significant user of pressure-vessel is Steam Runtime 1 'scout', which
      is not exactly a moving target. We also do some of these checks in
      various OSs' virtual machines when we build Steam Runtime releases, but
      having this in-tree with the pressure-vessel source should shorten the
      testing cycle.
      
      See the doc-comment in tests/containers.py for usage.
      
      At the moment all tests require a working version of bubblewrap, but
      current/future work in the direction of pre-preparing a modified
      runtime on disk should mean that we can do a subset of these tests
      even if we cannot run bubblewrap. In particular, if we can do that
      inside a Docker container, that will make it a lot easier for CI to
      validate our assumptions on non-Debian-derived host operating systems.
      
      Attentive reviewers will notice that there's infrastructure here to
      be able to skip generating locales, but it isn't yet used. It will
      be used when we have more variations on the theme of "enter a scout
      container and run inside-scout.py", to avoid the time cost of
      generating locales every time - but at the moment we only have two
      runs, so the time taken to generate locales is not problematic.
      
      This test is a bit slow, and it's going to get slower as we add more
      thorough testing, so increase its timeout away from the Meson default.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      1a9769dd
    • Simon McVittie's avatar
      testutils: Move most test setup to be once per class · d5eed758
      Simon McVittie authored
      
      The result of this setup will be the same every time, so there isn't
      much point in repeating it. When we add tests with time-consuming setup
      like running steam-runtime-system-info, we'll only want to do that once.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      d5eed758
    • Simon McVittie's avatar
      testutils: Make sure the artifacts path is absolute · 0db2c839
      Simon McVittie authored
      
      If we're passing it across a container boundary, relative paths are
      going to get error-prone.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      0db2c839
    • Simon McVittie's avatar
      testutils: Exit 1 on failure · 360eeecd
      Simon McVittie authored
      
      At the moment the Python-based tests rely on being run under prove(1)
      so that their TAP output is parsed, but I'm about to add a test that
      enters a container and runs another test script inside the container,
      and using TAP for that is less obvious. Don't rely on our stdout being
      parsed as TAP.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      360eeecd
    • Simon McVittie's avatar
      tests/invocation: Test running p-v-wrap without entering a container · efd65ce3
      Simon McVittie authored
      
      In particular this detects the mishandling of an invalid --env-if-host
      option.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      efd65ce3
    • Simon McVittie's avatar
      testutils: Add new module · 34fb71ba
      Simon McVittie authored
      
      BaseTest and test_main are factored out from cheap-copy.py.
      MyCompletedProcess and run_subprocess are taken from the
      SteamLinuxRuntime unit tests, and will be used in later test additions.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      34fb71ba
Loading