Tests: add test labels, add first system tests (snapshot, destroy)

pull/83/merge
Martin Matuska 2020-07-29 17:45:52 +02:00
parent a3f05157cd
commit e82a99965c
No known key found for this signature in database
GPG Key ID: EC560C81CEC2276E
9 changed files with 202 additions and 5 deletions

View File

@ -11,4 +11,4 @@ Tests_task:
prepare_script:
- cd tests && sh prepare.sh
test_script:
- cd tests && sh run.sh
- cd tests && env RUN_TESTS="unit integration system" sh ./run.sh

View File

@ -15,4 +15,4 @@ jobs:
- name: Prepare ZFS environment
run: cd tests && sudo sh prepare.sh
- name: Run tests
run: cd tests && sudo sh ./run.sh
run: cd tests && sudo env RUN_TESTS="unit integration system" sh ./run.sh

7
tests/integration/000_label.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# This file is licensed under the BSD-3-Clause license.
# See the AUTHORS and LICENSE files for more information.
echo ""
echo "Integration tests"
echo "-----------------"

View File

@ -3,8 +3,9 @@
# See the AUTHORS and LICENSE files for more information.
EXIT_WITH_ERROR=0
RUN_TESTS=${RUN_TESTS:-"unit integration"}
for i in unit integration system; do
for i in ${RUN_TESTS}; do
cd "$i"
for t in ./* ; do
"./${t}"

View File

@ -73,11 +73,18 @@ ExitTests () {
exit "$SPEC_FAILED"
}
VerifySnap () {
VerifySnapExists () {
ItReturns "$ZFS list -H -t snapshot $1 > /dev/null 2> /dev/null" 0
}
VerifySnapNotExists () {
ItReturns "$ZFS list -H -t snapshot $1 > /dev/null 2> /dev/null" 1
}
CreateSnap () {
ItReturns "$ZFS snapshot $1 > /dev/null 2> /dev/null" 0
}
DestroySnap () {
ItReturns "$ZFS destroy $1 2> /dev/null" 0
ItReturns "$ZFS list -H -t snapshot $1 > /dev/null 2> /dev/null" 1
}

7
tests/system/000_label.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# This file is licensed under the BSD-3-Clause license.
# See the AUTHORS and LICENSE files for more information.
echo ""
echo "System tests"
echo "------------"

108
tests/system/destroy.sh Executable file
View File

@ -0,0 +1,108 @@
#!/bin/sh
# This file is licensed under the BSD-3-Clause license.
# See the AUTHORS and LICENSE files for more information.
. ../spec_helper.sh
zfsnap='../../sbin/zfsnap.sh'
zfs=`which zfs`
DATASET="$TEST_POOL/$TEST_DATASET"
CREATE_DATE="2020-01-01_10.00.00"
DELETE_DATE="2020-03-01_10.00.00"
echo ""
echo "Destroy without any options"
CreateSnap "$DATASET@$CREATE_DATE--1m"
CreateSnap "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
CreateSnap "$DATASET/$subds@$CREATE_DATE--1m"
CreateSnap "$DATASET/$subds@$CREATE_DATE--3m"
done
ItReturns "CURRENT_DATE=$DELETE_DATE $zfsnap destroy $DATASET 2> /dev/null" 0
VerifySnapNotExists "$DATASET@$CREATE_DATE--1m"
VerifySnapExists "$DATASET@$CREATE_DATE--3m"
DestroySnap "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
DestroySnap "$DATASET/$subds@$CREATE_DATE--1m"
DestroySnap "$DATASET/$subds@$CREATE_DATE--3m"
done
echo ""
echo "Destroy all snapshots (-D)"
CreateSnap "$DATASET@$CREATE_DATE--1m"
CreateSnap "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
CreateSnap "$DATASET/$subds@$CREATE_DATE--1m"
CreateSnap "$DATASET/$subds@$CREATE_DATE--3m"
done
ItReturns "CURRENT_DATE=$DELETE_DATE $zfsnap destroy -D $DATASET 2> /dev/null" 0
VerifySnapNotExists "$DATASET@$CREATE_DATE--1m"
VerifySnapNotExists "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
DestroySnap "$DATASET/$subds@$CREATE_DATE--1m"
DestroySnap "$DATASET/$subds@$CREATE_DATE--3m"
done
echo ""
echo "Recursive destroy (-r)"
CreateSnap "$DATASET@$CREATE_DATE--1m"
CreateSnap "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
CreateSnap "$DATASET/$subds@$CREATE_DATE--1m"
CreateSnap "$DATASET/$subds@$CREATE_DATE--3m"
done
ItReturns "CURRENT_DATE=$DELETE_DATE $zfsnap destroy -r $DATASET 2> /dev/null" 0
VerifySnapNotExists "$DATASET@$CREATE_DATE--1m"
VerifySnapExists "$DATASET@$CREATE_DATE--3m"
DestroySnap "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
VerifySnapNotExists "$DATASET/$subds@$CREATE_DATE--1m"
DestroySnap "$DATASET/$subds@$CREATE_DATE--3m"
done
echo ""
echo "Recursive destroy all snapshots (-r -D)"
CreateSnap "$DATASET@$CREATE_DATE--1m"
CreateSnap "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
CreateSnap "$DATASET/$subds@$CREATE_DATE--1m"
CreateSnap "$DATASET/$subds@$CREATE_DATE--3m"
done
ItReturns "CURRENT_DATE=$DELETE_DATE $zfsnap destroy -r -D $DATASET 2> /dev/null" 0
VerifySnapNotExists "$DATASET@$CREATE_DATE--1m"
VerifySnapNotExists "$DATASET@$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
VerifySnapNotExists "$DATASET/$subds@$CREATE_DATE--1m"
VerifySnapNotExists "$DATASET/$subds@$CREATE_DATE--3m"
done
echo ""
echo "Prefixed destroy (-p)"
CreateSnap "$DATASET@zs$CREATE_DATE--1m"
CreateSnap "$DATASET@zs$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
CreateSnap "$DATASET/$subds@zs$CREATE_DATE--1m"
CreateSnap "$DATASET/$subds@zs$CREATE_DATE--3m"
done
ItReturns "CURRENT_DATE=$DELETE_DATE $zfsnap destroy -p zs $DATASET 2> /dev/null" 0
VerifySnapNotExists "$DATASET@zs$CREATE_DATE--1m"
VerifySnapExists "$DATASET@zs$CREATE_DATE--3m"
DestroySnap "$DATASET@zs$CREATE_DATE--3m"
for subds in $TEST_SUBDATASETS
do
DestroySnap "$DATASET/$subds@zs$CREATE_DATE--1m"
DestroySnap "$DATASET/$subds@zs$CREATE_DATE--3m"
done
ExitTests

60
tests/system/snapshot.sh Executable file
View File

@ -0,0 +1,60 @@
#!/bin/sh
# This file is licensed under the BSD-3-Clause license.
# See the AUTHORS and LICENSE files for more information.
. ../spec_helper.sh
zfsnap='../../sbin/zfsnap.sh'
zfs=`which zfs`
DATASET="$TEST_POOL/$TEST_DATASET"
TEST_DATE="2020-01-01_10.00.00"
echo ""
echo "Snapshot without any options"
VerifySnapNotExists "$DATASET@$TEST_DATE--1m"
ItReturns "CURRENT_DATE=$TEST_DATE $zfsnap snapshot $DATASET 2> /dev/null" 0
for subds in $TEST_SUBDATASETS
do
VerifySnapNotExists "$DATASET/$subds@$TEST_DATE--1m"
done
DestroySnap "$DATASET@$TEST_DATE--1m"
echo ""
echo "Prefixed snapshot (-p)"
VerifySnapNotExists "$DATASET@zs$TEST_DATE--1m"
ItReturns "CURRENT_DATE=$TEST_DATE $zfsnap snapshot -p zs $DATASET 2> /dev/null" 0
for subds in $TEST_SUBDATASETS
do
VerifySnapNotExists "$DATASET/$subds@zs$TEST_DATE--1m"
done
DestroySnap "$DATASET@zs$TEST_DATE--1m"
echo ""
echo "Snapshot with 1y TTL (-a)"
VerifySnapNotExists "$DATASET@$TEST_DATE--1y"
ItReturns "CURRENT_DATE=$TEST_DATE $zfsnap snapshot -a 1y $DATASET 2> /dev/null" 0
for subds in $TEST_SUBDATASETS
do
VerifySnapNotExists "$DATASET/$subds@$TEST_DATE--1y"
done
DestroySnap "$DATASET@$TEST_DATE--1y"
TEST_DATE="2020-02-01_10.00.00"
echo ""
echo "Recursive snapshot (-r)"
VerifySnapNotExists "$DATASET@$TEST_DATE--1m"
for subds in $TEST_SUBDATASETS
do
VerifySnapNotExists "$DATASET/$subds@$TEST_DATE--1m"
done
ItReturns "CURRENT_DATE=$TEST_DATE $zfsnap snapshot -r $DATASET 2> /dev/null" 0
for subds in $TEST_SUBDATASETS
do
DestroySnap "$DATASET/$subds@$TEST_DATE--1m"
done
DestroySnap "$DATASET@$TEST_DATE--1m"
ExitTests

7
tests/unit/000_label.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# This file is licensed under the BSD-3-Clause license.
# See the AUTHORS and LICENSE files for more information.
echo ""
echo "Unit tests"
echo "----------"