aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-08-12 13:12:42 -0400
committerDavid Robillard <d@drobilla.net>2022-01-28 21:57:07 -0500
commit90828959c762b0e6d2c318032e714ca39e8e6edb (patch)
tree415a9e4e5bc2b44b986979a31261c611479f9955
parent970dfc33de59a50b24f1e185495282e8b9a63885 (diff)
downloadserd-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-xscripts/run_docker.sh50
-rwxr-xr-xtest/run_test_suite.py30
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__":