diff options
Diffstat (limited to 'usr.bin/xinstall/tests/install_test.sh')
| -rwxr-xr-x | usr.bin/xinstall/tests/install_test.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/usr.bin/xinstall/tests/install_test.sh b/usr.bin/xinstall/tests/install_test.sh index 0f1f93ab4c63..3cea648aa805 100755 --- a/usr.bin/xinstall/tests/install_test.sh +++ b/usr.bin/xinstall/tests/install_test.sh @@ -512,6 +512,42 @@ set_optional_exec_body() atf_check test ! -x testfile } +atf_test_case metalog +metalog_head() { + atf_set "descr" "Test metalog generation" +} +metalog_body() { + atf_check install -M metalog -D dst -m 0755 -d dst + echo ". type=dir mode=0755" >expect + atf_check install -M metalog -D dst -m 0705 -d dst/dir + echo "./dir type=dir mode=0705" >>expect + atf_check -o save:file echo "Hello, world!" + atf_check install -M metalog -D dst -m 0604 file dst/dir + echo "./dir/file type=file mode=0604 size=14" >>expect + atf_check install -M metalog -D dst -lrs dir/file dst/"li nk" + echo "./li\040nk type=link mode=0755 link=dir/file" >>expect + atf_check mtree -f expect -p dst + atf_check -o file:expect cat metalog +} + +atf_test_case digest +digest_head() { + atf_set "descr" "Compute digest while copying" +} +digest_body() { + atf_check mkdir src dst + atf_check -e ignore dd if=/dev/random of=src/file bs=1m count=1 + for alg in md5 rmd160 sha1 sha256 sha512 ; do + rm -f dst/file digest metalog + atf_check -o save:digest $alg -q src/file + atf_check install -M metalog -D dst -h $alg -m 0644 src/file dst + echo -n "./file type=file mode=0644 size=1048576 $alg=" >expect + cat digest >>expect + atf_check cmp src/file dst/file + atf_check -o file:expect cat metalog + done +} + atf_init_test_cases() { atf_add_test_case copy_to_empty atf_add_test_case copy_to_nonexistent @@ -557,4 +593,6 @@ atf_init_test_cases() { atf_add_test_case set_owner_group_mode atf_add_test_case set_owner_group_mode_unpriv atf_add_test_case set_optional_exec + atf_add_test_case metalog + atf_add_test_case digest } |
