repo: fix a double free with invalid repodata.
Fixes #248 Added new test case to verify.
This commit is contained in:
@@ -29,3 +29,4 @@ atf_test_program{name="preserve_test"}
|
||||
atf_test_program{name="orphans_test"}
|
||||
atf_test_program{name="noextract_files_test"}
|
||||
atf_test_program{name="transaction_check_revdeps_test"}
|
||||
atf_test_program{name="repo_test"}
|
||||
|
@@ -8,7 +8,7 @@ TESTSHELL+= issue31_test scripts_test incorrect_deps_test
|
||||
TESTSHELL+= vpkg_test install_test preserve_files_test configure_test
|
||||
TESTSHELL+= update_shlibs_test update_hold_test update_repolock_test
|
||||
TESTSHELL+= cyclic_deps_test conflicts_test update_itself_test
|
||||
TESTSHELL+= hold_test ignore_test preserve_test
|
||||
TESTSHELL+= hold_test ignore_test preserve_test repo_test
|
||||
TESTSHELL+= noextract_files_test orphans_test transaction_check_revdeps_test
|
||||
EXTRA_FILES = Kyuafile
|
||||
|
||||
|
0
tests/xbps/libxbps/shell/conf_files_test.sh
Executable file → Normal file
0
tests/xbps/libxbps/shell/conf_files_test.sh
Executable file → Normal file
27
tests/xbps/libxbps/shell/repo_test.sh
Normal file
27
tests/xbps/libxbps/shell/repo_test.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env atf-sh
|
||||
|
||||
atf_test_case repo_close
|
||||
|
||||
repo_close_head() {
|
||||
atf_set "descr" "Tests for pkg repos: truncate repo size to 0"
|
||||
}
|
||||
|
||||
repo_close_body() {
|
||||
mkdir -p repo pkg_A
|
||||
cd repo
|
||||
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
|
||||
atf_check_equal $? 0
|
||||
xbps-rindex -d -a $PWD/*.xbps
|
||||
atf_check_equal $? 0
|
||||
cd ..
|
||||
xbps-install -C empty.conf -r root --repository=repo -yn A
|
||||
atf_check_equal $? 0
|
||||
truncate --size 0 repo/*-repodata
|
||||
xbps-install -C empty.conf -r root --repository=repo -yn A
|
||||
# ENOENT because invalid repodata
|
||||
atf_check_equal $? 2
|
||||
}
|
||||
|
||||
atf_init_test_cases() {
|
||||
atf_add_test_case repo_close
|
||||
}
|
Reference in New Issue
Block a user