diff options
author | David Sterba <dsterba@suse.com> | 2018-02-08 15:34:04 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-02-13 15:41:32 +0100 |
commit | 04cd2c0bcac7129026c80661933b4ab97d4ab9ca (patch) | |
tree | 75b5c7350131ca7b1d8c0cfc9f3b0d0115157449 /tests | |
parent | eb2fe7d1c476ebfa434ec2cf8afd1b52cce0f28e (diff) |
btrfs-progs: rework testsuite export
Move the testsuite to tests/ and make the tarball generation more
deterministic. As there could be many random temporary files left in the
test directories, we can't just copy them. Use 'git ls-tree' to
filter just what we want, this needs a slight extension of the file list
specification.
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/export-tests.sh | 37 | ||||
-rwxr-xr-x | tests/export-testsuite.sh | 55 | ||||
-rw-r--r-- | tests/testsuite-files | 22 |
3 files changed, 77 insertions, 37 deletions
diff --git a/tests/export-tests.sh b/tests/export-tests.sh deleted file mode 100755 index 0ed7dd99..00000000 --- a/tests/export-tests.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# export the testsuite files to a separate tar - -TESTSUITES_LIST_FILE=$PWD/testsuites-list -if ! [ -f $TESTSUITES_LIST_FILE ];then - echo "testsuites list file is not exsit." - exit 1 -fi - -TESTSUITES_LIST=$(cat $TESTSUITES_LIST_FILE) -if [ -z "$TESTSUITES_LIST" ]; then - echo "no file be list in testsuites-list" - exit 1 -fi - -DEST="btrfs-progs-tests.tar.gz" -if [ -f $DEST ];then - echo "remove exsit package: " $DEST - rm $DEST -fi - -TEST_ID=$PWD/testsuites-id -if [ -f $TEST_ID ];then - rm $TEST_ID -fi -VERSION=`./version.sh` -TIMESTAMP=`date -u "+%Y-%m-%d %T %Z"` - -echo "git version: " $VERSION > $TEST_ID -echo "this tar is created in: " $TIMESTAMP >> $TEST_ID - -echo "begin create tar: " $DEST -tar --exclude-vcs-ignores -zScf $DEST -C ../ $TESTSUITES_LIST -if [ $? -eq 0 ]; then - echo "create tar successfully." -fi -rm $TEST_ID diff --git a/tests/export-testsuite.sh b/tests/export-testsuite.sh new file mode 100755 index 00000000..31b6ecf4 --- /dev/null +++ b/tests/export-testsuite.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# export the testsuite files to a separate tar + +if ! [ -f testsuite-files ]; then + echo "ERROR: cannot find testsuite-files" + exit 1 +fi + +set -e + +TESTSUITE_TAR="btrfs-progs-tests.tar.gz" +rm -f "$TESTSUITE_TAR" + +TIMESTAMP=`date -u "+%Y-%m-%d %T %Z"` + +{ + echo "VERSION=`cat ../VERSION`" + echo "GIT_VERSION=`git describe`" + echo "TIMESTAMP='$TIMESTAMP'" +} > testsuite-id + +# Due to potentially unwanted files in the testsuite (restored images or other +# temporary files) we can't simply copy everything so the tar +# +# The testsuite-files specifier: +# F file +# - directly copy the file from the given path, may be a git tracked file or +# a built binary +# G path +# - a path relative to the top of git, recursively traversed; path +# postprocessing is needed so the tar gets it relative to tests/ +while read t f; do + case "$t" in + F) echo "$f";; + G) + here=`pwd` + cd .. + git ls-tree -r --name-only --full-name HEAD "$f" | + sed -e 's#^tests/##' | + sed -e 's#^Documentation#../Documentation#' + cd "$here" + ;; + esac +done < testsuite-files > testsuite-files-all + +echo "create tar: $TESTSUITE_TAR" +tar cz --sparse -f "$TESTSUITE_TAR" -T testsuite-files-all +if [ $? -eq 0 ]; then + echo "tar created successfully" + cat testsuite-id + rm -f testsuite-files-all + rm -f testsuite-id +else + exit $? +fi diff --git a/tests/testsuite-files b/tests/testsuite-files new file mode 100644 index 00000000..d75e2356 --- /dev/null +++ b/tests/testsuite-files @@ -0,0 +1,22 @@ +F README.md +G Documentation/ +F testsuite-id +F ../fssum +F ../btrfs-corrupt-block +F common +F common.convert +F common.local +G tests/cli-tests/ +F cli-tests.sh +G tests/convert-tests/ +F convert-tests.sh +G tests/fsck-tests/ +F fsck-tests.sh +G tests/fuzz-tests/ +F fuzz-tests.sh +G tests/misc-tests/ +F misc-tests.sh +G tests/mkfs-tests/ +F mkfs-tests.sh +F scan-results.sh +F test-console.sh |