Untangle tests (#112)

* Isolate S3 test case

* Isolate webdav test case

* Isolate SSH test case

* Isolate local storage test case

* Isolate gpg test case

* Add missing volume mount

* Fix file locations for local test case

* Remove compose test case, use utils

* Use test utils throughout

* Use dedicated tmp dir

* Fix link location that is being tested

* Use dedicated tmp_dirs when working on host fs

* Force delete artifact

* Fix expected filename

* Provide helpful messages on failing tests

* Fix filename

* Use proper volume names

* Fix syntax error, use large resource class

* Use named Docker volumes when referencing them in test scripts

* Add name of test case to logging output
This commit is contained in:
Frederik Ring
2022-06-23 14:40:29 +02:00
committed by GitHub
parent 1892d56ff6
commit c2a8cc92fc
23 changed files with 446 additions and 180 deletions

View File

@@ -4,6 +4,8 @@
set -e
cd $(dirname $0)
. ../util.sh
current_test=$(basename $(pwd))
mkdir -p local
@@ -12,17 +14,17 @@ sleep 5
docker-compose exec backup backup
sudo tar --same-owner -xvf ./local/backup.tar.gz -C /tmp
tmp_dir=$(mktemp -d)
sudo tar --same-owner -xvf ./local/backup.tar.gz -C $tmp_dir
sudo find /tmp/backup/postgres > /dev/null
echo "[TEST:PASS] Backup contains files at expected location"
sudo find $tmp_dir/backup/postgres > /dev/null
pass "Backup contains files at expected location"
for file in $(sudo find /tmp/backup/postgres); do
for file in $(sudo find $tmp_dir/backup/postgres); do
if [ "$(sudo stat -c '%u:%g' $file)" != "70:70" ]; then
echo "[TEST:FAIL] Unexpected file ownership for $file: $(sudo stat -c '%u:%g' $file)"
exit 1
fail "Unexpected file ownership for $file: $(sudo stat -c '%u:%g' $file)"
fi
done
echo "[TEST:PASS] All files and directories in backup preserved their ownership."
pass "All files and directories in backup preserved their ownership."
docker-compose down --volumes