diff options
author | David Robillard <d@drobilla.net> | 2021-08-12 13:12:42 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-01-28 21:57:07 -0500 |
commit | 90828959c762b0e6d2c318032e714ca39e8e6edb (patch) | |
tree | 415a9e4e5bc2b44b986979a31261c611479f9955 | |
parent | 970dfc33de59a50b24f1e185495282e8b9a63885 (diff) | |
download | serd-90828959c762b0e6d2c318032e714ca39e8e6edb.tar.gz serd-90828959c762b0e6d2c318032e714ca39e8e6edb.tar.bz2 serd-90828959c762b0e6d2c318032e714ca39e8e6edb.zip |
Write test outputs to a temporary directory
While occasionally useful, I almost always end up reproducing the issue live to
investigate something anyway. Not keeping the many tests results around
results in less clutter, and hopefully makes the test suites faster in
environments with bad I/O like Docker.
-rwxr-xr-x | scripts/run_docker.sh | 50 | ||||
-rwxr-xr-x | test/run_test_suite.py | 30 |
2 files changed, 36 insertions, 44 deletions
diff --git a/scripts/run_docker.sh b/scripts/run_docker.sh index 6f2b20d3..680e3f2a 100755 --- a/scripts/run_docker.sh +++ b/scripts/run_docker.sh @@ -5,61 +5,61 @@ set -x # default configuration sudo rm -rf build -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 meson setup build -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 meson setup build +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build test # arm32_dbg sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-arm32 meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -v $PWD:/workdir lv2plugin/debian-arm32 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm32 meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm32 ninja -C build test # arm32_rel sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-arm32 meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -v $PWD:/workdir lv2plugin/debian-arm32 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm32 meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm32 ninja -C build test # arm64_dbg sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-arm64 meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -v $PWD:/workdir lv2plugin/debian-arm64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm64 meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm64 ninja -C build test # arm64_rel sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-arm64 meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -v $PWD:/workdir lv2plugin/debian-arm64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm64 meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-arm64 ninja -C build test # x64_dbg sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 meson setup build -Dbuildtype=debug -Ddocs=enabled -Dstrict=true -Dwerror=true -Db_coverage=true -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build test -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build coverage-html +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 meson setup build -Dbuildtype=debug -Ddocs=enabled -Dstrict=true -Dwerror=true -Db_coverage=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build coverage-html # x64_rel sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 meson setup build -Dbuildtype=release -Ddocs=enabled -Dstrict=true -Dwerror=true -docker run -t -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 meson setup build -Dbuildtype=release -Ddocs=enabled -Dstrict=true -Dwerror=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64 ninja -C build test # x64_sanitize sudo rm -r build -docker run -t -v $PWD:/workdir -e CC="clang" -e CXX="clang++" -e CFLAGS="-fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -e CXXFLAGS="-fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -e LDFLAGS="-fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" lv2plugin/debian-x64-clang meson setup build -Db_lundef=false -Dbuildtype=plain -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -v $PWD:/workdir lv2plugin/debian-x64-clang ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir -e CC="clang" -e CXX="clang++" -e CFLAGS="-fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -e CXXFLAGS="-fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -e LDFLAGS="-fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" lv2plugin/debian-x64-clang meson setup build -Db_lundef=false -Dbuildtype=plain -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-x64-clang ninja -C build test # mingw32_dbg sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-mingw32 meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" -v $PWD:/workdir lv2plugin/debian-mingw32 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw32 meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw32 ninja -C build test # mingw32_rel sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-mingw32 meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" -v $PWD:/workdir lv2plugin/debian-mingw32 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw32 meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\i686-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw32 ninja -C build test # mingw64_dbg sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-mingw64 meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" -v $PWD:/workdir lv2plugin/debian-mingw64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw64 meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw64 ninja -C build test # mingw64_rel sudo rm -r build -docker run -t -v $PWD:/workdir lv2plugin/debian-mingw64 meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true -docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" -v $PWD:/workdir lv2plugin/debian-mingw64 ninja -C build test +docker run -t --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw64 meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true +docker run -t -e MESON_TESTTHREADS=1 -e WINEPATH="Z:\\usr\\lib\\gcc\\x86_64-w64-mingw32\\8.3-win32;Z:\\workdir\\build\\subprojects\\exess" --tmpfs /tmp -v $PWD:/workdir lv2plugin/debian-mingw64 ninja -C build test diff --git a/test/run_test_suite.py b/test/run_test_suite.py index 81d36bc1..13bb3c7d 100755 --- a/test/run_test_suite.py +++ b/test/run_test_suite.py @@ -211,8 +211,6 @@ def test_suite( command_prefix + ["-I", base_uri], manifest_path ) - os.makedirs(out_test_dir, exist_ok=True) - asserter = "" if os.getenv("USER") == "drobilla": asserter = "http://drobilla.net/drobilla#me" @@ -396,11 +394,6 @@ def main(): parser.add_argument("--syntax", default=None, help="input syntax") parser.add_argument("--osyntax", default=None, help="output syntax") parser.add_argument("--wrapper", default="", help="executable wrapper") - - parser.add_argument( - "-o", "--out-dir", default=None, help="output directory" - ) - parser.add_argument("manifest", help="test suite manifest.ttl file") parser.add_argument("base_uri", help="base URI for tests") @@ -409,22 +402,21 @@ def main(): ) args = parser.parse_args(sys.argv[1:]) - if args.out_dir is None: - suite_name = os.path.basename(os.path.dirname(args.manifest)) - args.out_dir = os.path.join('test', suite_name) + command_prefix = ( shlex.split(args.wrapper) + [args.serdi] + args.serdi_option ) - return test_suite( - args.manifest, - args.base_uri, - args.report, - args.syntax, - args.osyntax, - command_prefix, - args.out_dir, - ) + with tempfile.TemporaryDirectory() as test_out_dir: + return test_suite( + args.manifest, + args.base_uri, + args.report, + args.syntax, + args.osyntax, + command_prefix, + test_out_dir, + ) if __name__ == "__main__": |