Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add regression test about conflicts in multirepo
Baptiste Daroussin committed 11 years ago
commit d75267d57539135def340975f38bcc56444dca69
parent a9b8ed0
3 files changed +183 -0
modified tests/Makefile.am
@@ -71,6 +71,7 @@ EXTRA_DIST= frontend/png.uclin \
		frontend/alias.shin \
		frontend/annotate.shin \
		frontend/conflicts.shin \
+
		frontend/conflicts-multirepo.shin \
		frontend/create.shin \
		frontend/delete.shin \
		frontend/lock.shin \
@@ -99,6 +100,7 @@ check_SCRIPTS= frontend/pkg.sh \
		frontend/alias.sh \
		frontend/annotate.sh \
		frontend/conflicts.sh \
+
		frontend/conflicts-multirepo.sh \
		frontend/create.sh \
		frontend/delete.sh \
		frontend/lock.sh \
modified tests/frontend/Kyuafile
@@ -7,6 +7,7 @@ atf_test_program{name='add.sh'}
atf_test_program{name='alias.sh'}
atf_test_program{name='annotate.sh'}
atf_test_program{name='conflicts.sh'}
+
atf_test_program{name='conflicts-multirepo.sh'}
atf_test_program{name='create.sh'}
atf_test_program{name='delete.sh'}
atf_test_program{name='lock.sh'}
added tests/frontend/conflicts-multirepo.shin
@@ -0,0 +1,180 @@
+
#! /usr/bin/env atf-sh
+
atf_test_case conflicts_multirepo
+
conflicts_multirepo_head() {
+
	atf_set "descr" "Testing dynamic conflicts resolution in mutlirepo"
+
	atf_set "timeout" "20"
+
}
+

+
conflicts_multirepo_body() {
+
	touch a b c
+
	cat << EOF >> manifest
+
name: test
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/a: "",
+
}
+
EOF
+

+
	cat << EOF >> manifest2
+
name: test2
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/b: "",
+
	${TMPDIR}/c: "",
+
}
+
EOF
+

+
	cat << EOF >> manifest3
+
name: test
+
origin: test
+
version: "1.1"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/a: "",
+
	${TMPDIR}/b: "",
+
}
+
EOF
+

+
	cat << EOF >> manifest4
+
name: test2
+
origin: test
+
version: "1.1"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/c: "",
+
}
+
EOF
+
	atf_check \
+
		-o match:".*Installing.*\.\.\.$" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg register -M manifest
+

+
	atf_check \
+
		-o match:".*Installing.*\.\.\.$" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg register -M manifest2
+

+
	mkdir repo1
+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M manifest -o repo1/
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M manifest2 -o repo1/
+

+
	mkdir repo2
+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M manifest3 -o repo2/
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M manifest4 -o repo2/
+

+
	atf_check \
+
		-o inline:"Creating repository in repo1... done\nPacking files for repository... done\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg repo repo1
+

+
	atf_check \
+
		-o inline:"Creating repository in repo2... done\nPacking files for repository... done\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg repo repo2
+

+
	cat << EOF >> repo.conf
+
local1: {
+
	url: file:///${TMPDIR}/repo1,
+
	enabled: true
+
}
+
local2: {
+
	url: file:///${TMPDIR}/repo2,
+
	enabled:true
+
}
+
EOF
+

+
OUTPUT="Updating local1 repository catalogue...
+
${JAILED}Fetching meta.txz... done
+
${JAILED}Fetching packagesite.txz... done
+
Processing entries... done
+
local1 repository update completed. 2 packages processed.
+
Updating local2 repository catalogue...
+
${JAILED}Fetching meta.txz... done
+
${JAILED}Fetching packagesite.txz... done
+
Processing entries... done
+
local2 repository update completed. 2 packages processed.
+
Updating database digests format... done
+
Checking for upgrades (2 candidates)... done
+
Processing candidates (2 candidates)... done
+
Checking integrity... done (1 conflicting)
+
Checking integrity... done (0 conflicting)
+
The following 2 package(s) will be affected (of 0 checked):
+

+
Installed packages to be UPGRADED:
+
	test2: 1 -> 1.1 [local2]
+
	test: 1 -> 1.1 [local2]
+
${JAILED}[1/2] Upgrading test2 from 1 to 1.1...
+
${JAILED}[1/2] Extracting test2-1.1... done
+
${JAILED}[2/2] Upgrading test from 1 to 1.1...
+
${JAILED}[2/2] Extracting test-1.1... done
+
"
+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" upgrade -y
+
}
+

+
atf_init_test_cases() {
+
	. $(atf_get_srcdir)/test_environment.sh
+

+
	atf_add_test_case conflicts_multirepo
+
}