From 247463e3591146c8c35f8621d72043970348dfca Mon Sep 17 00:00:00 2001 From: Duncaen Date: Tue, 18 Jun 2019 01:35:39 +0200 Subject: [PATCH] tests: add two new tests for transaction_files --- .../xbps/libxbps/shell/obsoletefiles_test.sh | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/tests/xbps/libxbps/shell/obsoletefiles_test.sh b/tests/xbps/libxbps/shell/obsoletefiles_test.sh index 76930f31..e1629bb6 100644 --- a/tests/xbps/libxbps/shell/obsoletefiles_test.sh +++ b/tests/xbps/libxbps/shell/obsoletefiles_test.sh @@ -356,6 +356,108 @@ update_extract_dir_body() { atf_check_equal $? 0 } +atf_test_case replace_package_same_files + +replace_package_same_files_head() { + atf_set "descr" "Package gets replaced by another one with same files" +} + +replace_package_same_files_body() { + mkdir repo + mkdir -p pkg_openssl/usr/lib/openssl pkg_libressl/usr/lib + echo "0123456789" > pkg_openssl/usr/lib/libcrypto.so.30 + echo "0123456789" > pkg_openssl/usr/lib/libssl.so.30 + echo "0123456789" > pkg_libressl/usr/lib/libcrypto.so.30 + echo "0123456789" > pkg_libressl/usr/lib/libssl.so.30 + echo "0123456789" > pkg_libressl/usr/lib/openssl/foo + touch -mt 197001010000.00 pkg_openssl/usr/lib/libcrypto.so.30 + touch -mt 197001010000.00 pkg_openssl/usr/lib/libssl.so.30 + touch -mt 197001010000.00 pkg_libressl/usr/lib/libcrypto.so.30 + touch -mt 197001010000.00 pkg_libressl/usr/lib/libssl.so.30 + + cd repo + xbps-create -A noarch -n openssl-1.0_1 -s "openssl pkg" ../pkg_openssl + atf_check_equal $? 0 + xbps-create -A noarch -n libressl-1.0_1 -s "libressl pkg" --replaces "openssl>=0" ../pkg_libressl + atf_check_equal $? 0 + xbps-rindex -d -a $PWD/*.xbps + atf_check_equal $? 0 + cd .. + + xbps-install -r root --repository=$PWD/repo -yvd openssl + atf_check_equal $? 0 + + xbps-install -r root --repository=$PWD/repo -yvd libressl + atf_check_equal $? 0 + + xbps-query -S openssl + atf_check_equal $? 2 + + xbps-query -S libressl + atf_check_equal $? 0 + + xbps-pkgdb -r root -av + atf_check_equal $? 0 +} + +atf_test_case nonempty_dir_abort + +nonempty_dir_abort_head() { + atf_set "descr" "Abort transaction if a directory replaced by a file." +} + +nonempty_dir_abort_body() { + mkdir repo root + mkdir -p pkg_A pkg_B/foo + echo "0123456789" > pkg_B/foo/bar + + cd repo + xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A + atf_check_equal $? 0 + xbps-create -A noarch -n B-1.0_1 -s "B pkg" ../pkg_B + atf_check_equal $? 0 + xbps-rindex -d -a $PWD/*.xbps + atf_check_equal $? 0 + cd .. + + xbps-install -r root --repository=$PWD/repo -yvd A B + atf_check_equal $? 0 + + cd repo + rm -f *.xbps + xbps-create -A noarch -n A-1.0_2 -s "A pkg" ../pkg_A + atf_check_equal $? 0 + rm -rf ../pkg_B/foo + echo "0123456789" > ../pkg_B/foo + xbps-create -A noarch -n B-1.0_2 -s "B pkg" ../pkg_B + atf_check_equal $? 0 + xbps-rindex -d -a $PWD/*.xbps + atf_check_equal $? 0 + cd .. + + touch root/foo/abort + + xbps-install -r root --repository=$PWD/repo -yvdu + atf_check_equal $? 39 + out=$(xbps-query -r root -p state A) + atf_check_equal "$out" "installed" + out=$(xbps-query -r root -p state B) + atf_check_equal "$out" "installed" + xbps-pkgdb -r root -av + atf_check_equal $? 0 + + rm root/foo/abort + + xbps-install -r root --repository=$PWD/repo -yvdu + atf_check_equal $? 0 + out=$(xbps-query -r root -p state A) + atf_check_equal "$out" "installed" + out=$(xbps-query -r root -p state B) + atf_check_equal "$out" "installed" + xbps-pkgdb -r root -av + atf_check_equal $? 0 +} + atf_init_test_cases() { atf_add_test_case reinstall_obsoletes atf_add_test_case root_symlinks_update @@ -365,4 +467,6 @@ atf_init_test_cases() { atf_add_test_case update_to_meta_depends_replaces atf_add_test_case directory_to_symlink atf_add_test_case update_extract_dir + atf_add_test_case replace_package_same_files + atf_add_test_case nonempty_dir_abort }