diff options
| author | ShyamsundarR <srangana@redhat.com> | 2018-08-08 18:29:01 -0400 | 
|---|---|---|
| committer | Atin Mukherjee <amukherj@redhat.com> | 2018-08-09 14:42:15 +0000 | 
| commit | 69c557ad8468f9e32090cbef78512f82a98f7043 (patch) | |
| tree | 9a7c6c3736b6205d93afb7c6a67e4e745a54d9e2 /run-tests.sh | |
| parent | 22d5540f5618ea0726a5eab1252163c48124cc06 (diff) | |
tests: Add ability to preserve older tarball for retried tests
When a test is retried, the cleanup directives overwrite the
older tarball with the latest one, thus losing the logs from
the failed run.
This patch changes run-tests.sh to rename the older tarball
when retrying a test, thus preserving the same.
The tarball is renamed using a time stamp and optionally a
trailing sequence number, in case the test fails within the
very second. Although the sequence # is not strictly required
as we retry only once, it provides a defence for any future
enhancements to the same.
Fixes: bz#1614062
Change-Id: I9afe486b0b6f6a26f2ad0642e38bc0ba15b3ecc9
Signed-off-by: ShyamsundarR <srangana@redhat.com>
Diffstat (limited to 'run-tests.sh')
| -rwxr-xr-x | run-tests.sh | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/run-tests.sh b/run-tests.sh index c8eaf9b9683..5efdc201517 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -17,6 +17,38 @@ kill_after_time=5  OSTYPE=$(uname -s) +# Function for use in generating filenames with increasing "-<n>" index +# In: +#       $1 basepath: Directory where file needs to be created +#       $2 filename: Name of the file sans extension +#       $3 extension: Extension string that would be appended to the generated +#               filename +# Out: +#       string of next available filename with appended "-<n>" if applicable +# Example: +#       Interested routines that want to create a file name, say foo.txt at +#       location /var/log/gluster would pass in "/var/log/gluster" "foo" "txt" +#       and be returned next available foo.txt filename to create. If foo.txt +#       is available then foo is returned, else foo-<n> (where n is the next +#       integer) is returned for use" +# Notes: +#       Function will not accept empty extension, and will return the same name +#       over and over (which can be fixed when there is a use-case for it) +function get_next_filename() +{ +        local basepath=$1 +        local filename=$2 +        local extension=$3 +        local next=2 +        local tfilename=${filename} +        while [ -e "${basepath}/${tfilename}.${extension}" ]; do +                tfilename="${filename}-${next}" +                next=$((next+1)) +        done + +        echo "$tfilename" +} +  function check_dependencies()  {      ## Check all dependencies are present @@ -320,6 +352,13 @@ function run_tests()                  echo "       * we got some spurious failures *"                  echo "       *********************************"                  echo "" +                # backup old tar ball with time stamp +                # TODO: Using gluster CLI here is possibly not the best thing! +                logdir=$(gluster --print-logdir) +                basetarname=$(basename "$t" .t) +                savetarname=$(get_next_filename "${logdir}" "${basetarname}-$(date +%H:%M:%S)" "tar" | tail -1) +                mv "$logdir"/"$basetarname".tar "$logdir"/"$savetarname".tar +                  if [ ${timeout_cmd_exists} == "yes" ]; then                      timeout -k ${kill_after_time} ${cmd_timeout} prove -vmfe '/bin/bash' ${t}                  else  | 
