Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a regression test about package merging
Baptiste Daroussin committed 10 years ago
commit 176380658fad4f39f1df70ae26eefa61a6df2d88
parent 0a332aa
3 files changed +190 -0
modified tests/Makefile.am
@@ -90,6 +90,7 @@ tests_scripts= \
		frontend/lock.sh \
		frontend/messages.sh \
		frontend/packagesplit.sh \
+
		frontend/packagemerge.sh \
		frontend/php-pr.sh \
		frontend/pubkey.sh \
		frontend/query.sh \
modified tests/frontend/Kyuafile.in
@@ -16,6 +16,7 @@ atf_test_program{name='jpeg'}
atf_test_program{name='lock'}
atf_test_program{name='messages'}
atf_test_program{name='packagesplit'}
+
atf_test_program{name='packagemerge'}
atf_test_program{name='php-pr'}
atf_test_program{name='pkg'}
atf_test_program{name='pubkey'}
added tests/frontend/packagemerge.sh
@@ -0,0 +1,188 @@
+
#! /usr/bin/env atf-sh
+

+
. $(atf_get_srcdir)/test_environment.sh
+

+
tests_init \
+
	package_merge
+

+
package_merge_body() {
+
	touch file1
+
	touch file2
+
	touch file3
+

+
	cat << EOF > pkg1.ucl
+
name: test-file1
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/file1: "",
+
}
+
EOF
+

+
	cat << EOF > pkg2.ucl
+
name: test-file2
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/file2: "",
+
}
+
EOF
+

+
	cat << EOF > pkg3.ucl
+
name: test-file3
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/file3: "",
+
}
+
EOF
+

+
	cat << EOF > pkg4.ucl
+
name: test
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	test-file1: {
+
		origin: test
+
		version: 1
+
	},
+
	test-file2: {
+
		origin: test
+
		version: 1
+
	}
+
	test-file3: {
+
		origin: test
+
		version: 1
+
	}
+
}
+
EOF
+

+
	cat << EOF > dep1.ucl
+
name: plop
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	test-file1: {
+
		origin: test
+
		version: 1
+
	},
+
}
+
EOF
+

+
	for p in pkg1 pkg2 pkg3 pkg4 dep1; do
+
		atf_check \
+
			-o match:".*Installing.*\.\.\.$" \
+
			-e empty \
+
			-s exit:0 \
+
			pkg register -M ${p}.ucl
+
	done
+

+
	cat << EOF > pkg5.ucl
+
name: test
+
origin: test
+
version: "1.1"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
files: {
+
	${TMPDIR}/file1: "",
+
	${TMPDIR}/file2: "",
+
	${TMPDIR}/file3: "",
+
}
+
EOF
+

+
	cat << EOF > dep2.ucl
+
name: plop
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	test: {
+
		origin: test
+
		version: "1.1"
+
	},
+
}
+
EOF
+
	for p in pkg5 dep2; do
+
		atf_check \
+
			-o ignore \
+
			-e empty \
+
			-s exit:0 \
+
			 pkg create -M ./${p}.ucl
+
	done
+

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

+
	cat << EOF > repo.conf
+
local: {
+
	url: file:///$TMPDIR,
+
	enabled: true
+
}
+
EOF
+

+
	atf_check \
+
		-o ignore \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o REPOS_DIR="$TMPDIR" -o PKG_CACHEDIR="$TMPDIR" upgrade -y
+

+
	test -f file1 || atf_fail "file1 is not present"
+
	test -f file2 || atf_fail "file2 is not present"
+
	test -f file3 || atf_fail "file3 is not present"
+
}