aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/xinstall/tests/install_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/xinstall/tests/install_test.sh')
-rwxr-xr-xusr.bin/xinstall/tests/install_test.sh38
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
}