diff mbox

[for-2.11,1/3] qemu-iotests: set TEST_DIR to a unique dir for each test

Message ID 03558ebe46550c94a977bb4bb09555cec5dac022.1501477080.git.jcody@redhat.com
State New
Headers show

Commit Message

Jeff Cody July 31, 2017, 5:04 a.m. UTC
Right now, all qemu-iotests output data into the same scratch directory,
and so each tests needs to be responsible for cleanup up its own files.

Have each test use 'scratch/$seq' as its temp directory, so the check
script can do simple cleanup of removing the whole temporary directory.

Signed-off-by: Jeff Cody <jcody@redhat.com>
---
 tests/qemu-iotests/check | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

Comments

Eric Blake July 31, 2017, 12:03 p.m. UTC | #1
On 07/31/2017 12:04 AM, Jeff Cody wrote:
> Right now, all qemu-iotests output data into the same scratch directory,
> and so each tests needs to be responsible for cleanup up its own files.

And, tests must either use unique names or else cannot be run in parallel.

> 
> Have each test use 'scratch/$seq' as its temp directory, so the check
> script can do simple cleanup of removing the whole temporary directory.

It also makes it much nicer for a potential future patch to parallelize
things, now that every tests' temporary files are uniquely named by
virtue of the subdirectory.

> 
> Signed-off-by: Jeff Cody <jcody@redhat.com>
> ---
>  tests/qemu-iotests/check | 21 +++++++++++++++++----
>  1 file changed, 17 insertions(+), 4 deletions(-)
> 


> @@ -300,13 +301,23 @@ do
>          fi
>          export OUTPUT_DIR=$PWD
>          if $debug; then
> -            (cd "$source_iotests";
> +            (
> +            cd "$source_iotests";

Pre-existing; but we should check that the 'cd' succeeded (if not, the
rest of the code is at risk of doing things in the wrong directory).

Reviewed-by: Eric Blake <eblake@redhat.com>
diff mbox

Patch

diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
index 2a55ec9..20cb93d 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -254,6 +254,7 @@  seq="check"
 
 for seq in $list
 do
+    TEST_DIR_SEQ=$TEST_DIR/$seq
     err=false
     printf %s "$seq"
     if [ -n "$TESTS_REMAINING_LOG" ] ; then
@@ -300,13 +301,23 @@  do
         fi
         export OUTPUT_DIR=$PWD
         if $debug; then
-            (cd "$source_iotests";
+            (
+            cd "$source_iotests";
+            export TEST_DIR=$TEST_DIR_SEQ
+            . "$source_iotests/common.config"
+            . "$source_iotests/common.rc"
             MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(($RANDOM % 255 + 1))} \
-                    $run_command -d 2>&1 | tee $tmp.out)
+                    $run_command -d 2>&1 | tee $tmp.out
+            )
         else
-            (cd "$source_iotests";
+            (
+            export TEST_DIR=$TEST_DIR_SEQ
+            . "$source_iotests/common.config"
+            . "$source_iotests/common.rc"
+             cd "$source_iotests";
             MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(($RANDOM % 255 + 1))} \
-                    $run_command >$tmp.out 2>&1)
+                    $run_command >$tmp.out 2>&1
+            )
         fi
         sts=$?
         $timestamp && _timestamp
@@ -370,6 +381,8 @@  do
             fi
         fi
 
+        rm -rf "$TEST_DIR_SEQ"
+
     fi
 
     # come here for each test, except when $showme is true