diff --git a/test/functional/bundleadd/add-bad-hash-state.bats b/test/functional/bundleadd/add-bad-hash-state.bats index ad4ae7f8..3c97725d 100755 --- a/test/functional/bundleadd/add-bad-hash-state.bats +++ b/test/functional/bundleadd/add-bad-hash-state.bats @@ -8,8 +8,8 @@ test_setup() { create_bundle -n test-bundle -f /usr/bin/test-file "$TEST_NAME" # set up state directory with bad hash file and pack hint file_hash=$(get_hash_from_manifest "$TEST_NAME"/web-dir/10/Manifest.test-bundle /usr/bin/test-file) - sudo sh -c "echo \"test file MODIFIED\" > $TEST_NAME/state/staged/$file_hash" - sudo touch "$TEST_NAME"/state/pack-test-bundle-from-0-to-10.tar + sudo sh -c "echo \"test file MODIFIED\" > $STATEDIR/staged/$file_hash" + sudo touch "$STATEDIR"/pack-test-bundle-from-0-to-10.tar } @@ -18,13 +18,13 @@ test_setup() { # since one of the files needed to install the bundle is already in the state/staged # directory, in theory this one should be used instead of downloading it again... # however since the hash of this file is wrong it should be deleted and re-downloaded - hash_before=$(sudo "$SWUPD" hashdump "$TEST_NAME"/state/staged/"$file_hash") + hash_before=$(sudo "$SWUPD" hashdump "$STATEDIR"/staged/"$file_hash") run sudo sh -c "$SWUPD bundle-add $SWUPD_OPTS test-bundle" assert_status_is 0 - hash_after=$(sudo "$SWUPD" hashdump "$TEST_NAME"/state/staged/"$file_hash") - assert_file_exists "$TEST_NAME"/target-dir/usr/bin/test-file + hash_after=$(sudo "$SWUPD" hashdump "$STATEDIR"/staged/"$file_hash") + assert_file_exists "$TARGETDIR"/usr/bin/test-file assert_not_equal "$hash_before" "$hash_after" expected_output=$(cat <<-EOM Starting download of remaining update content. This may take a while... diff --git a/test/functional/bundleadd/add-bad-hash.bats b/test/functional/bundleadd/add-bad-hash.bats index 7a25a032..7816d430 100755 --- a/test/functional/bundleadd/add-bad-hash.bats +++ b/test/functional/bundleadd/add-bad-hash.bats @@ -25,14 +25,13 @@ test_setup() { # downloaded fullfile had a bad hash - immediately fatal with a 1 return code assert_status_is 1 # the bad hash file should not exist on the system - assert_file_not_exists "$TEST_NAME"/target-dir/usr/bin/file1 + assert_file_not_exists "$TARGETDIR"/usr/bin/file1 expected_output=$(cat <<-EOM Starting download of remaining update content. This may take a while... Finishing download of update content... - Error: File content hash mismatch for $TEST_DIRNAME/state/staged/e6d85023c5e619eb43d5cfbfdbdec784afef5a82ffa54e8c93bda3e0883360a3 (bad server data?) + Error: File content hash mismatch for $TEST_DIRNAME/testfs/state/staged/e6d85023c5e619eb43d5cfbfdbdec784afef5a82ffa54e8c93bda3e0883360a3 (bad server data?) EOM ) assert_is_output "$expected_output" } - diff --git a/test/functional/bundleadd/add-boot-file.bats b/test/functional/bundleadd/add-boot-file.bats index a5c771ce..f55c12c5 100755 --- a/test/functional/bundleadd/add-boot-file.bats +++ b/test/functional/bundleadd/add-boot-file.bats @@ -15,7 +15,7 @@ test_setup() { run sudo sh -c "$SWUPD bundle-add $SWUPD_OPTS test-bundle" assert_status_is 0 - assert_file_exists "$TEST_NAME/target-dir/usr/lib/kernel/test-file" + assert_file_exists "$TARGETDIR/usr/lib/kernel/test-file" expected_output=$(cat <<-EOM Starting download of remaining update content. This may take a while... Finishing download of update content... diff --git a/test/functional/bundleadd/add-boot-skip.bats b/test/functional/bundleadd/add-boot-skip.bats index c3fa5a38..b946be6c 100755 --- a/test/functional/bundleadd/add-boot-skip.bats +++ b/test/functional/bundleadd/add-boot-skip.bats @@ -15,7 +15,7 @@ test_setup() { run sudo sh -c "$SWUPD bundle-add -b $SWUPD_OPTS test-bundle" assert_status_is 0 - assert_file_exists "$TEST_NAME/target-dir/usr/lib/kernel/test-file" + assert_file_exists "$TARGETDIR/usr/lib/kernel/test-file" expected_output=$(cat <<-EOM Starting download of remaining update content. This may take a while... Finishing download of update content... diff --git a/test/functional/bundleadd/add-client-certificate.bats b/test/functional/bundleadd/add-client-certificate.bats index 51de3658..816a50e4 100755 --- a/test/functional/bundleadd/add-client-certificate.bats +++ b/test/functional/bundleadd/add-client-certificate.bats @@ -73,7 +73,7 @@ global_teardown() { run sudo sh -c "$SWUPD bundle-add $SWUPD_OPTS test-bundle" assert_status_is 0 - assert_file_exists "$TEST_NAME"/target-dir/usr/bin/test-file + assert_file_exists "$TARGETDIR"/usr/bin/test-file } @test "ADD024: Try adding bundle over HTTPS with no client certificate" { diff --git a/test/functional/bundleadd/add-include.bats b/test/functional/bundleadd/add-include.bats index a4df777b..b697798d 100755 --- a/test/functional/bundleadd/add-include.bats +++ b/test/functional/bundleadd/add-include.bats @@ -8,7 +8,7 @@ test_setup() { create_bundle -n test-bundle1 -f /foo/test-file1 "$TEST_NAME" create_bundle -n test-bundle2 -f /bar/test-file2 "$TEST_NAME" # add test-bundle2 as a dependency of test-bundle1 - add_dependency_to_manifest "$TEST_NAME"/web-dir/10/Manifest.test-bundle1 test-bundle2 + add_dependency_to_manifest "$WEBDIR"/10/Manifest.test-bundle1 test-bundle2 } @@ -17,8 +17,8 @@ test_setup() { run sudo sh -c "$SWUPD bundle-add $SWUPD_OPTS test-bundle1" assert_status_is 0 - assert_file_exists "$TEST_NAME"/target-dir/foo/test-file1 - assert_file_exists "$TEST_NAME"/target-dir/bar/test-file2 + assert_file_exists "$TARGETDIR"/foo/test-file1 + assert_file_exists "$TARGETDIR"/bar/test-file2 expected_output=$(cat <<-EOM Starting download of remaining update content. This may take a while... Finishing download of update content... diff --git a/test/functional/bundleadd/add-multiple.bats b/test/functional/bundleadd/add-multiple.bats index 1c7982b8..c9f03d8a 100755 --- a/test/functional/bundleadd/add-multiple.bats +++ b/test/functional/bundleadd/add-multiple.bats @@ -16,10 +16,10 @@ test_setup() { run sudo sh -c "$SWUPD bundle-add $SWUPD_OPTS test-bundle1 test-bundle2" assert_status_is 0 - assert_dir_exists "$TEST_NAME/target-dir/usr/bin" - assert_dir_exists "$TEST_NAME/target-dir/media/lib" - assert_file_exists "$TEST_NAME/target-dir/usr/bin/10" - assert_file_exists "$TEST_NAME/target-dir/media/lib/file2" + assert_dir_exists "$TARGETDIR/usr/bin" + assert_dir_exists "$TARGETDIR/media/lib" + assert_file_exists "$TARGETDIR/usr/bin/10" + assert_file_exists "$TARGETDIR/media/lib/file2" expected_output=$(cat <<-EOM Downloading packs... Extracting test-bundle1 pack for version 10 diff --git a/test/functional/bundleadd/add-skip-scripts.bats b/test/functional/bundleadd/add-skip-scripts.bats index e6d3ff46..6f2cc24d 100755 --- a/test/functional/bundleadd/add-skip-scripts.bats +++ b/test/functional/bundleadd/add-skip-scripts.bats @@ -14,7 +14,7 @@ test_setup() { run sudo sh -c "$SWUPD bundle-add --no-scripts $SWUPD_OPTS test-bundle" assert_status_is 0 - assert_file_exists "$TEST_NAME/target-dir/usr/lib/kernel/test-file" + assert_file_exists "$TARGETDIR/usr/lib/kernel/test-file" expected_output=$(cat <<-EOM Starting download of remaining update content. This may take a while... Finishing download of update content... diff --git a/test/functional/bundleadd/add-verify-fix-path.bats b/test/functional/bundleadd/add-verify-fix-path.bats index e87019b8..acba0de4 100755 --- a/test/functional/bundleadd/add-verify-fix-path.bats +++ b/test/functional/bundleadd/add-verify-fix-path.bats @@ -10,12 +10,12 @@ test_setup() { # bundles created with the testlib add all needed directories to the # manifest by default, so we need to remove the directory from test-bundle1 # so its missing the path to the file. - remove_from_manifest "$TEST_NAME"/web-dir/10/Manifest.test-bundle1 /foo - remove_from_manifest "$TEST_NAME"/web-dir/10/Manifest.test-bundle1 /foo/bar + remove_from_manifest "$WEBDIR"/10/Manifest.test-bundle1 /foo + remove_from_manifest "$WEBDIR"/10/Manifest.test-bundle1 /foo/bar # since test-bundle2 is already installed, both directories defined # there already exist, so we need to delete one of the /foo/bar so it # can be fixed using verify_fix_path - sudo rm -rf "$TEST_NAME"/target-dir/foo/bar + sudo rm -rf "$TARGETDIR"/foo/bar } @@ -27,7 +27,7 @@ test_setup() { Starting download of remaining update content. This may take a while... Finishing download of update content... Installing bundle(s) files... - Update target directory does not exist: $TEST_DIRNAME/target-dir/foo/bar. Auto-fix disabled + Update target directory does not exist: $TEST_DIRNAME/testfs/target-dir/foo/bar. Auto-fix disabled Path /foo/bar is missing on the file system ... fixing Path /foo/bar/test-file1 is missing on the file system ... fixing Calling post-update helper scripts. diff --git a/test/functional/bundleremove/remove-include-nested.bats b/test/functional/bundleremove/remove-include-nested.bats index c66028b9..5de2f789 100755 --- a/test/functional/bundleremove/remove-include-nested.bats +++ b/test/functional/bundleremove/remove-include-nested.bats @@ -22,9 +22,9 @@ test_setup() { assert_file_exists "$TARGETDIR"/usr/share/clear/bundles/test-bundle1 assert_file_exists "$TARGETDIR"/usr/share/clear/bundles/test-bundle2 assert_file_exists "$TARGETDIR"/usr/share/clear/bundles/test-bundle3 - assert_file_exists "$TEST_NAME"/target-dir/test-file1 - assert_file_exists "$TEST_NAME"/target-dir/test-file2 - assert_file_exists "$TEST_NAME"/target-dir/test-file3 + assert_file_exists "$TARGETDIR"/test-file1 + assert_file_exists "$TARGETDIR"/test-file2 + assert_file_exists "$TARGETDIR"/test-file3 expected_output=$(cat <<-EOM Error: bundle requested to be removed is required by the following bundles: format: diff --git a/test/functional/checkupdate/chk-update-no-target-content.bats b/test/functional/checkupdate/chk-update-no-target-content.bats index 0cd2039b..95febdf7 100755 --- a/test/functional/checkupdate/chk-update-no-target-content.bats +++ b/test/functional/checkupdate/chk-update-no-target-content.bats @@ -6,7 +6,7 @@ test_setup() { create_test_environment "$TEST_NAME" # remove os-release file from target-dir so no current version can be determined - sudo rm "$TEST_NAME"/target-dir/usr/lib/os-release + sudo rm "$TARGETDIR"/usr/lib/os-release } diff --git a/test/functional/testlib.bash b/test/functional/testlib.bash index 10999b36..2837f2fa 100644 --- a/test/functional/testlib.bash +++ b/test/functional/testlib.bash @@ -230,6 +230,15 @@ validate_param() { } +validate_number() { + + local param=$1 + if ! [[ $param =~ ^[0-9]+([.][0-9]+)?$ ]] ; then + terminate "Bad parameter provided, expecting a number" + fi + +} + # Writes to a file that is owned by root # Parameters: # - "-a": if set, the text will be appeneded to the file, @@ -264,6 +273,7 @@ set_env_variables() { # swupd_function local env_name=$1 local path + local testfs_path # If no parameters are received show usage if [ $# -eq 0 ]; then cat <<-EOM @@ -274,19 +284,25 @@ set_env_variables() { # swupd_function fi validate_path "$env_name" path=$(dirname "$(realpath "$env_name")") + testfs_path="$path"/"$env_name"/testfs + + export TEST_DIRNAME="$path"/"$env_name" + export WEBDIR="$env_name"/web-dir + export TARGETDIR="$env_name"/testfs/target-dir + export STATEDIR="$env_name"/testfs/state # different options for swupd - export SWUPD_OPTS="-S $path/$env_name/state -p $path/$env_name/target-dir -F staging -C $FUNC_DIR/Swupd_Root.pem -I" + export SWUPD_OPTS="-S $testfs_path/state -p $testfs_path/target-dir -F staging -C $FUNC_DIR/Swupd_Root.pem -I" export SWUPD_OPTS_KEEPCACHE="$SWUPD_OPTS --keepcache" - export SWUPD_OPTS_NO_CERT="-S $path/$env_name/state -p $path/$env_name/target-dir -F staging" - export SWUPD_OPTS_MIRROR="-p $path/$env_name/target-dir" - export SWUPD_OPTS_NO_FMT="-S $path/$env_name/state -p $path/$env_name/target-dir -C $FUNC_DIR/Swupd_Root.pem -I" + export SWUPD_OPTS_NO_CERT="-S $testfs_path/state -p $testfs_path/target-dir -F staging" + export SWUPD_OPTS_MIRROR="-p $testfs_path/target-dir" + export SWUPD_OPTS_NO_FMT="-S $testfs_path/state -p $testfs_path/target-dir -C $FUNC_DIR/Swupd_Root.pem -I" - export CLIENT_CERT_DIR="$TEST_NAME/target-dir/etc/swupd" + export CLIENT_CERT_DIR="$testfs_path/target-dir/etc/swupd" export CLIENT_CERT="$CLIENT_CERT_DIR/client.pem" export CACERT_DIR="$SWUPD_DIR/swupd_test_certificates" # trusted key store path - export PORT_FILE="$TEST_NAME/port_file.txt" # stores web server port - export SERVER_PID_FILE="$TEST_NAME/pid_file.txt" # stores web server pid + export PORT_FILE="$path/$env_name/port_file.txt" # stores web server port + export SERVER_PID_FILE="$path/$env_name/pid_file.txt" # stores web server pid # Add environment variables for PORT and SERVER_PID when web server used if [ -f "$PORT_FILE" ]; then @@ -298,11 +314,6 @@ set_env_variables() { # swupd_function export SERVER_PID=$(cat "$SERVER_PID_FILE") fi - export TEST_DIRNAME="$path"/"$env_name" - export WEBDIR="$env_name"/web-dir - export TARGETDIR="$env_name"/target-dir - export STATEDIR="$env_name"/state - } # Creates a directory with a hashed name in the specified path, if a directory @@ -362,7 +373,7 @@ create_file() { # swupd_function validate_path "$path" if [ -n "$size" ]; then - head -c "$size" /dev/urandom | sudo tee "$path/testfile" > /dev/null + < /dev/urandom tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | head -c "$size" | sudo tee "$path/testfile" > /dev/null else generate_random_content | sudo tee "$path/testfile" > /dev/null fi @@ -1141,7 +1152,7 @@ set_current_version() { # swupd_function fi validate_path "$env_name" - sudo sed -i "s/VERSION_ID=.*/VERSION_ID=$new_version/" "$env_name"/target-dir/usr/lib/os-release + sudo sed -i "s/VERSION_ID=.*/VERSION_ID=$new_version/" "$env_name"/testfs/target-dir/usr/lib/os-release } @@ -1309,19 +1320,10 @@ create_version() { # swupd_function # - FORMAT: the format number to use initially in the environment create_test_environment() { # swupd_function - local empty=false - local release_files=false - [ "$1" = "-e" ] && { empty=true ; shift ; } - [ "$1" = "-r" ] && { release_files=true ; shift ; } - local env_name=$1 - local version=${2:-10} - local format=${3:-staging} - local path - # If no parameters are received show usage - if [ $# -eq 0 ]; then + cte_usage() { cat <<-EOM Usage: - create_test_environment [-e|-r] [initial_version] [format] + create_test_environment [-e|-r] [-s ] [initial_version] [format] Options: -e If set, the test environment is created empty, otherwise it will have @@ -1329,12 +1331,47 @@ create_test_environment() { # swupd_function -r If set, the test environment is created with a more complete version of the os-core bundle, a version that includes the os-release and format files, so it is more useful for some tests, like update tests. + -s If used, specifies the maximum size the test environment has in MB, this + can be useful when testing scenarios bound to the disk size. Note: options -e and -r are mutually exclusive, so you can only use one at a time. - EOM + EOM + } + + local OPTIND + local opt + local empty=false + local release_files=false + local size=0 + local path + local tagetdir + local statedir + local fs + + # If no parameters are received show usage + if [ $# -eq 0 ]; then + create_test_environment -h return fi + + while getopts :ers: opt; do + case "$opt" in + e) empty=true + release_files=false ;; + r) release_files=true + empty=false ;; + s) size="$OPTARG" ;; + *) cte_usage + return ;; + esac + done + shift $((OPTIND-1)) + + local env_name=$1 + local version=${2:-10} + local format=${3:-staging} validate_param "$env_name" + validate_number "$size" # clean test environment when test interrupted trap "destroy_test_environment $TEST_NAME" INT @@ -1348,20 +1385,32 @@ create_test_environment() { # swupd_function create_version -p "$env_name" "$version" "0" "$format" fi + # if a size was selected, create the FS, + # if not just use a normal directory + if [ "$size" -gt 0 ]; then + print "Creating a test file system..." + print "Created: $(create_test_fs "$env_name" "$size") ($size MB)" + sudo touch "$env_name"/.testfs + else + sudo mkdir -p "$env_name"/testfs + fi + targetdir="$env_name"/testfs/target-dir + statedir="$env_name"/testfs/state + # target-dir files & dirs path=$(dirname "$(realpath "$env_name")") - sudo mkdir -p "$env_name"/target-dir/usr/lib - sudo cp "$env_name"/web-dir/"$version"/os-release "$env_name"/target-dir/usr/lib/os-release - sudo mkdir -p "$env_name"/target-dir/usr/share/clear/bundles - sudo mkdir -p "$env_name"/target-dir/usr/share/defaults/swupd - sudo cp "$env_name"/web-dir/"$version"/format "$env_name"/target-dir/usr/share/defaults/swupd/format - write_to_protected_file "$env_name"/target-dir/usr/share/defaults/swupd/versionurl "file://$path/$env_name/web-dir" - write_to_protected_file "$env_name"/target-dir/usr/share/defaults/swupd/contenturl "file://$path/$env_name/web-dir" - sudo mkdir -p "$env_name"/target-dir/etc/swupd + sudo mkdir -p "$targetdir"/usr/lib + sudo cp "$env_name"/web-dir/"$version"/os-release "$targetdir"/usr/lib/os-release + sudo mkdir -p "$targetdir"/usr/share/clear/bundles + sudo mkdir -p "$targetdir"/usr/share/defaults/swupd + sudo cp "$env_name"/web-dir/"$version"/format "$targetdir"/usr/share/defaults/swupd/format + write_to_protected_file "$targetdir"/usr/share/defaults/swupd/versionurl "file://$path/$env_name/web-dir" + write_to_protected_file "$targetdir"/usr/share/defaults/swupd/contenturl "file://$path/$env_name/web-dir" + sudo mkdir -p "$targetdir"/etc/swupd # state files & dirs - sudo mkdir -p "$env_name"/state/{staged,download,delta,telemetry} - sudo chmod -R 0700 "$env_name"/state + sudo mkdir -p "$statedir"/{staged,download,delta,telemetry} + sudo chmod -R 0700 "$statedir" # export environment variables that are dependent of the test env set_env_variables "$env_name" @@ -1420,16 +1469,75 @@ destroy_test_environment() { # swupd_function # since the action to be performed is very destructive, at least # make sure the directory does look like a test environment - for var in "state" "target-dir" "web-dir"; do - if [ ! -d "$env_name/$var" ]; then + for var in "testfs" "web-dir"; do + if [ ! -d "$env_name"/"$var" ]; then echo "The name provided doesn't seem to be a valid test environment" return 1 fi done + + # if a test fs was created, destroy it + if [ -e "$env_name"/.testfs ]; then + destroy_test_fs "$env_name" + fi + sudo rm -rf "$env_name" } +# Creates a test fiile system of a given size +create_test_fs() { # swupd_function + + local env_name=$1 + local size=$2 + local fsfile + # If no parameters are received show usage + if [ $# -eq 0 ]; then + cat <<-EOM + Usage: + create_test_fs + EOM + return + fi + validate_path "$env_name" + validate_param "$size" + fsfile=/tmp/"$env_name" + + # create a file of the appropriate size + dd if=/dev/zero of="$fsfile" bs=1M count="$size" >& /dev/null + # create loop device and format it + sudo losetup -f "$fsfile" + mkfs.ext4 "$fsfile" >& /dev/null + # mount the fs + sudo mkdir "$env_name"/testfs + sudo mount "$fsfile" "$env_name"/testfs -o sync + + # return the fs + echo "$env_name"/testfs + +} + +destroy_test_fs() { # swupd_function + + local env_name=$1 + local fsfile + # If no parameters are received show usage + if [ $# -eq 0 ]; then + cat <<-EOM + Usage: + destroy_test_fs + EOM + return + fi + validate_path "$env_name" + fsfile=/tmp/"$env_name" + + sudo umount "$env_name"/testfs + sudo losetup -d "$(losetup -j "$fsfile" -nO NAME)" + rm "$fsfile" + +} + # creates a mirror of whatever is in web-dir # Parameters: # - ENVIRONMENT_NAME: the name of the test environment where the mirror will be created @@ -1455,8 +1563,8 @@ create_mirror() { # swupd_function export MIRROR="$env_name"/mirror/web-dir # set the mirror in the target-dir - write_to_protected_file "$env_name"/target-dir/etc/swupd/mirror_versionurl "file://$path/$MIRROR" - write_to_protected_file "$env_name"/target-dir/etc/swupd/mirror_contenturl "file://$path/$MIRROR" + write_to_protected_file "$env_name"/testfs/target-dir/etc/swupd/mirror_versionurl "file://$path/$MIRROR" + write_to_protected_file "$env_name"/testfs/target-dir/etc/swupd/mirror_contenturl "file://$path/$MIRROR" } @@ -1484,7 +1592,7 @@ set_version_url() { # swupd_function validate_path "$env_name" validate_param "$version_url" - write_to_protected_file "$env_name"/target-dir/usr/share/defaults/swupd/versionurl "$version_url" + write_to_protected_file "$env_name"/testfs/target-dir/usr/share/defaults/swupd/versionurl "$version_url" } @@ -1512,7 +1620,7 @@ set_content_url() { # swupd_function validate_path "$env_name" validate_param "$content_url" - write_to_protected_file "$env_name"/target-dir/usr/share/defaults/swupd/contenturl "$content_url" + write_to_protected_file "$env_name"/testfs/target-dir/usr/share/defaults/swupd/contenturl "$content_url" } @@ -1827,7 +1935,7 @@ create_bundle() { # swupd_function validate_path "$env_name" version_path="$env_name"/web-dir/"$version" files_path="$version_path"/files - target_path="$env_name"/target-dir + target_path="$env_name"/testfs/target-dir # 1) create the initial manifest manifest=$(create_manifest "$version_path" "$bundle_name") @@ -2055,7 +2163,7 @@ remove_bundle() { # swupd_function return fi - target_path=$(dirname "$bundle_manifest" | cut -d "/" -f1)/target-dir + target_path=$(dirname "$bundle_manifest" | cut -d "/" -f1)/testfs/target-dir version_path=$(dirname "$bundle_manifest") manifest_file=$(basename "$bundle_manifest") bundle_name=${manifest_file#Manifest.} @@ -2111,7 +2219,7 @@ install_bundle() { # swupd_function return fi validate_item "$bundle_manifest" - target_path=$(dirname "$bundle_manifest" | cut -d "/" -f1)/target-dir + target_path=$(dirname "$bundle_manifest" | cut -d "/" -f1)/testfs/target-dir files_path=$(dirname "$bundle_manifest")/files manifest_file=$(basename "$bundle_manifest") bundle_name=${manifest_file#Manifest.} @@ -2529,9 +2637,9 @@ clean_state_dir() { # swupd_function fi validate_path "$env_name" - sudo rm -rf "$env_name"/state - sudo mkdir -p "$env_name"/state/{staged,download,delta,telemetry} - sudo chmod -R 0700 "$env_name"/state + sudo rm -rf "$env_name"/testfs/state + sudo mkdir -p "$env_name"/testfs/state/{staged,download,delta,telemetry} + sudo chmod -R 0700 "$env_name"/testfs/state } @@ -2765,7 +2873,7 @@ teardown() { if [ "$DEBUG_TEST" = true ] && [ "$global_env" = true ] && [ -d "$TEST_NAME" ]; then print "Saving a copy of the state dir in $TEST_NAME/state_$BATS_TEST_NUMBER" - sudo cp -r "$TEST_NAME"/state "$TEST_NAME"/state_"$BATS_TEST_NUMBER" + sudo cp -r "$TEST_NAME"/testfs/state "$TEST_NAME"/state_"$BATS_TEST_NUMBER" fi test_teardown # if the last test just ran, run the global teardown diff --git a/test/functional/verify/verify-missing-file.bats b/test/functional/verify/verify-missing-file.bats index 057bff8c..0e9ca6d7 100755 --- a/test/functional/verify/verify-missing-file.bats +++ b/test/functional/verify/verify-missing-file.bats @@ -25,8 +25,8 @@ test_setup() { EOM ) assert_regex_is_output "$expected_output" - assert_file_not_exists "$TEST_NAME"/target-dir/foo/test-file1 - assert_file_exists "$TEST_NAME"/target-dir/bar/test-file2 + assert_file_not_exists "$TARGETDIR"/foo/test-file1 + assert_file_exists "$TARGETDIR"/bar/test-file2 } @@ -52,7 +52,7 @@ test_setup() { EOM ) assert_regex_is_output "$expected_output" - assert_file_exists "$TEST_NAME"/target-dir/foo/test-file1 - assert_file_exists "$TEST_NAME"/target-dir/bar/test-file2 + assert_file_exists "$TARGETDIR"/foo/test-file1 + assert_file_exists "$TARGETDIR"/bar/test-file2 }