From ac60163ceba1b951e1d2f0625552e6a45d85f666 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 23 Jan 2024 13:35:02 +0000 Subject: [PATCH 2/4] tests: Fix tests to work with srcdir != builddir --- tests/test-cc-cpp.sh | 2 +- tests/test-cc-ocaml.sh | 2 +- tests/test-cc.sh | 2 +- tests/test-curl-header-script-fail.sh | 2 +- tests/test-linuxdisk-copy-out.sh | 4 ++-- tests/test-multi-conn-name.sh | 6 ++++-- tests/test-multi-conn.sh | 20 +++++++++++--------- tests/test-plugin-docs.sh | 2 +- tests/test-shebang-cc.sh | 3 +++ tests/test-tar.sh | 2 +- tests/cc-shebang.c | 4 +++- tests/test-read-password-plugin.c | 4 +++- 12 files changed, 32 insertions(+), 21 deletions(-) diff --git a/tests/test-cc-cpp.sh b/tests/test-cc-cpp.sh index ebbdab31d..dd9bf58d8 100755 --- a/tests/test-cc-cpp.sh +++ b/tests/test-cc-cpp.sh @@ -55,6 +55,6 @@ rm -f $out nbdkit cc $script \ CC="$CXX" \ - EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ + EXTRA_CFLAGS="-I$abs_top_srcdir/include -I../include" \ --run 'nbdinfo --size $uri' > $out test "$(cat $out)" -eq $((100 * 1024 * 1024)) diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh index 68972fce0..79eb678df 100755 --- a/tests/test-cc-ocaml.sh +++ b/tests/test-cc-ocaml.sh @@ -57,6 +57,6 @@ cleanup_fn rm -f $out rm -f $out nbdkit -v cc $script a=1 b=2 c=3 d=4 \ - CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml $OCAML_PLUGIN_LIBRARIES NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ + CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I ../plugins/ocaml $OCAML_PLUGIN_LIBRARIES NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ --run 'nbdinfo --size $uri' > $out test "$(cat $out)" -eq $((512 * 2048)) diff --git a/tests/test-cc.sh b/tests/test-cc.sh index 2646704be..5c1db8b96 100755 --- a/tests/test-cc.sh +++ b/tests/test-cc.sh @@ -53,6 +53,6 @@ cleanup_fn rm -f $out rm -f $out nbdkit cc $script \ - EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ + EXTRA_CFLAGS="-I$abs_top_srcdir/include -I../include" \ --run 'nbdinfo --size $uri' > $out test "$(cat $out)" -eq $((100 * 1024 * 1024)) diff --git a/tests/test-curl-header-script-fail.sh b/tests/test-curl-header-script-fail.sh index cf9614f96..282e0ddf0 100755 --- a/tests/test-curl-header-script-fail.sh +++ b/tests/test-curl-header-script-fail.sh @@ -50,7 +50,7 @@ cleanup_fn rm -f $errors # This command is expected to fail. nbdkit -rfv \ curl file:$PWD/disk protocols=file \ - header-script=$PWD/test-curl-header-script-fail.script \ + header-script=$abs_top_srcdir/tests/test-curl-header-script-fail.script \ --run 'nbdinfo --no-content $uri' >$errors 2>&1 ||: cat $errors diff --git a/tests/test-linuxdisk-copy-out.sh b/tests/test-linuxdisk-copy-out.sh index 8c2f44bad..81b5b7439 100755 --- a/tests/test-linuxdisk-copy-out.sh +++ b/tests/test-linuxdisk-copy-out.sh @@ -65,14 +65,14 @@ guestfish --ro -a linuxdisk-copy-out.img -m /dev/sda </dev/null # Download some files and compare to local copies. - download /Makefile linuxdisk-copy-out.test1 + download /virtual-disk.c linuxdisk-copy-out.test1 download /Makefile.am linuxdisk-copy-out.test2 download /nbdkit-linuxdisk-plugin.pod linuxdisk-copy-out.test3 download /filesystem.c linuxdisk-copy-out.test4 EOF # Compare downloaded files to local versions. -cmp linuxdisk-copy-out.test1 $srcdir/../plugins/linuxdisk/Makefile +cmp linuxdisk-copy-out.test1 $srcdir/../plugins/linuxdisk/virtual-disk.c cmp linuxdisk-copy-out.test2 $srcdir/../plugins/linuxdisk/Makefile.am cmp linuxdisk-copy-out.test3 $srcdir/../plugins/linuxdisk/nbdkit-linuxdisk-plugin.pod cmp linuxdisk-copy-out.test4 $srcdir/../plugins/linuxdisk/filesystem.c diff --git a/tests/test-multi-conn-name.sh b/tests/test-multi-conn-name.sh index 6a180db72..2d2072925 100755 --- a/tests/test-multi-conn-name.sh +++ b/tests/test-multi-conn-name.sh @@ -42,6 +42,8 @@ requires_nbdsh_uri requires nbdsh -c 'print(h.set_opt_mode)' requires dd iflag=count_bytes test-multi-conn-name.out || fail=1 diff -u <(cat <<\EOF b'A' @@ -77,7 +79,7 @@ b'B' EOF ) test-multi-conn-name.out || fail=1 # But with the knob, our flush is specific to the correct export -nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ +nbdkit -vf sh $plugin --filter=multi-conn \ multi-conn-exportname=true \ --run 'export uri; nbdsh -c "$script"' > test-multi-conn-name.out || fail=1 diff -u <(cat <<\EOF diff --git a/tests/test-multi-conn.sh b/tests/test-multi-conn.sh index 3383cd246..eec225c2a 100755 --- a/tests/test-multi-conn.sh +++ b/tests/test-multi-conn.sh @@ -41,6 +41,8 @@ requires_plugin sh requires_nbdsh_uri requires dd iflag=count_bytes test-multi-conn.out || fail=1 @@ -208,7 +210,7 @@ for level in off connection fast; do plugin 'plugin --filter=cache'; do echo "setup: $level $mode" >> test-multi-conn.stat # Flush with no activity - nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ + nbdkit -vf sh $plugin --filter=multi-conn \ --filter=stats statsfile=test-multi-conn.stat statsappend=true \ multi-conn-track-dirty=$level multi-conn-mode=$mode \ --run 'nbdsh -c "$preamble" -c " @@ -217,7 +219,7 @@ h[0].pread(1, 0) h[0].flush() "' > test-multi-conn.out || fail=1 # Client that flushes assuming multi-conn semantics - nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ + nbdkit -vf sh $plugin --filter=multi-conn \ --filter=stats statsfile=test-multi-conn.stat statsappend=true \ multi-conn-track-dirty=$level multi-conn-mode=$mode \ --run 'handles=4 nbdsh -c "$preamble" -c " @@ -230,7 +232,7 @@ h[3].flush() h[3].flush() "' > test-multi-conn.out || fail=1 # Client that flushes assuming inconsistent semantics - nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ + nbdkit -vf sh $plugin --filter=multi-conn \ --filter=stats statsfile=test-multi-conn.stat statsappend=true \ multi-conn-track-dirty=$level multi-conn-mode=$mode \ --run 'nbdsh -c "$preamble" -c " diff --git a/tests/test-plugin-docs.sh b/tests/test-plugin-docs.sh index 772cfff07..e329035da 100755 --- a/tests/test-plugin-docs.sh +++ b/tests/test-plugin-docs.sh @@ -59,7 +59,7 @@ run_test () { plugin="$1" - pod=../plugins/$plugin/nbdkit-$plugin-plugin.pod + pod=$srcdir/../plugins/$plugin/nbdkit-$plugin-plugin.pod test -f "$pod" # Get the key=value lines from the help output. diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh index b25b789f7..674d0fcef 100755 --- a/tests/test-shebang-cc.sh +++ b/tests/test-shebang-cc.sh @@ -45,6 +45,9 @@ requires_run requires_plugin cc requires guestfish --version +# This variable is used by $script. +export abs_top_srcdir + $script -fv \ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ --run ' diff --git a/tests/test-tar.sh b/tests/test-tar.sh index 9c9b3974f..d1a602b99 100755 --- a/tests/test-tar.sh +++ b/tests/test-tar.sh @@ -45,7 +45,7 @@ cleanup_fn rm -f $files # Create a tar file containing the disk image plus some other random # files that hopefully will be ignored. -tar cf tar.tar test-tar.sh Makefile disk Makefile.am +tar cf tar.tar Makefile disk functions.sh tar tvvf tar.tar # Run nbdkit. diff --git a/tests/cc-shebang.c b/tests/cc-shebang.c index de2730f67..882fa2c1c 100755 --- a/tests/cc-shebang.c +++ b/tests/cc-shebang.c @@ -1,5 +1,7 @@ #if 0 -exec nbdkit cc "$0" "$@" +exec nbdkit cc "$0" "$@" \ + EXTRA_CFLAGS="-I.. -I../include \ + -I$abs_top_srcdir/include" #endif #include #include diff --git a/tests/test-read-password-plugin.c b/tests/test-read-password-plugin.c index 3f0a95153..703fc724d 100755 --- a/tests/test-read-password-plugin.c +++ b/tests/test-read-password-plugin.c @@ -1,5 +1,7 @@ #if 0 -exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I$abs_top_srcdir/include" +exec nbdkit cc "$0" "$@" \ + EXTRA_CFLAGS="-I.. -I../include \ + -I$abs_top_srcdir/include" #endif /* nbdkit * Copyright Red Hat -- 2.43.0