Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Simplify a bit regression test integration
Baptiste Daroussin committed 10 years ago
commit be2cd229e898f30dc4c2dc9fb928a721602b97a8
parent 7945e2c
57 files changed +3165 -3184
deleted Kyuafile
@@ -1,4 +0,0 @@
-
syntax(2)
-
test_suite("pkg")
-

-
include("tests/Kyuafile")
added Kyuafile.in
@@ -0,0 +1,4 @@
+
syntax(2)
+
test_suite("pkg")
+

+
include("@top_builddir@/tests/Kyuafile")
modified Makefile.am
@@ -16,7 +16,7 @@ check-local:
		args="-r $(top_builddir)/res.db" ; \
	fi ; \
	kyua --config=none test $$args \
-
		--kyuafile='$(top_srcdir)/Kyuafile' \
+
		--kyuafile='$(top_builddir)/Kyuafile' \
		--build-root='$(top_builddir)' || FAILED=1 ; \
	if [ "$(HTML)" != "" ]; then \
		kyua report-html --force $$args --output=$(HTML) ; \
modified configure.ac
@@ -455,12 +455,16 @@ AC_SUBST([REPOS_LDADD])
AC_SUBST([REPOS_LDADD_STATIC])

AC_CONFIG_FILES(Makefile \
+
		Kyuafile \
		src/Makefile \
		external/Makefile \
		external/blake2/Makefile \
		scripts/Makefile \
		docs/Makefile \
		tests/Makefile \
+
		tests/Kyuafile \
+
		tests/frontend/Kyuafile \
+
		tests/frontend/test_environment.sh \
		compat/Makefile \
		libpkg/Makefile \
		libpkg/repo/Makefile \
deleted tests/Kyuafile
@@ -1,13 +0,0 @@
-
syntax("kyuafile", 1)
-

-
test_suite("pkg")
-

-
atf_test_program{name='pkg_validation'}
-
atf_test_program{name='pkg_printf'}
-
atf_test_program{name='plist'}
-
atf_test_program{name='pkg_add_dir_to_del'}
-
atf_test_program{name='merge'}
-
atf_test_program{name='checksum'}
-
atf_test_program{name='deps_formula'}
-

-
include('frontend/Kyuafile')
added tests/Kyuafile.in
@@ -0,0 +1,13 @@
+
syntax("kyuafile", 1)
+

+
test_suite("pkg")
+

+
atf_test_program{name='pkg_validation'}
+
atf_test_program{name='pkg_printf'}
+
atf_test_program{name='plist'}
+
atf_test_program{name='pkg_add_dir_to_del'}
+
atf_test_program{name='merge'}
+
atf_test_program{name='checksum'}
+
atf_test_program{name='deps_formula'}
+

+
include('frontend/Kyuafile')
modified tests/Makefile.am
@@ -70,44 +70,12 @@ merge_SOURCES= lib/merge.c
merge_CFLAGS=	$(PRIVATE_INCS)
merge_LDADD=	$(GENERIC_LDADD)

-
EXTRA_DIST=	frontend/png.uclin \
-
		frontend/sqlite3.uclin \
-
		Kyuafile \
-
		frontend/Kyuafile \
-
		frontend/001sanity.shin \
-
		frontend/add.shin \
-
		frontend/alias.shin \
-
		frontend/annotate.shin \
-
		frontend/conflicts.shin \
-
		frontend/conflicts-multirepo.shin \
-
		frontend/create.shin \
-
		frontend/delete.shin \
-
		frontend/lock.shin \
-
		frontend/packagesplit.shin \
-
		frontend/php-pr.shin \
-
		frontend/pkg.shin \
-
		frontend/query.shin \
-
		frontend/register.shin \
-
		frontend/repo.shin \
-
		frontend/requires.shin \
-
		frontend/rootdir.shin \
-
		frontend/rubypuppet.shin \
-
		frontend/search.shin \
-
		frontend/set.shin \
-
		frontend/test_environment.shin \
-
		frontend/version.shin
+
EXTRA_DIST=	frontend/png.ucl \
+
		frontend/sqlite3.ucl \
+
		$(tests_scripts)

-
TESTS =
-
tests_programs=	pkg_printf \
-
		pkg_validation \
-
		plist \
-
		checksum \
-
		deps_formula \
-
		pkg_add_dir_to_del \
-
		merge
-
EXTRA_PROGRAMS=	$(tests_programs)
-
check_PROGRAMS=	$(tests_programs)
-
check_SCRIPTS=	frontend/pkg.sh \
+
tests_scripts=	\
+
		frontend/pkg.sh \
		frontend/add.sh \
		frontend/001sanity.sh \
		frontend/alias.sh \
@@ -127,21 +95,29 @@ check_SCRIPTS= frontend/pkg.sh \
		frontend/rubypuppet.sh \
		frontend/search.sh \
		frontend/set.sh \
-
		frontend/version.sh \
-
		frontend/test_environment.sh \
-
		frontend/png.ucl \
-
		frontend/sqlite3.ucl
-
CLEANFILES+=	${check_SCRIPTS}
-
SUFFIXES = .sh .ucl
-

-
.shin.sh:
-
	@echo "    GEN   " $@;
-
	@install -m 755 $< $@
+
		frontend/version.sh
+
		frontend/test_environment.sh

-
.uclin.ucl:
-
	@echo "    GEN   " $@;
-
	@install -m 644 $< $@
+
check_SCRIPTS=	$(tests_scripts:.sh=)
+
CLEANFILES+=	$(check_SCRIPTS)
+

+
TESTS =
+
tests_programs=	pkg_printf \
+
		pkg_validation \
+
		plist \
+
		checksum \
+
		deps_formula \
+
		pkg_add_dir_to_del \
+
		merge
+
EXTRA_PROGRAMS=	$(tests_programs)
+
check_PROGRAMS=	$(tests_programs)
+

+
SUFFIXES= .sh

lib/pkg_printf.c: $(top_srcdir)/libpkg/pkg_printf.c
	@echo "    CP    " $@;
	@cp $(top_srcdir)/libpkg/pkg_printf.c $@
+

+
.sh:
+
	@echo "    CP    " $@:
+
	@install -m 755 $< $@
added tests/frontend/001sanity.sh
@@ -0,0 +1,35 @@
+
#!/usr/bin/env atf-sh
+

+
atf_test_case which
+
which_head() {
+
	atf_set "descr" "test the sanity of the tested pkg location"
+
}
+

+
which_body() {
+
	atf_check \
+
	    -o inline:"$(atf_get_srcdir)/../../src/pkg\n" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    which pkg
+
}
+

+
atf_test_case ldd
+
ldd_head() {
+
	atf_set "descr" "test the sanity of the ldd output"
+
}
+

+
ldd_body() {
+
	atf_check \
+
	    -o match:".*libpkg.so.3 => $(atf_get_srcdir).*$" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    ldd -a $(atf_get_srcdir)/../../src/.libs/pkg
+
}
+
atf_init_test_cases() {
+
	. $(atf_get_srcdir)/test_environment.sh
+

+
	atf_add_test_case which
+
	if [ `uname -s` != "Darwin" ]; then
+
		atf_add_test_case ldd
+
	fi
+
}
deleted tests/frontend/001sanity.shin
@@ -1,35 +0,0 @@
-
#!/usr/bin/env atf-sh
-

-
atf_test_case which
-
which_head() {
-
	atf_set "descr" "test the sanity of the tested pkg location"
-
}
-

-
which_body() {
-
	atf_check \
-
	    -o inline:"$(atf_get_srcdir)/../../src/pkg\n" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    which pkg
-
}
-

-
atf_test_case ldd
-
ldd_head() {
-
	atf_set "descr" "test the sanity of the ldd output"
-
}
-

-
ldd_body() {
-
	atf_check \
-
	    -o match:".*libpkg.so.3 => $(atf_get_srcdir).*$" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    ldd -a $(atf_get_srcdir)/../../src/.libs/pkg
-
}
-
atf_init_test_cases() {
-
	. $(atf_get_srcdir)/test_environment.sh
-

-
	atf_add_test_case which
-
	if [ `uname -s` != "Darwin" ]; then
-
		atf_add_test_case ldd
-
	fi
-
}
deleted tests/frontend/Kyuafile
@@ -1,25 +0,0 @@
-
syntax('kyuafile', 1)
-

-
test_suite('prop: test-suite = frontend')
-

-
atf_test_program{name='001sanity.sh'}
-
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'}
-
atf_test_program{name='packagesplit.sh'}
-
atf_test_program{name='php-pr.sh'}
-
atf_test_program{name='pkg.sh'}
-
atf_test_program{name='query.sh'}
-
atf_test_program{name='register.sh'}
-
atf_test_program{name='repo.sh'}
-
atf_test_program{name='requires.sh'}
-
atf_test_program{name='rootdir.sh'}
-
atf_test_program{name='rubypuppet.sh'}
-
atf_test_program{name='search.sh'}
-
atf_test_program{name='set.sh'}
-
atf_test_program{name='version.sh'}
added tests/frontend/Kyuafile.in
@@ -0,0 +1,25 @@
+
syntax('kyuafile', 1)
+

+
test_suite('prop: test-suite = frontend')
+

+
atf_test_program{name='001sanity'}
+
atf_test_program{name='add'}
+
atf_test_program{name='alias'}
+
atf_test_program{name='annotate'}
+
atf_test_program{name='conflicts'}
+
atf_test_program{name='conflicts-multirepo'}
+
atf_test_program{name='create'}
+
atf_test_program{name='delete'}
+
atf_test_program{name='lock'}
+
atf_test_program{name='packagesplit'}
+
atf_test_program{name='php-pr'}
+
atf_test_program{name='pkg'}
+
atf_test_program{name='query'}
+
atf_test_program{name='register'}
+
atf_test_program{name='repo'}
+
atf_test_program{name='requires'}
+
atf_test_program{name='rootdir'}
+
atf_test_program{name='rubypuppet'}
+
atf_test_program{name='search'}
+
atf_test_program{name='set'}
+
atf_test_program{name='version'}
added tests/frontend/add.sh
@@ -0,0 +1,337 @@
+
#! /usr/bin/env atf-sh
+

+
initialize_pkg() {
+
	touch a
+
	cat << EOF > test.ucl
+
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: ""
+
}
+
scripts: {
+
	pre-install: <<EOD
+
echo "pre-install"
+
EOD
+
	post-install: <<EOD
+
echo "post-install"
+
EOD
+
}
+
EOF
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M test.ucl
+
}
+

+
atf_test_case add
+
add_head() {
+
	atf_set "descr" "pkg add"
+
}
+

+
add_body() {
+
	initialize_pkg
+

+
OUTPUT="${JAILED}Installing test-1...
+
pre-install
+
${JAILED}Extracting test-1:  done
+
post-install
+
"
+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		pkg add test-1.txz
+

+
# test automatic is not set
+
	atf_check \
+
		-o inline:"0\n" \
+
		-e empty \
+
		pkg query "%a" test
+
}
+

+
atf_test_case add_automatic
+
add_automatic_head() {
+
	atf_set "descr" "pkg add -A"
+
}
+
add_automatic_body() {
+
	initialize_pkg
+

+
OUTPUT="${JAILED}Installing test-1...
+
pre-install
+
${JAILED}Extracting test-1:  done
+
post-install
+
"
+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		pkg add -A test-1.txz
+

+
	atf_check \
+
		-o inline:"1\n" \
+
		-e empty \
+
		pkg query "%a" test
+

+
}
+

+
atf_test_case add_noscript
+
add_noscript_head() {
+
	atf_set "descr" "pkg add -I"
+
}
+
add_noscript_body() {
+
	initialize_pkg
+

+
OUTPUT="${JAILED}Installing test-1...
+
${JAILED}Extracting test-1:  done
+
"
+
	cat test-1.txz | atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		pkg add -I test-1.txz
+
}
+
atf_test_case add_force
+
add_force_head() {
+
	atf_set "descr" "pkg add -f"
+
}
+
add_force_body() {
+
	initialize_pkg
+
}
+

+
atf_test_case add_accept_missing
+
add_accept_missing_head() {
+
	atf_set "descr" "pkg add -M"
+
}
+
add_accept_missing_body() {
+
	touch a
+
	cat << EOF > test.ucl
+
name: test
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	b: {
+
		origin: "wedontcare",
+
		version: "1"
+
	}
+
}
+
files: {
+
	${TMPDIR}/a: ""
+
}
+
scripts: {
+
	pre-install: <<EOD
+
echo "pre-install"
+
EOD
+
	post-install: <<EOD
+
echo "post-install"
+
EOD
+
}
+
EOF
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M test.ucl
+

+
	atf_check \
+
		-o inline:"${JAILED}Installing test-1...\n\nFailed to install the following 1 package(s): test-1.txz\n" \
+
		-e inline:"pkg: Missing dependency 'b'\n" \
+
		-s exit:70 \
+
		pkg add test-1.txz
+

+
OUTPUT="${JAILED}Installing test-1...
+
pre-install
+
${JAILED}Extracting test-1:  done
+
post-install
+
"
+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e inline:"pkg: Missing dependency 'b'\n" \
+
		-s exit:0 \
+
		pkg add -M test-1.txz
+
}
+

+
atf_test_case add_quiet
+
add_quiet_head() {
+
	atf_set "descr" "pkg add -q"
+
}
+
add_quiet_body() {
+
	initialize_pkg
+

+
	atf_check \
+
		-o inline:"pre-install\npost-install\n" \
+
		-e empty \
+
		pkg add -q ./test-1.txz
+
}
+

+
atf_test_case add_stdin
+
add_stdin_head() {
+
	atf_set "descr" "pkg add -"
+
}
+
add_stdin_body() {
+
	initialize_pkg
+

+
OUTPUT="${JAILED}Installing test-1...
+
pre-install
+
${JAILED}Extracting test-1:  done
+
post-install
+
"
+
	cat test-1.txz | atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		pkg add -
+
}
+

+
atf_test_case add_stdin_missing
+
add_stdin_body_head() {
+
	atf_set "descr" "pkg add -M -"
+
}
+

+
add_stdin_missing_body() {
+
	touch a
+
	cat << EOF > test.ucl
+
name: test
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	b: {
+
		origin: "wedontcare",
+
		version: "1"
+
	}
+
}
+
files: {
+
	${TMPDIR}/a: ""
+
}
+
scripts: {
+
	pre-install: <<EOD
+
echo "pre-install"
+
EOD
+
	post-install: <<EOD
+
echo "post-install"
+
EOD
+
}
+
EOF
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M test.ucl
+

+
	cat test-1.txz | atf_check \
+
		-o inline:"${JAILED}Installing test-1...\n\nFailed to install the following 1 package(s): -\n" \
+
		-e inline:"pkg: Missing dependency 'b'\n" \
+
		-s exit:70 \
+
		pkg add -
+

+
OUTPUT="${JAILED}Installing test-1...
+
pre-install
+
${JAILED}Extracting test-1:  done
+
post-install
+
"
+
	cat test-1.txz | atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e inline:"pkg: Missing dependency 'b'\n" \
+
		-s exit:0 \
+
		pkg add -M -
+
}
+

+
atf_test_case add_no_version
+
add_no_version_body() {
+
	cat << EOF > test.ucl
+
name: test
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
EOF
+

+
	cat << EOF > test-lib.ucl
+
name: test-lib
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
EOF
+

+
	cat << EOF > final.ucl
+
name: final
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps {
+
	test {
+
		origin = "test";
+
	}
+
}
+
EOF
+
	for p in test test-lib final ; do
+
		atf_check -o ignore -s exit:0 \
+
			pkg create -M ${p}.ucl
+
	done
+
	atf_check -o ignore -s exit:0 \
+
		pkg add final-1.txz
+
}
+

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

+
	atf_add_test_case add
+
	atf_add_test_case add_automatic
+
	atf_add_test_case add_noscript
+
	atf_add_test_case add_force
+
	atf_add_test_case add_accept_missing
+
	atf_add_test_case add_quiet
+
	atf_add_test_case add_stdin
+
	atf_add_test_case add_stdin_missing
+
	atf_add_test_case add_no_version
+
}
deleted tests/frontend/add.shin
@@ -1,337 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
initialize_pkg() {
-
	touch a
-
	cat << EOF > test.ucl
-
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: ""
-
}
-
scripts: {
-
	pre-install: <<EOD
-
echo "pre-install"
-
EOD
-
	post-install: <<EOD
-
echo "post-install"
-
EOD
-
}
-
EOF
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -M test.ucl
-
}
-

-
atf_test_case add
-
add_head() {
-
	atf_set "descr" "pkg add"
-
}
-

-
add_body() {
-
	initialize_pkg
-

-
OUTPUT="${JAILED}Installing test-1...
-
pre-install
-
${JAILED}Extracting test-1:  done
-
post-install
-
"
-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		pkg add test-1.txz
-

-
# test automatic is not set
-
	atf_check \
-
		-o inline:"0\n" \
-
		-e empty \
-
		pkg query "%a" test
-
}
-

-
atf_test_case add_automatic
-
add_automatic_head() {
-
	atf_set "descr" "pkg add -A"
-
}
-
add_automatic_body() {
-
	initialize_pkg
-

-
OUTPUT="${JAILED}Installing test-1...
-
pre-install
-
${JAILED}Extracting test-1:  done
-
post-install
-
"
-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		pkg add -A test-1.txz
-

-
	atf_check \
-
		-o inline:"1\n" \
-
		-e empty \
-
		pkg query "%a" test
-

-
}
-

-
atf_test_case add_noscript
-
add_noscript_head() {
-
	atf_set "descr" "pkg add -I"
-
}
-
add_noscript_body() {
-
	initialize_pkg
-

-
OUTPUT="${JAILED}Installing test-1...
-
${JAILED}Extracting test-1:  done
-
"
-
	cat test-1.txz | atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		pkg add -I test-1.txz
-
}
-
atf_test_case add_force
-
add_force_head() {
-
	atf_set "descr" "pkg add -f"
-
}
-
add_force_body() {
-
	initialize_pkg
-
}
-

-
atf_test_case add_accept_missing
-
add_accept_missing_head() {
-
	atf_set "descr" "pkg add -M"
-
}
-
add_accept_missing_body() {
-
	touch a
-
	cat << EOF > test.ucl
-
name: test
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /
-
abi = "*";
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	b: {
-
		origin: "wedontcare",
-
		version: "1"
-
	}
-
}
-
files: {
-
	${TMPDIR}/a: ""
-
}
-
scripts: {
-
	pre-install: <<EOD
-
echo "pre-install"
-
EOD
-
	post-install: <<EOD
-
echo "post-install"
-
EOD
-
}
-
EOF
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -M test.ucl
-

-
	atf_check \
-
		-o inline:"${JAILED}Installing test-1...\n\nFailed to install the following 1 package(s): test-1.txz\n" \
-
		-e inline:"pkg: Missing dependency 'b'\n" \
-
		-s exit:70 \
-
		pkg add test-1.txz
-

-
OUTPUT="${JAILED}Installing test-1...
-
pre-install
-
${JAILED}Extracting test-1:  done
-
post-install
-
"
-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e inline:"pkg: Missing dependency 'b'\n" \
-
		-s exit:0 \
-
		pkg add -M test-1.txz
-
}
-

-
atf_test_case add_quiet
-
add_quiet_head() {
-
	atf_set "descr" "pkg add -q"
-
}
-
add_quiet_body() {
-
	initialize_pkg
-

-
	atf_check \
-
		-o inline:"pre-install\npost-install\n" \
-
		-e empty \
-
		pkg add -q ./test-1.txz
-
}
-

-
atf_test_case add_stdin
-
add_stdin_head() {
-
	atf_set "descr" "pkg add -"
-
}
-
add_stdin_body() {
-
	initialize_pkg
-

-
OUTPUT="${JAILED}Installing test-1...
-
pre-install
-
${JAILED}Extracting test-1:  done
-
post-install
-
"
-
	cat test-1.txz | atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		pkg add -
-
}
-

-
atf_test_case add_stdin_missing
-
add_stdin_body_head() {
-
	atf_set "descr" "pkg add -M -"
-
}
-

-
add_stdin_missing_body() {
-
	touch a
-
	cat << EOF > test.ucl
-
name: test
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /
-
abi = "*";
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	b: {
-
		origin: "wedontcare",
-
		version: "1"
-
	}
-
}
-
files: {
-
	${TMPDIR}/a: ""
-
}
-
scripts: {
-
	pre-install: <<EOD
-
echo "pre-install"
-
EOD
-
	post-install: <<EOD
-
echo "post-install"
-
EOD
-
}
-
EOF
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -M test.ucl
-

-
	cat test-1.txz | atf_check \
-
		-o inline:"${JAILED}Installing test-1...\n\nFailed to install the following 1 package(s): -\n" \
-
		-e inline:"pkg: Missing dependency 'b'\n" \
-
		-s exit:70 \
-
		pkg add -
-

-
OUTPUT="${JAILED}Installing test-1...
-
pre-install
-
${JAILED}Extracting test-1:  done
-
post-install
-
"
-
	cat test-1.txz | atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e inline:"pkg: Missing dependency 'b'\n" \
-
		-s exit:0 \
-
		pkg add -M -
-
}
-

-
atf_test_case add_no_version
-
add_no_version_body() {
-
	cat << EOF > test.ucl
-
name: test
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /
-
abi = "*";
-
desc: <<EOD
-
Yet another test
-
EOD
-
EOF
-

-
	cat << EOF > test-lib.ucl
-
name: test-lib
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /
-
abi = "*";
-
desc: <<EOD
-
Yet another test
-
EOD
-
EOF
-

-
	cat << EOF > final.ucl
-
name: final
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /
-
abi = "*";
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps {
-
	test {
-
		origin = "test";
-
	}
-
}
-
EOF
-
	for p in test test-lib final ; do
-
		atf_check -o ignore -s exit:0 \
-
			pkg create -M ${p}.ucl
-
	done
-
	atf_check -o ignore -s exit:0 \
-
		pkg add final-1.txz
-
}
-

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

-
	atf_add_test_case add
-
	atf_add_test_case add_automatic
-
	atf_add_test_case add_noscript
-
	atf_add_test_case add_force
-
	atf_add_test_case add_accept_missing
-
	atf_add_test_case add_quiet
-
	atf_add_test_case add_stdin
-
	atf_add_test_case add_stdin_missing
-
	atf_add_test_case add_no_version
-
}
added tests/frontend/alias.sh
@@ -0,0 +1,105 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case alias
+
alias_body() {
+
	. $(atf_get_srcdir)/test_environment.sh
+

+
	atf_check \
+
		-o inline:"ALIAS                ARGUMENTS\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C "" alias
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C "" alias -q
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: No such alias: 'nonexistent'\n" \
+
		-s exit:69 \
+
		pkg -C "" alias nonexistent
+
}
+

+
atf_test_case alias_from_env
+
alias_from_env_body() {
+
	. $(atf_get_srcdir)/test_environment.sh
+
	export ALIAS="showaliases=alias -q,list=info -q"
+

+
OUTPUT="showaliases          'alias -q'
+
list                 'info -q'
+
"
+
	atf_check \
+
		-o inline:"ALIAS                ARGUMENTS\n${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C "" alias
+

+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C "" alias -q
+

+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C "" showaliases
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: No such alias: 'nonexistent'\n" \
+
		-s exit:69 \
+
		pkg -C "" alias nonexistent
+
}
+

+
atf_test_case alias_from_conf
+
alias_from_conf_body() {
+
	. $(atf_get_srcdir)/test_environment.sh
+
	unset ALIAS
+

+
cat << EOF > config
+
ALIAS: {
+
	showaliases: "alias -q",
+
	list: "info -q"
+
}
+
EOF
+

+
OUTPUT="showaliases          'alias -q'
+
list                 'info -q'
+
"
+
	atf_check \
+
		-o inline:"ALIAS                ARGUMENTS\n${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C config alias
+

+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C config alias -q
+

+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -C config showaliases
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: No such alias: 'nonexistent'\n" \
+
		-s exit:69 \
+
		pkg -C config alias nonexistent
+
}
+

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

+
	atf_add_test_case alias
+
	atf_add_test_case alias_from_env
+
	atf_add_test_case alias_from_conf
+
}
deleted tests/frontend/alias.shin
@@ -1,105 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case alias
-
alias_body() {
-
	. $(atf_get_srcdir)/test_environment.sh
-

-
	atf_check \
-
		-o inline:"ALIAS                ARGUMENTS\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C "" alias
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C "" alias -q
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: No such alias: 'nonexistent'\n" \
-
		-s exit:69 \
-
		pkg -C "" alias nonexistent
-
}
-

-
atf_test_case alias_from_env
-
alias_from_env_body() {
-
	. $(atf_get_srcdir)/test_environment.sh
-
	export ALIAS="showaliases=alias -q,list=info -q"
-

-
OUTPUT="showaliases          'alias -q'
-
list                 'info -q'
-
"
-
	atf_check \
-
		-o inline:"ALIAS                ARGUMENTS\n${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C "" alias
-

-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C "" alias -q
-

-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C "" showaliases
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: No such alias: 'nonexistent'\n" \
-
		-s exit:69 \
-
		pkg -C "" alias nonexistent
-
}
-

-
atf_test_case alias_from_conf
-
alias_from_conf_body() {
-
	. $(atf_get_srcdir)/test_environment.sh
-
	unset ALIAS
-

-
cat << EOF > config
-
ALIAS: {
-
	showaliases: "alias -q",
-
	list: "info -q"
-
}
-
EOF
-

-
OUTPUT="showaliases          'alias -q'
-
list                 'info -q'
-
"
-
	atf_check \
-
		-o inline:"ALIAS                ARGUMENTS\n${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C config alias
-

-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C config alias -q
-

-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -C config showaliases
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: No such alias: 'nonexistent'\n" \
-
		-s exit:69 \
-
		pkg -C config alias nonexistent
-
}
-

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

-
	atf_add_test_case alias
-
	atf_add_test_case alias_from_env
-
	atf_add_test_case alias_from_conf
-
}
added tests/frontend/annotate.sh
@@ -0,0 +1,136 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case annotate
+
annotate_head() {
+
	atf_set "descr" "pkg annotate"
+
	atf_set "require.files" \
+
	   "${RESOURCEDIR}/png.ucl ${RESOURCEDIR}/sqlite3.ucl"
+
}
+

+
annotate_body() {
+
	for pkg in 'png' 'sqlite3' ; do
+
	    atf_check \
+
		-o match:".*Installing.*\.\.\.$" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg register -t -M ${RESOURCEDIR}/$pkg.ucl
+
	done
+

+
	[ -f "./local.sqlite" ] || \
+
	    atf_fail "Can't populate $PKG_DBDIR/local.sqlite"
+

+
	atf_check \
+
	    -o match:"added annotation tagged: TEST1" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate -Ay png TEST1 test1
+

+
	atf_check \
+
	    -o match:"TEST1 +: test1" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg info -A png
+

+
	atf_check \
+
	    -o match:"^png-1.5.18: Tag: TEST1 Value: test1$" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate -S png TEST1
+

+
	echo test2 > $HOME/annotate-TEST2.txt
+

+
	atf_check \
+
	    -o match:"added annotation tagged: TEST2" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate -Ay png TEST2 < $HOME/annotate-TEST2.txt
+

+
	atf_check \
+
	    -o match:"TEST1 +: test1" \
+
	    -o match:"TEST2 +: test2" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg info -A png
+

+
	atf_check \
+
	    -o match:"Modified annotation tagged: TEST1" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate -My png TEST1 test1-modified
+

+
	atf_check \
+
	    -o match:"TEST1 +: test1-modified" \
+
	    -o match:"TEST2 +: test2" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg info -A png
+

+
	atf_check \
+
	    -o match:"^png-1.5.18: Tag: TEST1 Value: test1-modified$" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate --show png TEST1
+

+
	atf_check \
+
	    -o match:"Deleted annotation tagged: TEST1" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate -Dy png TEST1
+

+
	atf_check \
+
	    -o not-match:"TEST1" \
+
	    -o match:"TEST2 +: test2" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg info -A png
+

+
	atf_check \
+
	    -o match:"Deleted annotation tagged: TEST2" \
+
	    -s exit:0 \
+
	    -e empty \
+
	    pkg annotate -Dy png TEST2
+

+
	atf_check \
+
	    -o not-match:"TEST1" \
+
	    -o not-match:"TEST2" \
+
	    -s exit:0 \
+
	    -e empty \
+
	    pkg info -A png
+

+
	# Check multiple annotations
+
	atf_check \
+
	    -o match:"^png-1.5.18: added annotation tagged: TEST1$" \
+
	    -o match:"^sqlite3-3.8.6: added annotation tagged: TEST1$" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate -aAy TEST1 test1
+

+
	atf_check \
+
	    -o match:"^png-1.5.18: Tag: TEST1 Value: test1$" \
+
	    -o match:"^sqlite3-3.8.6: Tag: TEST1 Value: test1$" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate --all --show TEST1
+

+
	atf_check \
+
	    -o match:"^png-1.5.18: Deleted annotation tagged: TEST1$" \
+
	    -o match:"^sqlite3-3.8.6: Deleted annotation tagged: TEST1$" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate --yes --all --delete TEST1
+

+
	atf_check \
+
	    -o empty \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg annotate --all --show TEST1
+

+
}
+

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

+
	# Tests are run in alphabetical order
+
	atf_add_test_case annotate
+

+
}
deleted tests/frontend/annotate.shin
@@ -1,136 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case annotate
-
annotate_head() {
-
	atf_set "descr" "pkg annotate"
-
	atf_set "require.files" \
-
	   "$(atf_get_srcdir)/png.ucl $(atf_get_srcdir)/sqlite3.ucl"
-
}
-

-
annotate_body() {
-
	for pkg in 'png' 'sqlite3' ; do
-
	    atf_check \
-
		-o match:".*Installing.*\.\.\.$" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg register -t -M $(atf_get_srcdir)/$pkg.ucl
-
	done
-

-
	[ -f "./local.sqlite" ] || \
-
	    atf_fail "Can't populate $PKG_DBDIR/local.sqlite"
-

-
	atf_check \
-
	    -o match:"added annotation tagged: TEST1" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate -Ay png TEST1 test1
-

-
	atf_check \
-
	    -o match:"TEST1 +: test1" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg info -A png
-

-
	atf_check \
-
	    -o match:"^png-1.5.18: Tag: TEST1 Value: test1$" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate -S png TEST1
-

-
	echo test2 > $HOME/annotate-TEST2.txt
-

-
	atf_check \
-
	    -o match:"added annotation tagged: TEST2" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate -Ay png TEST2 < $HOME/annotate-TEST2.txt
-

-
	atf_check \
-
	    -o match:"TEST1 +: test1" \
-
	    -o match:"TEST2 +: test2" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg info -A png
-

-
	atf_check \
-
	    -o match:"Modified annotation tagged: TEST1" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate -My png TEST1 test1-modified
-

-
	atf_check \
-
	    -o match:"TEST1 +: test1-modified" \
-
	    -o match:"TEST2 +: test2" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg info -A png
-

-
	atf_check \
-
	    -o match:"^png-1.5.18: Tag: TEST1 Value: test1-modified$" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate --show png TEST1
-

-
	atf_check \
-
	    -o match:"Deleted annotation tagged: TEST1" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate -Dy png TEST1
-

-
	atf_check \
-
	    -o not-match:"TEST1" \
-
	    -o match:"TEST2 +: test2" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg info -A png
-

-
	atf_check \
-
	    -o match:"Deleted annotation tagged: TEST2" \
-
	    -s exit:0 \
-
	    -e empty \
-
	    pkg annotate -Dy png TEST2
-

-
	atf_check \
-
	    -o not-match:"TEST1" \
-
	    -o not-match:"TEST2" \
-
	    -s exit:0 \
-
	    -e empty \
-
	    pkg info -A png
-

-
	# Check multiple annotations
-
	atf_check \
-
	    -o match:"^png-1.5.18: added annotation tagged: TEST1$" \
-
	    -o match:"^sqlite3-3.8.6: added annotation tagged: TEST1$" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate -aAy TEST1 test1
-

-
	atf_check \
-
	    -o match:"^png-1.5.18: Tag: TEST1 Value: test1$" \
-
	    -o match:"^sqlite3-3.8.6: Tag: TEST1 Value: test1$" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate --all --show TEST1
-

-
	atf_check \
-
	    -o match:"^png-1.5.18: Deleted annotation tagged: TEST1$" \
-
	    -o match:"^sqlite3-3.8.6: Deleted annotation tagged: TEST1$" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate --yes --all --delete TEST1
-

-
	atf_check \
-
	    -o empty \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg annotate --all --show TEST1
-

-
}
-

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

-
	# Tests are run in alphabetical order
-
	atf_add_test_case annotate
-

-
}
added tests/frontend/conflicts-multirepo.sh
@@ -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 CONSERVATIVE_UPGRADE=no -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
+
}
deleted tests/frontend/conflicts-multirepo.shin
@@ -1,180 +0,0 @@
-
#! /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 CONSERVATIVE_UPGRADE=no -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
-
}
added tests/frontend/conflicts.sh
@@ -0,0 +1,100 @@
+
#! /usr/bin/env atf-sh
+
atf_test_case find_conflicts
+
find_conflicts_head() {
+
	atf_set "descr" "Testing dynamic conflicts resolution"
+
}
+

+
find_conflicts_body() {
+
	touch a
+
	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}/a: "",
+
}
+
EOF
+
	atf_check \
+
		-o match:".*Installing.*\.\.\.$" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg register -M manifest
+

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

+
	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
+

+
OUTPUT="Updating local repository catalogue...
+
${JAILED}Fetching meta.txz:  done
+
${JAILED}Fetching packagesite.txz:  done
+
Processing entries:  done
+
local repository update completed. 1 packages processed.
+
Updating database digests format:  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 REMOVED:
+
	test-1
+

+
New packages to be INSTALLED:
+
	test2: 1
+
${JAILED}[1/2] Deinstalling test-1...
+
${JAILED}[1/2] Deleting files for test-1:  done
+
${JAILED}[2/2] Installing test2-1...
+
${JAILED}[2/2] Extracting test2-1:  done
+
"
+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -y test2-1
+
}
+

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

+
	atf_add_test_case find_conflicts
+
}
deleted tests/frontend/conflicts.shin
@@ -1,100 +0,0 @@
-
#! /usr/bin/env atf-sh
-
atf_test_case find_conflicts
-
find_conflicts_head() {
-
	atf_set "descr" "Testing dynamic conflicts resolution"
-
}
-

-
find_conflicts_body() {
-
	touch a
-
	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}/a: "",
-
}
-
EOF
-
	atf_check \
-
		-o match:".*Installing.*\.\.\.$" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg register -M manifest
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -M manifest2 -o .
-

-
	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
-

-
OUTPUT="Updating local repository catalogue...
-
${JAILED}Fetching meta.txz:  done
-
${JAILED}Fetching packagesite.txz:  done
-
Processing entries:  done
-
local repository update completed. 1 packages processed.
-
Updating database digests format:  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 REMOVED:
-
	test-1
-

-
New packages to be INSTALLED:
-
	test2: 1
-
${JAILED}[1/2] Deinstalling test-1...
-
${JAILED}[1/2] Deleting files for test-1:  done
-
${JAILED}[2/2] Installing test2-1...
-
${JAILED}[2/2] Extracting test2-1:  done
-
"
-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -y test2-1
-
}
-

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

-
	atf_add_test_case find_conflicts
-
}
added tests/frontend/create.sh
@@ -0,0 +1,418 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case create_from_plist
+
create_from_plist_head() {
+
	atf_set "descr" "Testing pkg create from plist"
+
}
+

+
genmanifest() {
+
	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
+
EOF
+
}
+

+
genplist() {
+
	cat << EOF >> test.plist
+
$@
+
EOF
+
}
+

+
preparetestcredentials() {
+
	touch file1
+

+
	genmanifest
+
	genplist "@$1 file1"
+
}
+

+
basic_validation() {
+
	test -f test-1.txz || atf_fail "Package not created"
+
	xz -t test-1.txz || atf_fail "XZ integrity check failed"
+
}
+

+
create_from_plist_body() {
+
	touch file1
+
	genmanifest
+
	genplist "file1"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+
	atf_check \
+
		-o match:"-rw-r--r-- .*root +wheel.* /file1$" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tvf test-1.txz
+
}
+

+
atf_test_case create_from_plist_set_owner
+
create_from_plist_set_owner_head() {
+
	atf_set "descr" "Testing credentials set from the plist"
+
}
+

+
create_from_plist_set_owner_body() {
+

+
	preparetestcredentials "(plop,,)"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+
	atf_check \
+
		-o match:"-rw-r--r-- .*plop +wheel.* /file1$" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tvf test-1.txz
+
}
+

+
atf_test_case create_from_plist_set_group
+
create_from_plist_set_owner_head() {
+
	atf_set "descr" "Testing credentials set from the plist"
+
}
+

+
create_from_plist_set_group_body() {
+

+
	preparetestcredentials "(,bla,)"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+
	atf_check \
+
		-o match:"-rw-r--r-- .*root +bla.* /file1$" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tvf test-1.txz
+
}
+

+
atf_test_case create_from_plist_gather_mode
+
create_from_plist_gather_mode_head() {
+
	atf_set "descr" "Testing credentials set from the plist"
+
}
+

+
create_from_plist_gather_mode_body() {
+

+
	preparetestcredentials "(plop,bla,)"
+

+
	chmod 777 file1 || atf_fail "Impossible to change mode"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+
	atf_check \
+
		-o match:"-rwxrwxrwx .*plop +bla.* /file1$" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tvf test-1.txz
+
}
+

+
atf_test_case create_from_plist_set_mode
+
create_from_plist_set_mode_head() {
+
	atf_set "descr" "Testing credentials set from the plist"
+
}
+
create_from_plist_set_mode_body() {
+

+
	preparetestcredentials "(,,2755)"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+
	atf_check \
+
		-o match:"-rwxr-sr-x .*root +wheel.* /file1$" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tvf test-1.txz
+
}
+

+
atf_test_case create_from_plist_mini
+
create_from_plist_mini_head() {
+
	atf_set "descr" "Testing credentials set from the plist"
+
}
+
create_from_plist_mini_body() {
+

+
	preparetestcredentials "(plop,)"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+
	atf_check \
+
		-o match:"-rw-r--r-- .*plop +wheel.* /file1$" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tvf test-1.txz
+
}
+

+
atf_test_case create_from_plist_dirrm
+
create_from_plist_dirrm_head() {
+
	atf_set "descr" "Testing @dirrm(try) set from the plist"
+
}
+

+
create_from_plist_dirrm_body() {
+
	mkdir testdir
+

+
	genmanifest
+
	for dir in dirrm dirrmtry ; do
+
		rm test.plist
+
		genplist "@${dir} testdir"
+

+
		atf_check \
+
			-o empty \
+
			-e empty \
+
			pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
		basic_validation
+

+
		atf_check \
+
			-o empty \
+
			-e inline:"pkg: Warning: @dirrm[try] is deprecated, please use @dir\n" \
+
			pkg -o DEVELOPER_MODE=yes create -o ${TMPDIR} -m . -p test.plist -r .
+
	done
+
}
+

+
atf_test_case create_from_plist_ignore
+
create_from_plist_ignore_head() {
+
	atf_set "descr" "Testing @ignore"
+
}
+
create_from_plist_ignore_body() {
+
	genmanifest
+
	genplist "@ignore
+
aline"
+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	basic_validation
+

+
	atf_check \
+
		-o inline:"+COMPACT_MANIFEST\n+MANIFEST\n" \
+
		-e empty \
+
		-s exit:0 \
+
		tar tf test-1.txz
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: Warning: @ignore is deprecated\n" \
+
		pkg -o DEVELOPER_MODE=yes create -o ${TMPDIR} -m . -p test.plist -r .
+
}
+

+
atf_test_case create_from_plist_fflags
+
create_from_plist_fflags_head() {
+
	atf_set "descr" "Test fflags set from plist"
+
}
+

+
create_from_plist_fflags_body() {
+
	preparetestcredentials "(,,,schg)"
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+
}
+

+
atf_test_case create_from_plist_bad_fflags
+
create_from_plist_bad_fflags_head() {
+
	atf_set "descr" "Test bad fflags set from plist"
+
}
+

+
create_from_plist_bad_fflags_body() {
+
	preparetestcredentials "(,,,schg,bad)"
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: Malformed keyword '', wrong fflags\n" \
+
		-s exit:70 \
+
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
+
}
+

+
atf_test_case create_from_plist_with_keyword_arguments
+
create_from_plist_with_keyword_arguments_head() {
+
	atf_set "descr" "Test keywords with arguments"
+
}
+

+
create_from_plist_with_keyword_arguments_body() {
+
	preparetestcredentials "testkeyword"
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: cannot parse keyword: cannot open file ./testkeyword.ucl: No such file or directory\npkg: unknown keyword testkeyword: @testkeyword\n" \
+
		-s exit:70 \
+
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
+

+
cat << EOF >> testkeyword.ucl
+
actions: []
+
arguments: true
+
post-install:
+
	echo %1 %2
+
EOF
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: Requesting argument %2 while only 1 arguments are available\n" \
+
		-s exit:70 \
+
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
+

+
cat << EOF > testkeyword.ucl
+
actions: [file(%1)]
+
arguments: true
+
post-install:
+
	echo %1 %2
+
EOF
+

+
	echo "@testkeyword A B" > test.plist
+

+
	atf_check \
+
		-o empty \
+
		-e inline:"pkg: Invalid argument: expecting a number got (%1)\n" \
+
		-s exit:70 \
+
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
+

+
cat << EOF > testkeyword.ucl
+
actions: [file(1), dir(2)]
+
arguments: true
+
post-install:
+
	echo %1 %2
+
EOF
+
	touch A
+
	mkdir B
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
+

+
cat << EOF >> output.ucl
+
name = "test";
+
origin = "test";
+
version = "1";
+
comment = "a test";
+
maintainer = "test";
+
www = "http://test";
+
abi = "*";
+
arch = "*";
+
prefix = "/";
+
flatsize = 0;
+
desc = "Yet another test";
+
categories [
+
    "test",
+
]
+
files {
+
    /A = "1\$e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
+
}
+
directories {
+
    /B = "y";
+
}
+
scripts {
+
    post-install = "echo A B";
+
}
+

+
EOF
+

+
	atf_check \
+
		-o file:output.ucl \
+
		-e empty \
+
		-s exit:0 \
+
		pkg info -R --raw-format=ucl -F test-1.txz
+
}
+

+
atf_test_case create_from_manifest_and_plist
+
create_from_manifest_and_plist_head() {
+
	atf_set "descr" "Testing pkg create with manifest and plist"
+
}
+

+
create_from_manifest_and_plist_body() {
+
	genmanifest
+
	touch testfile
+
	genplist "testfile"
+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M ./+MANIFEST -p test.plist -r ${TMPDIR}
+

+
	cat << EOF > output.ucl
+
name = "test";
+
origin = "test";
+
version = "1";
+
comment = "a test";
+
maintainer = "test";
+
www = "http://test";
+
abi = "*";
+
arch = "*";
+
prefix = "/";
+
flatsize = 0;
+
desc = "Yet another test";
+
categories [
+
    "test",
+
]
+
files {
+
    /testfile = "1\$e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
+
}
+

+
EOF
+

+
	atf_check \
+
		-o file:output.ucl \
+
		-e empty \
+
		-s exit:0 \
+
		pkg info -R --raw-format=ucl -F test-1.txz
+
}
+

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

+
	atf_add_test_case create_from_plist
+
	atf_add_test_case create_from_plist_set_owner
+
	atf_add_test_case create_from_plist_set_group
+
	atf_add_test_case create_from_plist_gather_mode
+
	atf_add_test_case create_from_plist_set_mode
+
	atf_add_test_case create_from_plist_mini
+
	atf_add_test_case create_from_plist_dirrm
+
	atf_add_test_case create_from_plist_ignore
+
	if [ `uname -s` != "Linux" ] ; then
+
		atf_add_test_case create_from_plist_fflags
+
		atf_add_test_case create_from_plist_bad_fflags
+
	fi
+
	atf_add_test_case create_from_plist_with_keyword_arguments
+
	atf_add_test_case create_from_manifest_and_plist
+
}
deleted tests/frontend/create.shin
@@ -1,418 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case create_from_plist
-
create_from_plist_head() {
-
	atf_set "descr" "Testing pkg create from plist"
-
}
-

-
genmanifest() {
-
	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
-
EOF
-
}
-

-
genplist() {
-
	cat << EOF >> test.plist
-
$@
-
EOF
-
}
-

-
preparetestcredentials() {
-
	touch file1
-

-
	genmanifest
-
	genplist "@$1 file1"
-
}
-

-
basic_validation() {
-
	test -f test-1.txz || atf_fail "Package not created"
-
	xz -t test-1.txz || atf_fail "XZ integrity check failed"
-
}
-

-
create_from_plist_body() {
-
	touch file1
-
	genmanifest
-
	genplist "file1"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-
	atf_check \
-
		-o match:"-rw-r--r-- .*root +wheel.* /file1$" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tvf test-1.txz
-
}
-

-
atf_test_case create_from_plist_set_owner
-
create_from_plist_set_owner_head() {
-
	atf_set "descr" "Testing credentials set from the plist"
-
}
-

-
create_from_plist_set_owner_body() {
-

-
	preparetestcredentials "(plop,,)"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-
	atf_check \
-
		-o match:"-rw-r--r-- .*plop +wheel.* /file1$" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tvf test-1.txz
-
}
-

-
atf_test_case create_from_plist_set_group
-
create_from_plist_set_owner_head() {
-
	atf_set "descr" "Testing credentials set from the plist"
-
}
-

-
create_from_plist_set_group_body() {
-

-
	preparetestcredentials "(,bla,)"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-
	atf_check \
-
		-o match:"-rw-r--r-- .*root +bla.* /file1$" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tvf test-1.txz
-
}
-

-
atf_test_case create_from_plist_gather_mode
-
create_from_plist_gather_mode_head() {
-
	atf_set "descr" "Testing credentials set from the plist"
-
}
-

-
create_from_plist_gather_mode_body() {
-

-
	preparetestcredentials "(plop,bla,)"
-

-
	chmod 777 file1 || atf_fail "Impossible to change mode"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-
	atf_check \
-
		-o match:"-rwxrwxrwx .*plop +bla.* /file1$" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tvf test-1.txz
-
}
-

-
atf_test_case create_from_plist_set_mode
-
create_from_plist_set_mode_head() {
-
	atf_set "descr" "Testing credentials set from the plist"
-
}
-
create_from_plist_set_mode_body() {
-

-
	preparetestcredentials "(,,2755)"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-
	atf_check \
-
		-o match:"-rwxr-sr-x .*root +wheel.* /file1$" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tvf test-1.txz
-
}
-

-
atf_test_case create_from_plist_mini
-
create_from_plist_mini_head() {
-
	atf_set "descr" "Testing credentials set from the plist"
-
}
-
create_from_plist_mini_body() {
-

-
	preparetestcredentials "(plop,)"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-
	atf_check \
-
		-o match:"-rw-r--r-- .*plop +wheel.* /file1$" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tvf test-1.txz
-
}
-

-
atf_test_case create_from_plist_dirrm
-
create_from_plist_dirrm_head() {
-
	atf_set "descr" "Testing @dirrm(try) set from the plist"
-
}
-

-
create_from_plist_dirrm_body() {
-
	mkdir testdir
-

-
	genmanifest
-
	for dir in dirrm dirrmtry ; do
-
		rm test.plist
-
		genplist "@${dir} testdir"
-

-
		atf_check \
-
			-o empty \
-
			-e empty \
-
			pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
		basic_validation
-

-
		atf_check \
-
			-o empty \
-
			-e inline:"pkg: Warning: @dirrm[try] is deprecated, please use @dir\n" \
-
			pkg -o DEVELOPER_MODE=yes create -o ${TMPDIR} -m . -p test.plist -r .
-
	done
-
}
-

-
atf_test_case create_from_plist_ignore
-
create_from_plist_ignore_head() {
-
	atf_set "descr" "Testing @ignore"
-
}
-
create_from_plist_ignore_body() {
-
	genmanifest
-
	genplist "@ignore
-
aline"
-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	basic_validation
-

-
	atf_check \
-
		-o inline:"+COMPACT_MANIFEST\n+MANIFEST\n" \
-
		-e empty \
-
		-s exit:0 \
-
		tar tf test-1.txz
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: Warning: @ignore is deprecated\n" \
-
		pkg -o DEVELOPER_MODE=yes create -o ${TMPDIR} -m . -p test.plist -r .
-
}
-

-
atf_test_case create_from_plist_fflags
-
create_from_plist_fflags_head() {
-
	atf_set "descr" "Test fflags set from plist"
-
}
-

-
create_from_plist_fflags_body() {
-
	preparetestcredentials "(,,,schg)"
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-
}
-

-
atf_test_case create_from_plist_bad_fflags
-
create_from_plist_bad_fflags_head() {
-
	atf_set "descr" "Test bad fflags set from plist"
-
}
-

-
create_from_plist_bad_fflags_body() {
-
	preparetestcredentials "(,,,schg,bad)"
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: Malformed keyword '', wrong fflags\n" \
-
		-s exit:70 \
-
		pkg create -o ${TMPDIR} -m . -p test.plist -r .
-
}
-

-
atf_test_case create_from_plist_with_keyword_arguments
-
create_from_plist_with_keyword_arguments_head() {
-
	atf_set "descr" "Test keywords with arguments"
-
}
-

-
create_from_plist_with_keyword_arguments_body() {
-
	preparetestcredentials "testkeyword"
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: cannot parse keyword: cannot open file ./testkeyword.ucl: No such file or directory\npkg: unknown keyword testkeyword: @testkeyword\n" \
-
		-s exit:70 \
-
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
-

-
cat << EOF >> testkeyword.ucl
-
actions: []
-
arguments: true
-
post-install:
-
	echo %1 %2
-
EOF
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: Requesting argument %2 while only 1 arguments are available\n" \
-
		-s exit:70 \
-
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
-

-
cat << EOF > testkeyword.ucl
-
actions: [file(%1)]
-
arguments: true
-
post-install:
-
	echo %1 %2
-
EOF
-

-
	echo "@testkeyword A B" > test.plist
-

-
	atf_check \
-
		-o empty \
-
		-e inline:"pkg: Invalid argument: expecting a number got (%1)\n" \
-
		-s exit:70 \
-
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
-

-
cat << EOF > testkeyword.ucl
-
actions: [file(1), dir(2)]
-
arguments: true
-
post-install:
-
	echo %1 %2
-
EOF
-
	touch A
-
	mkdir B
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -o PLIST_KEYWORDS_DIR=. create -o ${TMPDIR} -m . -p test.plist -r .
-

-
cat << EOF >> output.ucl
-
name = "test";
-
origin = "test";
-
version = "1";
-
comment = "a test";
-
maintainer = "test";
-
www = "http://test";
-
abi = "*";
-
arch = "*";
-
prefix = "/";
-
flatsize = 0;
-
desc = "Yet another test";
-
categories [
-
    "test",
-
]
-
files {
-
    /A = "1\$e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
-
}
-
directories {
-
    /B = "y";
-
}
-
scripts {
-
    post-install = "echo A B";
-
}
-

-
EOF
-

-
	atf_check \
-
		-o file:output.ucl \
-
		-e empty \
-
		-s exit:0 \
-
		pkg info -R --raw-format=ucl -F test-1.txz
-
}
-

-
atf_test_case create_from_manifest_and_plist
-
create_from_manifest_and_plist_head() {
-
	atf_set "descr" "Testing pkg create with manifest and plist"
-
}
-

-
create_from_manifest_and_plist_body() {
-
	genmanifest
-
	touch testfile
-
	genplist "testfile"
-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -M ./+MANIFEST -p test.plist -r ${TMPDIR}
-

-
	cat << EOF > output.ucl
-
name = "test";
-
origin = "test";
-
version = "1";
-
comment = "a test";
-
maintainer = "test";
-
www = "http://test";
-
abi = "*";
-
arch = "*";
-
prefix = "/";
-
flatsize = 0;
-
desc = "Yet another test";
-
categories [
-
    "test",
-
]
-
files {
-
    /testfile = "1\$e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
-
}
-

-
EOF
-

-
	atf_check \
-
		-o file:output.ucl \
-
		-e empty \
-
		-s exit:0 \
-
		pkg info -R --raw-format=ucl -F test-1.txz
-
}
-

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

-
	atf_add_test_case create_from_plist
-
	atf_add_test_case create_from_plist_set_owner
-
	atf_add_test_case create_from_plist_set_group
-
	atf_add_test_case create_from_plist_gather_mode
-
	atf_add_test_case create_from_plist_set_mode
-
	atf_add_test_case create_from_plist_mini
-
	atf_add_test_case create_from_plist_dirrm
-
	atf_add_test_case create_from_plist_ignore
-
	if [ `uname -s` != "Linux" ] ; then
-
		atf_add_test_case create_from_plist_fflags
-
		atf_add_test_case create_from_plist_bad_fflags
-
	fi
-
	atf_add_test_case create_from_plist_with_keyword_arguments
-
	atf_add_test_case create_from_manifest_and_plist
-
}
added tests/frontend/delete.sh
@@ -0,0 +1,177 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case simple_delete
+
simple_delete_head() {
+
	atf_set "descr" "Testing pkg delete"
+
}
+

+
simple_delete_body() {
+
	touch file1
+
	mkdir dir
+
	touch dir/file2
+

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

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

+
	atf_check \
+
		-o match:".*Deinstalling.*" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg delete -y test
+

+
	test -f file1 && atf_fail "'file1' still present"
+
	test -f dir/file2 && atf_fail "'dir/file2' still present"
+
	test -d dir && atf_fail "'dir' still present"
+
	test -d ${TMPDIR} || atf_fail "Prefix have been removed"
+
}
+

+
atf_test_case simple_delete_prefix_ending_with_slash
+
simple_delete_prefix_ending_with_slash_head() {
+
	atf_set "descr" "Testing pkg delete when prefix end with /"
+
}
+

+
simple_delete_prefix_ending_with_slash_body() {
+
	touch file1
+
	mkdir dir
+
	touch dir/file2
+

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

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

+
	atf_check \
+
		-o match:".*Deinstalling.*" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg delete -y test
+

+
	test -f file1 && atf_fail "'file1' still present"
+
	test -f dir/file2 && atf_fail "'dir/file2' still present"
+
	test -d dir && atf_fail "'dir' still present"
+
	test -d ${TMPDIR} || atf_fail "Prefix have been removed"
+
}
+

+
atf_test_case delete_with_directory_owned
+
delete_with_directory_owned_head() {
+
	atf_set "descr" "Testing pkg delete when a directory is owned by another package"
+
}
+

+
delete_with_directory_owned_body() {
+
	touch file1
+
	mkdir dir
+
	touch dir/file2
+

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

+
	cat << EOF >> test2.ucl
+
name: test2
+
origin: test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: ${TMPDIR}/
+
desc: <<EOD
+
Yet another test
+
EOD
+
directories: {
+
    ${TMPDIR}/dir: 'y',
+
}
+
EOF
+
	atf_check \
+
		-o match:".*Installing.*\.\.\.$" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg register -M test.ucl
+

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

+
	atf_check \
+
		-o match:".*Deinstalling.*" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg delete -y test
+

+
	test -f file1 && atf_fail "'file1' still present"
+
	test -f dir/file2 && atf_fail "'dir/file2' still present"
+
	test -d dir || atf_fail "'dir' has been removed"
+

+
	atf_check \
+
		-o match:".*Deinstalling.*" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg delete -y test2
+

+
	test -d dir && atf_fail "'dir' still present"
+
	test -d ${TMPDIR} || atf_fail "Prefix has been removed"
+
}
+

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

+
	atf_add_test_case simple_delete
+
	atf_add_test_case simple_delete_prefix_ending_with_slash
+
	atf_add_test_case delete_with_directory_owned
+
}
deleted tests/frontend/delete.shin
@@ -1,177 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case simple_delete
-
simple_delete_head() {
-
	atf_set "descr" "Testing pkg delete"
-
}
-

-
simple_delete_body() {
-
	touch file1
-
	mkdir dir
-
	touch dir/file2
-

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

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

-
	atf_check \
-
		-o match:".*Deinstalling.*" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg delete -y test
-

-
	test -f file1 && atf_fail "'file1' still present"
-
	test -f dir/file2 && atf_fail "'dir/file2' still present"
-
	test -d dir && atf_fail "'dir' still present"
-
	test -d ${TMPDIR} || atf_fail "Prefix have been removed"
-
}
-

-
atf_test_case simple_delete_prefix_ending_with_slash
-
simple_delete_prefix_ending_with_slash_head() {
-
	atf_set "descr" "Testing pkg delete when prefix end with /"
-
}
-

-
simple_delete_prefix_ending_with_slash_body() {
-
	touch file1
-
	mkdir dir
-
	touch dir/file2
-

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

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

-
	atf_check \
-
		-o match:".*Deinstalling.*" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg delete -y test
-

-
	test -f file1 && atf_fail "'file1' still present"
-
	test -f dir/file2 && atf_fail "'dir/file2' still present"
-
	test -d dir && atf_fail "'dir' still present"
-
	test -d ${TMPDIR} || atf_fail "Prefix have been removed"
-
}
-

-
atf_test_case delete_with_directory_owned
-
delete_with_directory_owned_head() {
-
	atf_set "descr" "Testing pkg delete when a directory is owned by another package"
-
}
-

-
delete_with_directory_owned_body() {
-
	touch file1
-
	mkdir dir
-
	touch dir/file2
-

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

-
	cat << EOF >> test2.ucl
-
name: test2
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: ${TMPDIR}/
-
desc: <<EOD
-
Yet another test
-
EOD
-
directories: {
-
    ${TMPDIR}/dir: 'y',
-
}
-
EOF
-
	atf_check \
-
		-o match:".*Installing.*\.\.\.$" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg register -M test.ucl
-

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

-
	atf_check \
-
		-o match:".*Deinstalling.*" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg delete -y test
-

-
	test -f file1 && atf_fail "'file1' still present"
-
	test -f dir/file2 && atf_fail "'dir/file2' still present"
-
	test -d dir || atf_fail "'dir' has been removed"
-

-
	atf_check \
-
		-o match:".*Deinstalling.*" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg delete -y test2
-

-
	test -d dir && atf_fail "'dir' still present"
-
	test -d ${TMPDIR} || atf_fail "Prefix has been removed"
-
}
-

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

-
	atf_add_test_case simple_delete
-
	atf_add_test_case simple_delete_prefix_ending_with_slash
-
	atf_add_test_case delete_with_directory_owned
-
}
added tests/frontend/lock.sh
@@ -0,0 +1,89 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case lock
+
lock_head() {
+
	atf_set "descr" "pkg lock"
+
	atf_set "require.files" \
+
	   "${RESOURCEDIR}/png.ucl ${RESOURCEDIR}/sqlite3.ucl"
+
}
+

+
lock_body() {
+
	for pkg in 'png' 'sqlite3' ; do
+
		atf_check \
+
		    -o match:".*Installing.*\.\.\.$" \
+
		    -e empty \
+
		    -s exit:0 \
+
		    pkg register -t -M ${RESOURCEDIR}/$pkg.ucl
+
	done
+

+
	test -f "./local.sqlite" || \
+
	    atf_fail "Can't populate $PKG_DBDIR/local.sqlite"
+

+
	atf_check \
+
	    -o match:"Locking sqlite3.*" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -y sqlite3
+

+
	atf_check \
+
	    -o match:"sqlite3-3.8.6" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -l
+

+
	atf_check \
+
	    -o inline:"sqlite3-3.8.6: already locked\n" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -y sqlite3
+

+
	atf_check \
+
	    -o match:"Unlocking sqlite3.*" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg unlock -y sqlite3
+

+
	atf_check \
+
	    -o inline:"Currently locked packages:\n" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -l
+

+
	atf_check \
+
	    -o inline:"sqlite3-3.8.6: already unlocked\n" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg unlock -y sqlite3
+

+
	atf_check \
+
	    -o match:"Locking.*" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -y -a
+

+
	atf_check \
+
	    -o match:"sqlite3.*" \
+
	    -o match:"png.*" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -l
+

+
	atf_check \
+
	    -o match:"Unlocking.*" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg unlock -y -a
+

+
	atf_check \
+
	    -o inline:"Currently locked packages:\n" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg lock -l
+
}
+

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

+
	# Tests are run in alphabetical order
+
	atf_add_test_case lock
+
}
deleted tests/frontend/lock.shin
@@ -1,89 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case lock
-
lock_head() {
-
	atf_set "descr" "pkg lock"
-
	atf_set "require.files" \
-
	   "$(atf_get_srcdir)/png.ucl $(atf_get_srcdir)/sqlite3.ucl"
-
}
-

-
lock_body() {
-
	for pkg in 'png' 'sqlite3' ; do
-
		atf_check \
-
		    -o match:".*Installing.*\.\.\.$" \
-
		    -e empty \
-
		    -s exit:0 \
-
		    pkg register -t -M $(atf_get_srcdir)/$pkg.ucl
-
	done
-

-
	test -f "./local.sqlite" || \
-
	    atf_fail "Can't populate $PKG_DBDIR/local.sqlite"
-

-
	atf_check \
-
	    -o match:"Locking sqlite3.*" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -y sqlite3
-

-
	atf_check \
-
	    -o match:"sqlite3-3.8.6" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -l
-

-
	atf_check \
-
	    -o inline:"sqlite3-3.8.6: already locked\n" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -y sqlite3
-

-
	atf_check \
-
	    -o match:"Unlocking sqlite3.*" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg unlock -y sqlite3
-

-
	atf_check \
-
	    -o inline:"Currently locked packages:\n" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -l
-

-
	atf_check \
-
	    -o inline:"sqlite3-3.8.6: already unlocked\n" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg unlock -y sqlite3
-

-
	atf_check \
-
	    -o match:"Locking.*" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -y -a
-

-
	atf_check \
-
	    -o match:"sqlite3.*" \
-
	    -o match:"png.*" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -l
-

-
	atf_check \
-
	    -o match:"Unlocking.*" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg unlock -y -a
-

-
	atf_check \
-
	    -o inline:"Currently locked packages:\n" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg lock -l
-
}
-

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

-
	# Tests are run in alphabetical order
-
	atf_add_test_case lock
-
}
added tests/frontend/packagesplit.sh
@@ -0,0 +1,149 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case package_split
+
package_split_head() {
+
	atf_set "descr" "testing package splitting"
+
}
+

+
package_split_body() {
+
	touch file1
+
	touch file2
+

+
	cat << EOF > pkg1.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
+
files: {
+
	${TMPDIR}/file1: "",
+
	${TMPDIR}/file2: "",
+
}
+
EOF
+

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

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

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

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

+
	for p in dep1 pkg2 pkg3 pkg4; 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"
+
}
+

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

+
	atf_add_test_case package_split
+
}
deleted tests/frontend/packagesplit.shin
@@ -1,149 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case package_split
-
package_split_head() {
-
	atf_set "descr" "testing package splitting"
-
}
-

-
package_split_body() {
-
	touch file1
-
	touch file2
-

-
	cat << EOF > pkg1.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
-
files: {
-
	${TMPDIR}/file1: "",
-
	${TMPDIR}/file2: "",
-
}
-
EOF
-

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

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

-
cat << EOF > pkg3.ucl
-
name: sub-test2
-
origin: test
-
version: 1
-
maintainer: test
-
categories: [test]
-
www: http://test
-
comment: a test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
files: {
-
	${TMPDIR}/file2: "",
-
}
-
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: {
-
	sub-test: {
-
		origin: test,
-
		version: 1
-
	},
-
	sub-test2: {
-
		origin: test,
-
		version: 1
-
	}
-
}
-
EOF
-

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

-
	for p in dep1 pkg2 pkg3 pkg4; 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"
-
}
-

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

-
	atf_add_test_case package_split
-
}
added tests/frontend/php-pr.sh
@@ -0,0 +1,295 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case pkg_phpextensions
+

+
pkg_phpextensions_head() {
+
	atf_set "descr" "testing pkg -- install php module wich dep on newer php version even with upgrade"
+
}
+

+
pkg_phpextensions_body() {
+
	touch php53.file
+
	touch php53extension.file
+
	touch php53gd.file
+
	touch php53fileinfo.file
+

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

+
	cat << EOF > php53extension.ucl
+
name: php53-extensions
+
origin: lang/php53-extensions
+
version: "1.6"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
requires: [ php-5.3.27 ]
+
deps:   {
+
          php53-gd: {
+
                origin: "graphics/php53-gd",
+
                version: "5.3.27"
+
          }
+

+
        }
+

+
files: {
+
    ${TMPDIR}/php53extension.file: "",
+
}
+
EOF
+

+
	cat << EOF > php53gd.ucl
+
name: php53-gd
+
origin: graphics/php53-gd
+
version: "5.3.27"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
requires: [ php-5.3.27 ]
+
deps:   {
+
          php53: {
+
                origin: "lang/php53",
+
                version: "5.3.27"
+
          }
+

+
        }
+

+
files: {
+
    ${TMPDIR}/php53gd.file: "",
+
}
+
EOF
+

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

+
	for p in php53 php53extension php53gd; 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 .
+

+
	atf_check \
+
		-o ignore \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -y php53-extensions
+

+
#### NEW
+

+
	rm repo1.conf
+
	rm -f *.ucl
+
	rm *.txz
+

+
	cat << EOF > php53.new.ucl
+
name: php53
+
origin: lang/php53
+
version: "5.3.40"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
provides: [ php-5.3.40 ]
+
files: {
+
    ${TMPDIR}/php53.file: "",
+
}
+
EOF
+

+
	cat << EOF >> php53extension.new.ucl
+
name: php53-extensions
+
origin: lang/php53-extensions
+
version: "1.6"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
requires: [ php-5.3.40 ]
+
deps:   {
+
          php53-gd: {
+
                origin: "graphics/php53-gd",
+
                version: "5.3.40"
+
          }
+

+
        }
+

+
files: {
+
    ${TMPDIR}/php53extension.file: "",
+
}
+
EOF
+

+
	cat << EOF >> php53gd.new.ucl
+
name: php53-gd
+
origin: graphics/php53-gd
+
version: "5.3.40"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
requires: [ php-5.3.40 ]
+
deps:   {
+
          php53: {
+
                origin: "lang/php53",
+
                version: "5.3.40"
+
          }
+

+
        }
+

+
files: {
+
    ${TMPDIR}/php53gd.file: "",
+
}
+
EOF
+

+

+
	cat << EOF >> php53fileinfo.new.ucl
+
name: php53-fileinfo
+
origin: sysutils/php53-fileinfo
+
version: "5.3.40"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
requires: [ php-5.3.40 ]
+
deps:   {
+
          php53: {
+
                origin: "lang/php53",
+
                version: "5.3.40"
+
          }
+

+
        }
+

+
files: {
+
    ${TMPDIR}/php53fileinfo.file: "",
+
}
+
EOF
+

+
	for p in php53 php53extension php53gd php53fileinfo; do
+
		atf_check \
+
			-o ignore \
+
			-e empty \
+
			-s exit:0 \
+
			pkg create -M ./${p}.new.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
+

+
OUTPUT="php53-5.3.40
+
php53-extensions-1.6
+
php53-fileinfo-5.3.40
+
php53-gd-5.3.27
+
"
+

+
OUTPUT="Updating local repository catalogue...
+
${JAILED}Fetching meta.txz:  done
+
${JAILED}Fetching packagesite.txz:  done
+
Processing entries:  done
+
local repository update completed. 4 packages processed.
+
Checking integrity... done (0 conflicting)
+
The following 4 package(s) will be affected (of 0 checked):
+

+
New packages to be INSTALLED:
+
	php53-fileinfo: 5.3.40
+

+
Installed packages to be UPGRADED:
+
	php53: 5.3.27 -> 5.3.40
+
	php53-gd: 5.3.27 -> 5.3.40
+

+
Installed packages to be REINSTALLED:
+
	php53-extensions-1.6 (requires changed)
+
"
+

+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -n php53-fileinfo
+

+

+
OUTPUT="Updating local repository catalogue...
+
local repository is up-to-date.
+
All repositories are up-to-date.
+
Checking for upgrades (3 candidates):  done
+
Processing candidates (3 candidates):  done
+
Checking integrity... done (0 conflicting)
+
The following 3 package(s) will be affected (of 0 checked):
+

+
Installed packages to be UPGRADED:
+
	php53-gd: 5.3.27 -> 5.3.40
+
	php53: 5.3.27 -> 5.3.40
+

+
Installed packages to be REINSTALLED:
+
	php53-extensions-1.6 (requires changed)
+
"
+
	atf_check \
+
		-o inline:"${OUTPUT}" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" upgrade -n
+
}
+

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

+
	atf_add_test_case pkg_phpextensions
+
}
+

deleted tests/frontend/php-pr.shin
@@ -1,295 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case pkg_phpextensions
-

-
pkg_phpextensions_head() {
-
	atf_set "descr" "testing pkg -- install php module wich dep on newer php version even with upgrade"
-
}
-

-
pkg_phpextensions_body() {
-
	touch php53.file
-
	touch php53extension.file
-
	touch php53gd.file
-
	touch php53fileinfo.file
-

-
	cat << EOF > php53.ucl
-
name: php53
-
origin: lang/php53
-
version: "5.3.27"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
provides: [ php-5.3.27 ]
-
files: {
-
    ${TMPDIR}/php53.file: "",
-
}
-
EOF
-

-
	cat << EOF > php53extension.ucl
-
name: php53-extensions
-
origin: lang/php53-extensions
-
version: "1.6"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
requires: [ php-5.3.27 ]
-
deps:   {
-
          php53-gd: {
-
                origin: "graphics/php53-gd",
-
                version: "5.3.27"
-
          }
-

-
        }
-

-
files: {
-
    ${TMPDIR}/php53extension.file: "",
-
}
-
EOF
-

-
	cat << EOF > php53gd.ucl
-
name: php53-gd
-
origin: graphics/php53-gd
-
version: "5.3.27"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
requires: [ php-5.3.27 ]
-
deps:   {
-
          php53: {
-
                origin: "lang/php53",
-
                version: "5.3.27"
-
          }
-

-
        }
-

-
files: {
-
    ${TMPDIR}/php53gd.file: "",
-
}
-
EOF
-

-
	cat << EOF > repo1.conf
-
local1: {
-
        url: file://${TMPDIR},
-
        enabled: true
-
}
-
EOF
-

-
	for p in php53 php53extension php53gd; 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 .
-

-
	atf_check \
-
		-o ignore \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -y php53-extensions
-

-
#### NEW
-

-
	rm repo1.conf
-
	rm -f *.ucl
-
	rm *.txz
-

-
	cat << EOF > php53.new.ucl
-
name: php53
-
origin: lang/php53
-
version: "5.3.40"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
provides: [ php-5.3.40 ]
-
files: {
-
    ${TMPDIR}/php53.file: "",
-
}
-
EOF
-

-
	cat << EOF >> php53extension.new.ucl
-
name: php53-extensions
-
origin: lang/php53-extensions
-
version: "1.6"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
requires: [ php-5.3.40 ]
-
deps:   {
-
          php53-gd: {
-
                origin: "graphics/php53-gd",
-
                version: "5.3.40"
-
          }
-

-
        }
-

-
files: {
-
    ${TMPDIR}/php53extension.file: "",
-
}
-
EOF
-

-
	cat << EOF >> php53gd.new.ucl
-
name: php53-gd
-
origin: graphics/php53-gd
-
version: "5.3.40"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
requires: [ php-5.3.40 ]
-
deps:   {
-
          php53: {
-
                origin: "lang/php53",
-
                version: "5.3.40"
-
          }
-

-
        }
-

-
files: {
-
    ${TMPDIR}/php53gd.file: "",
-
}
-
EOF
-

-

-
	cat << EOF >> php53fileinfo.new.ucl
-
name: php53-fileinfo
-
origin: sysutils/php53-fileinfo
-
version: "5.3.40"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
requires: [ php-5.3.40 ]
-
deps:   {
-
          php53: {
-
                origin: "lang/php53",
-
                version: "5.3.40"
-
          }
-

-
        }
-

-
files: {
-
    ${TMPDIR}/php53fileinfo.file: "",
-
}
-
EOF
-

-
	for p in php53 php53extension php53gd php53fileinfo; do
-
		atf_check \
-
			-o ignore \
-
			-e empty \
-
			-s exit:0 \
-
			pkg create -M ./${p}.new.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
-

-
OUTPUT="php53-5.3.40
-
php53-extensions-1.6
-
php53-fileinfo-5.3.40
-
php53-gd-5.3.27
-
"
-

-
OUTPUT="Updating local repository catalogue...
-
${JAILED}Fetching meta.txz:  done
-
${JAILED}Fetching packagesite.txz:  done
-
Processing entries:  done
-
local repository update completed. 4 packages processed.
-
Checking integrity... done (0 conflicting)
-
The following 4 package(s) will be affected (of 0 checked):
-

-
New packages to be INSTALLED:
-
	php53-fileinfo: 5.3.40
-

-
Installed packages to be UPGRADED:
-
	php53: 5.3.27 -> 5.3.40
-
	php53-gd: 5.3.27 -> 5.3.40
-

-
Installed packages to be REINSTALLED:
-
	php53-extensions-1.6 (requires changed)
-
"
-

-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -n php53-fileinfo
-

-

-
OUTPUT="Updating local repository catalogue...
-
local repository is up-to-date.
-
All repositories are up-to-date.
-
Checking for upgrades (3 candidates):  done
-
Processing candidates (3 candidates):  done
-
Checking integrity... done (0 conflicting)
-
The following 3 package(s) will be affected (of 0 checked):
-

-
Installed packages to be UPGRADED:
-
	php53-gd: 5.3.27 -> 5.3.40
-
	php53: 5.3.27 -> 5.3.40
-

-
Installed packages to be REINSTALLED:
-
	php53-extensions-1.6 (requires changed)
-
"
-
	atf_check \
-
		-o inline:"${OUTPUT}" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" upgrade -n
-
}
-

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

-
	atf_add_test_case pkg_phpextensions
-
}
-

added tests/frontend/pkg.sh
@@ -0,0 +1,118 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case pkg_no_database
+
pkg_no_database_head() {
+
	atf_set "descr" "testing pkg -- no database"
+
}
+

+
pkg_no_database_body() {
+
	atf_check \
+
	    -o empty \
+
	    -e inline:"pkg: package database non-existent\n" \
+
	    -s exit:69 \
+
	    -x PKG_DBDIR=/dev/null pkg -N
+
}
+

+
atf_test_case pkg_config_defaults
+
pkg_config_defaults_head()
+
{
+
	atf_set "descr" "testing pkg -- compiled-in defaults"
+
}
+

+
pkg_config_defaults_body()
+
{
+
	atf_check \
+
	    -o match:'^ *PKG_DBDIR = "/var/db/pkg";$' \
+
	    -o match:'^ *PKG_CACHEDIR = "/var/cache/pkg";$' \
+
	    -o match:'^ *PORTSDIR = "/usr/d?ports";$' \
+
	    -o match:'^ *HANDLE_RC_SCRIPTS = false;$' \
+
	    -o match:'^ *DEFAULT_ALWAYS_YES = false;$' \
+
	    -o match:'^ *ASSUME_ALWAYS_YES = false;$' \
+
	    -o match:'^ *PLIST_KEYWORDS_DIR = "";$' \
+
	    -o match:'^ *SYSLOG = true;$' \
+
	    -o match:'^ *ALTABI = "[a-zA-Z0-9]+:[a-z\.A-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9:]+";$' \
+
	    -o match:'^ *DEVELOPER_MODE = false;$' \
+
	    -o match:'^ *VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2";$' \
+
	    -o match:'^ *FETCH_RETRY = 3;$' \
+
	    -o match:'^ *PKG_PLUGINS_DIR = ".*lib/pkg/";$' \
+
	    -o match:'^ *PKG_ENABLE_PLUGINS = true;$' \
+
	    -o match:'^ *DEBUG_SCRIPTS = false;$' \
+
	    -o match:'^ *PLUGINS_CONF_DIR = ".*/etc/pkg/";$' \
+
	    -o match:'^ *PERMISSIVE = false;$' \
+
	    -o match:'^ *REPO_AUTOUPDATE = true;$' \
+
	    -o match:'^ *NAMESERVER = "";$' \
+
	    -o match:'^ *EVENT_PIPE = "";$' \
+
	    -o match:'^ *FETCH_TIMEOUT = 30;$' \
+
	    -o match:'^ *UNSET_TIMESTAMP = false;$' \
+
	    -o match:'^ *SSH_RESTRICT_DIR = "";$' \
+
	    -e empty              \
+
	    -s exit:0             \
+
	    env -i PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" pkg -C "" -R "" -vv
+
}
+

+
atf_test_case pkg_create_manifest_bad_syntax
+
pkg_create_manifest_bad_syntax_head()
+
{
+
	atf_set "descr" "Testing bad syntax in manifest"
+

+
}
+

+
pkg_create_manifest_bad_syntax_body()
+
{
+
	mkdir -p testpkg/.metadir
+
	cat <<EOF >> testpkg/.metadir/+MANIFEST
+
name: test
+
version: 1
+
origin: test
+
prefix: /usr/local
+
categories: [test]
+
comment: this is a test
+
maintainer: test
+
www: http://test
+
desc: <<EOD
+
A description
+
EOD
+
files:
+
  /usr/local/include/someFile.hp: 'sha256sum' p
+
EOF
+
	atf_check \
+
	    -o empty \
+
	    -e inline:"pkg: Skipping malformed key 'files'\n" \
+
	    -s exit:0 \
+
	    pkg create -q -m testpkg/.metadir -r testpkg
+

+
	atf_check \
+
	    -o empty \
+
	    -e empty \
+
	    -s exit:0 \
+
	    test -f test-1.txz
+
}
+

+
atf_test_case pkg_repo_load_order
+
pkg_repo_load_order_head()
+
{
+
	atf_set "descr" "Testing the order the repository configuration files are loaded"
+
}
+

+
pkg_repo_load_order_body()
+
{
+
	echo "03_repo: { url: file:///03_repo }" > plop.conf
+
	echo "02_repo: { url: file:///02_repo }" > 02.conf
+
	echo "01_repo: { url: file:///01_repo }" > 01.conf
+

+
	out=$(pkg -o REPOS_DIR=. -vv | tail -16)
+
	atf_check \
+
	    -o match:'.*01_repo\:.*02_repo\:.*03_repo\:.*' \
+
	    -e empty \
+
	    -s exit:0 \
+
	    echo $out
+
}
+

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

+
	atf_add_test_case pkg_no_database
+
	atf_add_test_case pkg_config_defaults
+
	atf_add_test_case pkg_create_manifest_bad_syntax
+
	atf_add_test_case pkg_repo_load_order
+
}
deleted tests/frontend/pkg.shin
@@ -1,118 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case pkg_no_database
-
pkg_no_database_head() {
-
	atf_set "descr" "testing pkg -- no database"
-
}
-

-
pkg_no_database_body() {
-
	atf_check \
-
	    -o empty \
-
	    -e inline:"pkg: package database non-existent\n" \
-
	    -s exit:69 \
-
	    -x PKG_DBDIR=/dev/null pkg -N
-
}
-

-
atf_test_case pkg_config_defaults
-
pkg_config_defaults_head()
-
{
-
	atf_set "descr" "testing pkg -- compiled-in defaults"
-
}
-

-
pkg_config_defaults_body()
-
{
-
	atf_check \
-
	    -o match:'^ *PKG_DBDIR = "/var/db/pkg";$' \
-
	    -o match:'^ *PKG_CACHEDIR = "/var/cache/pkg";$' \
-
	    -o match:'^ *PORTSDIR = "/usr/d?ports";$' \
-
	    -o match:'^ *HANDLE_RC_SCRIPTS = false;$' \
-
	    -o match:'^ *DEFAULT_ALWAYS_YES = false;$' \
-
	    -o match:'^ *ASSUME_ALWAYS_YES = false;$' \
-
	    -o match:'^ *PLIST_KEYWORDS_DIR = "";$' \
-
	    -o match:'^ *SYSLOG = true;$' \
-
	    -o match:'^ *ALTABI = "[a-zA-Z0-9]+:[a-z\.A-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9:]+";$' \
-
	    -o match:'^ *DEVELOPER_MODE = false;$' \
-
	    -o match:'^ *VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2";$' \
-
	    -o match:'^ *FETCH_RETRY = 3;$' \
-
	    -o match:'^ *PKG_PLUGINS_DIR = ".*lib/pkg/";$' \
-
	    -o match:'^ *PKG_ENABLE_PLUGINS = true;$' \
-
	    -o match:'^ *DEBUG_SCRIPTS = false;$' \
-
	    -o match:'^ *PLUGINS_CONF_DIR = ".*/etc/pkg/";$' \
-
	    -o match:'^ *PERMISSIVE = false;$' \
-
	    -o match:'^ *REPO_AUTOUPDATE = true;$' \
-
	    -o match:'^ *NAMESERVER = "";$' \
-
	    -o match:'^ *EVENT_PIPE = "";$' \
-
	    -o match:'^ *FETCH_TIMEOUT = 30;$' \
-
	    -o match:'^ *UNSET_TIMESTAMP = false;$' \
-
	    -o match:'^ *SSH_RESTRICT_DIR = "";$' \
-
	    -e empty              \
-
	    -s exit:0             \
-
	    env -i PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" pkg -C "" -R "" -vv
-
}
-

-
atf_test_case pkg_create_manifest_bad_syntax
-
pkg_create_manifest_bad_syntax_head()
-
{
-
	atf_set "descr" "Testing bad syntax in manifest"
-

-
}
-

-
pkg_create_manifest_bad_syntax_body()
-
{
-
	mkdir -p testpkg/.metadir
-
	cat <<EOF >> testpkg/.metadir/+MANIFEST
-
name: test
-
version: 1
-
origin: test
-
prefix: /usr/local
-
categories: [test]
-
comment: this is a test
-
maintainer: test
-
www: http://test
-
desc: <<EOD
-
A description
-
EOD
-
files:
-
  /usr/local/include/someFile.hp: 'sha256sum' p
-
EOF
-
	atf_check \
-
	    -o empty \
-
	    -e inline:"pkg: Skipping malformed key 'files'\n" \
-
	    -s exit:0 \
-
	    pkg create -q -m testpkg/.metadir -r testpkg
-

-
	atf_check \
-
	    -o empty \
-
	    -e empty \
-
	    -s exit:0 \
-
	    test -f test-1.txz
-
}
-

-
atf_test_case pkg_repo_load_order
-
pkg_repo_load_order_head()
-
{
-
	atf_set "descr" "Testing the order the repository configuration files are loaded"
-
}
-

-
pkg_repo_load_order_body()
-
{
-
	echo "03_repo: { url: file:///03_repo }" > plop.conf
-
	echo "02_repo: { url: file:///02_repo }" > 02.conf
-
	echo "01_repo: { url: file:///01_repo }" > 01.conf
-

-
	out=$(pkg -o REPOS_DIR=. -vv | tail -16)
-
	atf_check \
-
	    -o match:'.*01_repo\:.*02_repo\:.*03_repo\:.*' \
-
	    -e empty \
-
	    -s exit:0 \
-
	    echo $out
-
}
-

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

-
	atf_add_test_case pkg_no_database
-
	atf_add_test_case pkg_config_defaults
-
	atf_add_test_case pkg_create_manifest_bad_syntax
-
	atf_add_test_case pkg_repo_load_order
-
}
added tests/frontend/png.ucl
@@ -0,0 +1,55 @@
+
name: "png"
+
origin: "graphics/png"
+
version: "1.5.18"
+
arch: "freebsd:11:x86:64"
+
maintainer: "dinoex@FreeBSD.org"
+
prefix: "/usr/local"
+
www: "http://www.libpng.org/pub/png/libpng.html"
+
flatsize: 964462
+
comment: "Library for manipulating PNG images"
+
licenselogic: "single"
+
desc: "Libpng was written as a companion to the PNG specification, as a\nway to reduce the amount of time and effort it takes to support\nthe PNG file format in application programs.  Most users will not\nhave to modify the library significantly; advanced users may want\nto modify it more.  The library was coded for both users.  All\nattempts were made to make it as complete as possible, while\nkeeping the code easy to understand.  Currently, this library\nonly supports C.  Support for other languages is being considered.\n\nLICENSE: libpng license\n\nWWW: http://www.libpng.org/pub/png/libpng.html\n     http://libpng.sourceforge.net/"
+
categories: [
+
    "graphics"
+
]
+
shlibs_provided: [
+
    "libpng15.so.15"
+
]
+
options: {
+
    APNG: "on",
+
    PNGTEST: "on"
+
}
+
files: {
+
    /usr/local/bin/libpng-config: "-",
+
    /usr/local/bin/libpng15-config: "1a27340cd0ef9fbaf340d81b72419a071e38cda2ae2bc75ec4d7ae04362d0f43",
+
    /usr/local/include/libpng15/png.h: "86cd8938a5c9b5c43e2221fe07e5bf9b884e7ea733da5d811a042fed6c4ffe30",
+
    /usr/local/include/libpng15/pngconf.h: "2e13aa5530d674b3157523bd6040b2f91b1311a4bb4f52c0ac85152197b2eb20",
+
    /usr/local/include/libpng15/pngdebug.h: "7f629ebfee85b24cee140b36a7f2ff3912ac751f7bd8632f622456e24aeca94a",
+
    /usr/local/include/libpng15/pnginfo.h: "2e85da648d41c22b9797ba334f0d8ec589bf94e59e845c2c83e68ace1a1d8add",
+
    /usr/local/include/libpng15/pnglibconf.h: "089d9087e5f10211ee5817bcecad418dc8846ae522f27ce8363646703c5b4009",
+
    /usr/local/include/libpng15/pngpriv.h: "cdc2877e9b716809b87608c2ac6900a8fcad92e98dc5621bdb3cee877220e7c4",
+
    /usr/local/include/libpng15/pngstruct.h: "b82469096bc8f0901032c6e5b9ac20b13fcddeafba18738f596d179a8079777d",
+
    /usr/local/include/png.h: "86cd8938a5c9b5c43e2221fe07e5bf9b884e7ea733da5d811a042fed6c4ffe30",
+
    /usr/local/include/pngconf.h: "2e13aa5530d674b3157523bd6040b2f91b1311a4bb4f52c0ac85152197b2eb20",
+
    /usr/local/include/pnglibconf.h: "089d9087e5f10211ee5817bcecad418dc8846ae522f27ce8363646703c5b4009",
+
    /usr/local/lib/libpng.a: "-",
+
    /usr/local/lib/libpng.so: "-",
+
    /usr/local/lib/libpng/libpng15-release.cmake: "f8de16e86b32f73ffb61bbb3d82d87c2045412fb5f2ba1f7f5370e556df48ec2",
+
    /usr/local/lib/libpng/libpng15.cmake: "68f02d70f8c2795c38b0f83e29fe1b65e96fbd14392c53ad1ad6f7f1978eba29",
+
    /usr/local/lib/libpng15.a: "e34ac3064d291b0596ad9f6a8e3999bf980ca3b85b344d0e71affd99edb250f7",
+
    /usr/local/lib/libpng15.so: "-",
+
    /usr/local/lib/libpng15.so.15: "f61f0138df54a5e478da040735ad57a8fbc1894843df1120947fc26815ef42b7",
+
    /usr/local/libdata/pkgconfig/libpng.pc: "-",
+
    /usr/local/libdata/pkgconfig/libpng15.pc: "23f232a47acd72d5adc51223fd4861bb988d196fcc4b7f539a6bec67f92efb43",
+
    /usr/local/man/man3/libpng.3.gz: "bf49558c0bc35b2a8b40baf5128fc4c4130692a54f2fb39178df68274d0b8675",
+
    /usr/local/man/man3/libpngpf.3.gz: "dfb644d429366de1912da4cd7779470db8fc0df302965e48d1ba40540bfba094",
+
    /usr/local/man/man5/png.5.gz: "3dc9903b841d5051ad90905a4b4d953daad6ea618be19533556ca09d3af1fa0b"
+
}
+
directories: {
+
    /usr/local/lib/libpng/: "n",
+
    /usr/local/include/libpng15/: "n"
+
}
+
scripts: {
+
    post-install: "/sbin/ldconfig -m /usr/local/lib",
+
    post-deinstall: "/sbin/ldconfig -R"
+
}
deleted tests/frontend/png.uclin
@@ -1,55 +0,0 @@
-
name: "png"
-
origin: "graphics/png"
-
version: "1.5.18"
-
arch: "freebsd:11:x86:64"
-
maintainer: "dinoex@FreeBSD.org"
-
prefix: "/usr/local"
-
www: "http://www.libpng.org/pub/png/libpng.html"
-
flatsize: 964462
-
comment: "Library for manipulating PNG images"
-
licenselogic: "single"
-
desc: "Libpng was written as a companion to the PNG specification, as a\nway to reduce the amount of time and effort it takes to support\nthe PNG file format in application programs.  Most users will not\nhave to modify the library significantly; advanced users may want\nto modify it more.  The library was coded for both users.  All\nattempts were made to make it as complete as possible, while\nkeeping the code easy to understand.  Currently, this library\nonly supports C.  Support for other languages is being considered.\n\nLICENSE: libpng license\n\nWWW: http://www.libpng.org/pub/png/libpng.html\n     http://libpng.sourceforge.net/"
-
categories: [
-
    "graphics"
-
]
-
shlibs_provided: [
-
    "libpng15.so.15"
-
]
-
options: {
-
    APNG: "on",
-
    PNGTEST: "on"
-
}
-
files: {
-
    /usr/local/bin/libpng-config: "-",
-
    /usr/local/bin/libpng15-config: "1a27340cd0ef9fbaf340d81b72419a071e38cda2ae2bc75ec4d7ae04362d0f43",
-
    /usr/local/include/libpng15/png.h: "86cd8938a5c9b5c43e2221fe07e5bf9b884e7ea733da5d811a042fed6c4ffe30",
-
    /usr/local/include/libpng15/pngconf.h: "2e13aa5530d674b3157523bd6040b2f91b1311a4bb4f52c0ac85152197b2eb20",
-
    /usr/local/include/libpng15/pngdebug.h: "7f629ebfee85b24cee140b36a7f2ff3912ac751f7bd8632f622456e24aeca94a",
-
    /usr/local/include/libpng15/pnginfo.h: "2e85da648d41c22b9797ba334f0d8ec589bf94e59e845c2c83e68ace1a1d8add",
-
    /usr/local/include/libpng15/pnglibconf.h: "089d9087e5f10211ee5817bcecad418dc8846ae522f27ce8363646703c5b4009",
-
    /usr/local/include/libpng15/pngpriv.h: "cdc2877e9b716809b87608c2ac6900a8fcad92e98dc5621bdb3cee877220e7c4",
-
    /usr/local/include/libpng15/pngstruct.h: "b82469096bc8f0901032c6e5b9ac20b13fcddeafba18738f596d179a8079777d",
-
    /usr/local/include/png.h: "86cd8938a5c9b5c43e2221fe07e5bf9b884e7ea733da5d811a042fed6c4ffe30",
-
    /usr/local/include/pngconf.h: "2e13aa5530d674b3157523bd6040b2f91b1311a4bb4f52c0ac85152197b2eb20",
-
    /usr/local/include/pnglibconf.h: "089d9087e5f10211ee5817bcecad418dc8846ae522f27ce8363646703c5b4009",
-
    /usr/local/lib/libpng.a: "-",
-
    /usr/local/lib/libpng.so: "-",
-
    /usr/local/lib/libpng/libpng15-release.cmake: "f8de16e86b32f73ffb61bbb3d82d87c2045412fb5f2ba1f7f5370e556df48ec2",
-
    /usr/local/lib/libpng/libpng15.cmake: "68f02d70f8c2795c38b0f83e29fe1b65e96fbd14392c53ad1ad6f7f1978eba29",
-
    /usr/local/lib/libpng15.a: "e34ac3064d291b0596ad9f6a8e3999bf980ca3b85b344d0e71affd99edb250f7",
-
    /usr/local/lib/libpng15.so: "-",
-
    /usr/local/lib/libpng15.so.15: "f61f0138df54a5e478da040735ad57a8fbc1894843df1120947fc26815ef42b7",
-
    /usr/local/libdata/pkgconfig/libpng.pc: "-",
-
    /usr/local/libdata/pkgconfig/libpng15.pc: "23f232a47acd72d5adc51223fd4861bb988d196fcc4b7f539a6bec67f92efb43",
-
    /usr/local/man/man3/libpng.3.gz: "bf49558c0bc35b2a8b40baf5128fc4c4130692a54f2fb39178df68274d0b8675",
-
    /usr/local/man/man3/libpngpf.3.gz: "dfb644d429366de1912da4cd7779470db8fc0df302965e48d1ba40540bfba094",
-
    /usr/local/man/man5/png.5.gz: "3dc9903b841d5051ad90905a4b4d953daad6ea618be19533556ca09d3af1fa0b"
-
}
-
directories: {
-
    /usr/local/lib/libpng/: "n",
-
    /usr/local/include/libpng15/: "n"
-
}
-
scripts: {
-
    post-install: "/sbin/ldconfig -m /usr/local/lib",
-
    post-deinstall: "/sbin/ldconfig -R"
-
}
added tests/frontend/query.sh
@@ -0,0 +1,72 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case query
+
query_head() {
+
	atf_set "descr" "testing pkg query"
+
}
+

+
query_body() {
+
	touch plop
+
	touch bla
+
	cat > test.ucl << EOF
+
name: "test"
+
origin: "osef"
+
version: "1"
+
arch: "freebsd:*"
+
maintainer: "test"
+
www: "unknown"
+
prefix: "${TMPDIR}"
+
comment: "need none"
+
desc: "here as well"
+
options: {
+
	"OPT1": "on"
+
	"OPT2": "off"
+
}
+
files: {
+
	"${TMPDIR}/plop": ""
+
	"${TMPDIR}/bla": ""
+
}
+
EOF
+

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

+
	atf_check \
+
		-o inline:"test\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query "%n"
+

+
	atf_check \
+
		-o inline:"test\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query -e "%#O > 0" "%n"
+

+
	atf_check \
+
		-o inline:"test 2\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query "%n %#O"
+

+
	atf_check \
+
		-o inline:"test 1\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query "%n %?O"
+

+
	atf_check \
+
		-o inline:"" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query -e "%#O == 0" "%n"
+
}
+

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

+
	atf_add_test_case query
+
}
deleted tests/frontend/query.shin
@@ -1,72 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case query
-
query_head() {
-
	atf_set "descr" "testing pkg query"
-
}
-

-
query_body() {
-
	touch plop
-
	touch bla
-
	cat > test.ucl << EOF
-
name: "test"
-
origin: "osef"
-
version: "1"
-
arch: "freebsd:*"
-
maintainer: "test"
-
www: "unknown"
-
prefix: "${TMPDIR}"
-
comment: "need none"
-
desc: "here as well"
-
options: {
-
	"OPT1": "on"
-
	"OPT2": "off"
-
}
-
files: {
-
	"${TMPDIR}/plop": ""
-
	"${TMPDIR}/bla": ""
-
}
-
EOF
-

-
	atf_check \
-
		-o match:".*Installing.*" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg register -M test.ucl
-

-
	atf_check \
-
		-o inline:"test\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query "%n"
-

-
	atf_check \
-
		-o inline:"test\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query -e "%#O > 0" "%n"
-

-
	atf_check \
-
		-o inline:"test 2\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query "%n %#O"
-

-
	atf_check \
-
		-o inline:"test 1\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query "%n %?O"
-

-
	atf_check \
-
		-o inline:"" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query -e "%#O == 0" "%n"
-
}
-

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

-
	atf_add_test_case query
-
}
added tests/frontend/register.sh
@@ -0,0 +1,62 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case register
+
register_conflicts_head() {
+
	atf_set "descr" "testing pkg register conflicts"
+
}
+

+
register_conflicts_body() {
+
	mkdir -p teststage/${TMPDIR}
+
	echo a > teststage/${TMPDIR}/plop
+
	sum=$(openssl dgst -sha256 -binary teststage/${TMPDIR}/plop | hexdump -v -e '/1 "%x"')
+
	cat > test.ucl << EOF
+
name: "test"
+
origin: "osef"
+
version: "1"
+
arch: "freebsd:*"
+
maintainer: "non"
+
prefix: "${TMPDIR}"
+
www: "unknown"
+
comment: "need one"
+
desc: "here as well"
+
files: {
+
	"${TMPDIR}/plop" : "$sum"
+
}
+
EOF
+
	atf_check \
+
	    -o match:".*Installing.*" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg register -i teststage -M test.ucl
+
	nsum=$(openssl dgst -sha256 -binary plop | hexdump -v -e '/1 "%x"')
+
	atf_check_equal ${sum} ${nsum}
+
	rm -f test.ucl
+
	echo b > teststage/${TMPDIR}/plop
+
	cat > test.ucl << EOF
+
name: "test2"
+
origin: "osef"
+
version: "1"
+
arch: "freebsd:*"
+
maintainer: "non"
+
prefix: "${TMPDIR}"
+
www: "unknown"
+
comment: "need one"
+
desc: "here as well"
+
files: {
+
	"${TMPDIR}/plop" : "$sum2"
+
}
+
EOF
+
	atf_check \
+
	    -o match:".*Installing.*" \
+
	    -e match:".*conflicts.*" \
+
	    -s exit:70 \
+
	    pkg register -i teststage -M test.ucl
+
	nsum=$(openssl dgst -sha256 -binary plop | hexdump -v -e '/1 "%x"')
+
	atf_check_equal ${sum} ${nsum}
+
}
+

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

+
	atf_add_test_case register_conflicts
+
}
deleted tests/frontend/register.shin
@@ -1,62 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case register
-
register_conflicts_head() {
-
	atf_set "descr" "testing pkg register conflicts"
-
}
-

-
register_conflicts_body() {
-
	mkdir -p teststage/${TMPDIR}
-
	echo a > teststage/${TMPDIR}/plop
-
	sum=$(openssl dgst -sha256 -binary teststage/${TMPDIR}/plop | hexdump -v -e '/1 "%x"')
-
	cat > test.ucl << EOF
-
name: "test"
-
origin: "osef"
-
version: "1"
-
arch: "freebsd:*"
-
maintainer: "non"
-
prefix: "${TMPDIR}"
-
www: "unknown"
-
comment: "need one"
-
desc: "here as well"
-
files: {
-
	"${TMPDIR}/plop" : "$sum"
-
}
-
EOF
-
	atf_check \
-
	    -o match:".*Installing.*" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg register -i teststage -M test.ucl
-
	nsum=$(openssl dgst -sha256 -binary plop | hexdump -v -e '/1 "%x"')
-
	atf_check_equal ${sum} ${nsum}
-
	rm -f test.ucl
-
	echo b > teststage/${TMPDIR}/plop
-
	cat > test.ucl << EOF
-
name: "test2"
-
origin: "osef"
-
version: "1"
-
arch: "freebsd:*"
-
maintainer: "non"
-
prefix: "${TMPDIR}"
-
www: "unknown"
-
comment: "need one"
-
desc: "here as well"
-
files: {
-
	"${TMPDIR}/plop" : "$sum2"
-
}
-
EOF
-
	atf_check \
-
	    -o match:".*Installing.*" \
-
	    -e match:".*conflicts.*" \
-
	    -s exit:70 \
-
	    pkg register -i teststage -M test.ucl
-
	nsum=$(openssl dgst -sha256 -binary plop | hexdump -v -e '/1 "%x"')
-
	atf_check_equal ${sum} ${nsum}
-
}
-

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

-
	atf_add_test_case register_conflicts
-
}
added tests/frontend/repo.sh
@@ -0,0 +1,76 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case repo
+
repo_head() {
+
	atf_set "descr" "testing pkg repo"
+
}
+

+
repo_body() {
+
	touch plop
+
	touch bla
+
	cat > test.ucl << EOF
+
name: "test"
+
origin: "osef"
+
version: "1"
+
arch: "freebsd:*"
+
maintainer: "test"
+
www: "unknown"
+
prefix: "${TMPDIR}"
+
comment: "need none"
+
desc: "here as well"
+
options: {
+
	"OPT1": "on"
+
	"OPT2": "off"
+
}
+
files: {
+
	"${TMPDIR}/plop": ""
+
	"${TMPDIR}/bla": ""
+
}
+
EOF
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg create -M test.ucl
+

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

+
	ln -s test-1.txz test.txz
+

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

+
	if [ `uname -s` = "Darwin" ]; then
+
		atf_pass
+
	fi
+

+
	nb=$(tar -xf digests.txz -O digests | wc -l)
+
	atf_check_equal $nb 2
+

+
	mkdir Latest
+
	ln -s test-1.txz Latest/test.txz
+

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

+
	nb=$(tar -xf digests.txz -O digests | wc -l)
+
	atf_check_equal $nb 2
+

+
}
+

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

+
	atf_add_test_case repo
+
}
deleted tests/frontend/repo.shin
@@ -1,76 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case repo
-
repo_head() {
-
	atf_set "descr" "testing pkg repo"
-
}
-

-
repo_body() {
-
	touch plop
-
	touch bla
-
	cat > test.ucl << EOF
-
name: "test"
-
origin: "osef"
-
version: "1"
-
arch: "freebsd:*"
-
maintainer: "test"
-
www: "unknown"
-
prefix: "${TMPDIR}"
-
comment: "need none"
-
desc: "here as well"
-
options: {
-
	"OPT1": "on"
-
	"OPT2": "off"
-
}
-
files: {
-
	"${TMPDIR}/plop": ""
-
	"${TMPDIR}/bla": ""
-
}
-
EOF
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg create -M test.ucl
-

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

-
	ln -s test-1.txz test.txz
-

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

-
	if [ `uname -s` = "Darwin" ]; then
-
		atf_pass
-
	fi
-

-
	nb=$(tar -xf digests.txz -O digests | wc -l)
-
	atf_check_equal $nb 2
-

-
	mkdir Latest
-
	ln -s test-1.txz Latest/test.txz
-

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

-
	nb=$(tar -xf digests.txz -O digests | wc -l)
-
	atf_check_equal $nb 2
-

-
}
-

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

-
	atf_add_test_case repo
-
}
added tests/frontend/requires.sh
@@ -0,0 +1,83 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case requires
+
requires_head() {
+
	atf_set "descr" "Testings requires"
+
}
+

+
requires_body() {
+
	cat << EOF >> repo.conf
+
local1: {
+
	url: file://${TMPDIR},
+
	enabled: true
+
}
+
EOF
+

+
	cat << EOF > a.ucl
+
name: a
+
origin: a
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
provides: [a-1]
+
EOF
+

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

+
	atf_check \
+
	    -o ignore \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg repo .
+

+
	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.
+
Checking integrity... done (0 conflicting)
+
The following 2 package(s) will be affected (of 0 checked):
+

+
New packages to be INSTALLED:
+
	b: 1.0
+
	a: 1.0
+
"
+
	atf_check \
+
	    -o inline:"${OUTPUT}" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg -o REPOS_DIR="${TMPDIR}" install -n b
+
}
+

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

+
	atf_add_test_case requires
+
}
+

deleted tests/frontend/requires.shin
@@ -1,83 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case requires
-
requires_head() {
-
	atf_set "descr" "Testings requires"
-
}
-

-
requires_body() {
-
	cat << EOF >> repo.conf
-
local1: {
-
	url: file://${TMPDIR},
-
	enabled: true
-
}
-
EOF
-

-
	cat << EOF > a.ucl
-
name: a
-
origin: a
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
provides: [a-1]
-
EOF
-

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

-
	atf_check \
-
	    -o ignore \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg repo .
-

-
	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.
-
Checking integrity... done (0 conflicting)
-
The following 2 package(s) will be affected (of 0 checked):
-

-
New packages to be INSTALLED:
-
	b: 1.0
-
	a: 1.0
-
"
-
	atf_check \
-
	    -o inline:"${OUTPUT}" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg -o REPOS_DIR="${TMPDIR}" install -n b
-
}
-

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

-
	atf_add_test_case requires
-
}
-

added tests/frontend/rootdir.sh
@@ -0,0 +1,22 @@
+
#!/usr/bin/env atf-sh
+

+
atf_test_case rootdir
+
rootdir_head() {
+
	atf_set "descr" "pkg -r <rootdir>"
+
}
+

+
rootdir_body() {
+
	unset PKG_DBDIR
+

+
	atf_check \
+
		-o inline:"${TMPDIR}/var/db/pkg\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg -r "${TMPDIR}" config pkg_dbdir
+
}
+

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

+
	atf_add_test_case rootdir
+
}
deleted tests/frontend/rootdir.shin
@@ -1,22 +0,0 @@
-
#!/usr/bin/env atf-sh
-

-
atf_test_case rootdir
-
rootdir_head() {
-
	atf_set "descr" "pkg -r <rootdir>"
-
}
-

-
rootdir_body() {
-
	unset PKG_DBDIR
-

-
	atf_check \
-
		-o inline:"${TMPDIR}/var/db/pkg\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg -r "${TMPDIR}" config pkg_dbdir
-
}
-

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

-
	atf_add_test_case rootdir
-
}
added tests/frontend/rubypuppet.sh
@@ -0,0 +1,366 @@
+
#! /usr/bin/env atf-sh
+

+
# If you remove rubygem-ruby-augeas from puppet as deps pkg will not remove puppet
+
# but also don't reinstall it which is also wrong.
+

+

+
atf_test_case pkg_puppet
+

+
pkg_puppet_head() {
+
	atf_set "descr" "testing pkg -- ruby upgrade and puppet removal"
+
}
+

+
pkg_puppet_body() {
+
	touch puppet.file
+
	touch ruby.file
+
	touch rubygemrubyaugeas.file
+
	touch rubygemhiera.file
+
	touch rubygems.file
+

+
	cat << EOF > rubygemrubyaugeas.ucl
+
name: rubygem-ruby-augeas
+
origin: textproc/rubygem-augeas
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby: {
+
		origin: "lang/ruby20",
+
		version: "2.0"
+
	},
+
	ruby20-gems: {
+
		origin: "lang/ruby-gems",
+
		version: "1.0"
+
	}
+
}
+
files: {
+
	${TMPDIR}/rubygemrubyaugeas.file: "",
+
}
+
EOF
+

+
	cat << EOF > puppet.ucl
+
name: puppet
+
origin: sysutils/puppet
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby: {
+
		origin: "lang/ruby20",
+
		version: "2.0"
+
	},
+
	rubygem-hiera: {
+
		origin: "lang/rubygem-hiera",
+
		version: "1.0"
+
	},
+
	rubygem-ruby-augeas: {
+
		origin: "textproc/rubygem-augeas",
+
		version: "1.0"
+
	}
+
}
+
files: {
+
	${TMPDIR}/puppet.file: "",
+
}
+
EOF
+

+
	cat << EOF > ruby.ucl
+
name: ruby
+
origin: lang/ruby20
+
version: "2.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
shlibs_provided [
+
	"libruby20.so.20",
+
]
+
files: {
+
	${TMPDIR}/ruby.file: "",
+
}
+
EOF
+

+
	cat << EOF > rubygem-hiera.ucl
+
name: rubygem-hiera
+
origin: lang/rubygem-hiera
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby: {
+
		origin: "lang/ruby20",
+
		version: "2.0"
+
	},
+
	ruby20-gems: {
+
		origin: "lang/ruby-gems",
+
		version: "1.0"
+
	},
+
}
+
files: {
+
	${TMPDIR}/rubygemhiera.file: "",
+
}
+
EOF
+

+
	cat << EOF > ruby-gems20.ucl
+
name: ruby20-gems
+
origin: lang/ruby-gems
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby {
+
		origin: lang/ruby20,
+
		version: "2.0"
+
	}
+
}
+
files: {
+
	${TMPDIR}/rubygems.file: "",
+
}
+
EOF
+

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

+
	for p in ruby ruby-gems20 rubygem-hiera rubygemrubyaugeas puppet; 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 .
+

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

+
#### NEW
+
	rm repo1.conf
+
	rm -f *.ucl
+
	rm *.txz
+

+
	cat << EOF > rubygemrubyaugeas.new.ucl
+
name: rubygem-ruby-augeas
+
origin: textproc/rubygem-augeas
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby: {
+
		origin: "lang/ruby21",
+
		version: "2.1"
+
	},
+
	ruby21-gems: {
+
		origin: "lang/ruby-gems",
+
		version: "1.0"
+
	}
+
}
+
files: {
+
	${TMPDIR}/rubygemrubyaugeas.file: "",
+
}
+
EOF
+

+
	cat << EOF > puppet.new.ucl
+
name: puppet
+
origin: sysutils/puppet
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby: {
+
		origin: "lang/ruby21",
+
		version: "2.1"
+
	},
+
	rubygem-hiera: {
+
		origin: "lang/rubygem-hiera",
+
		version: "1.0"
+
	},
+
	rubygem-ruby-augeas: {
+
		origin: "textproc/rubygem-augeas",
+
		version: "1.0"
+
	}
+
}
+
files: {
+
	${TMPDIR}/puppet.file: "",
+
}
+
EOF
+

+
cat << EOF > ruby.new.ucl
+
name: ruby
+
origin: lang/ruby21
+
version: "2.1"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
shlibs_provided [
+
	"libruby21.so.21",
+
]
+
files: {
+
	${TMPDIR}/ruby.file: "",
+
}
+
EOF
+

+
cat << EOF > rubygem-hiera.new.ucl
+
name: rubygem-hiera
+
origin: lang/rubygem-hiera
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby: {
+
		origin: "lang/ruby21",
+
		version: "2.1"
+
	},
+
	ruby21-gems: {
+
		origin: "lang/ruby-gems",
+
		version: "1.0"
+
	},
+
}
+
files: {
+
	${TMPDIR}/rubygemhiera.file: "",
+
	}
+
EOF
+

+
cat << EOF > ruby-gems21.new.ucl
+
name: ruby21-gems
+
origin: lang/ruby-gems
+
version: "1.0"
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /usr/local
+
desc: <<EOD
+
Yet another test
+
EOD
+
deps: {
+
	ruby {
+
		origin: lang/ruby21,
+
		version: "2.1"
+
	}
+
}
+
files: {
+
	${TMPDIR}/rubygems.file: "",
+
}
+
EOF
+

+
	for p in ruby ruby-gems21 rubygem-hiera rubygemrubyaugeas puppet; do
+
		atf_check \
+
		    -o ignore \
+
		    -e empty \
+
		    -s exit:0 \
+
		    pkg create -M ./${p}.new.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
+

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

+
Installed packages to be REMOVED:
+
	ruby20-gems-1.0
+

+
New packages to be INSTALLED:
+
	ruby21-gems: 1.0
+

+
Installed packages to be UPGRADED:
+
	ruby: 2.0 -> 2.1
+

+
Installed packages to be REINSTALLED:
+
	rubygem-ruby-augeas-1.0 (direct dependency changed: ruby)
+
	rubygem-hiera-1.0 (direct dependency changed: ruby)
+
	puppet-1.0 (direct dependency changed: ruby)
+
"
+

+
	atf_check \
+
	    -o inline:"${OUTPUT}" \
+
	    -e empty \
+
	    -s exit:0 \
+
	    pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" upgrade -yn
+
}
+

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

+
	atf_add_test_case pkg_puppet
+
}
deleted tests/frontend/rubypuppet.shin
@@ -1,366 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
# If you remove rubygem-ruby-augeas from puppet as deps pkg will not remove puppet
-
# but also don't reinstall it which is also wrong.
-

-

-
atf_test_case pkg_puppet
-

-
pkg_puppet_head() {
-
	atf_set "descr" "testing pkg -- ruby upgrade and puppet removal"
-
}
-

-
pkg_puppet_body() {
-
	touch puppet.file
-
	touch ruby.file
-
	touch rubygemrubyaugeas.file
-
	touch rubygemhiera.file
-
	touch rubygems.file
-

-
	cat << EOF > rubygemrubyaugeas.ucl
-
name: rubygem-ruby-augeas
-
origin: textproc/rubygem-augeas
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby: {
-
		origin: "lang/ruby20",
-
		version: "2.0"
-
	},
-
	ruby20-gems: {
-
		origin: "lang/ruby-gems",
-
		version: "1.0"
-
	}
-
}
-
files: {
-
	${TMPDIR}/rubygemrubyaugeas.file: "",
-
}
-
EOF
-

-
	cat << EOF > puppet.ucl
-
name: puppet
-
origin: sysutils/puppet
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby: {
-
		origin: "lang/ruby20",
-
		version: "2.0"
-
	},
-
	rubygem-hiera: {
-
		origin: "lang/rubygem-hiera",
-
		version: "1.0"
-
	},
-
	rubygem-ruby-augeas: {
-
		origin: "textproc/rubygem-augeas",
-
		version: "1.0"
-
	}
-
}
-
files: {
-
	${TMPDIR}/puppet.file: "",
-
}
-
EOF
-

-
	cat << EOF > ruby.ucl
-
name: ruby
-
origin: lang/ruby20
-
version: "2.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
shlibs_provided [
-
	"libruby20.so.20",
-
]
-
files: {
-
	${TMPDIR}/ruby.file: "",
-
}
-
EOF
-

-
	cat << EOF > rubygem-hiera.ucl
-
name: rubygem-hiera
-
origin: lang/rubygem-hiera
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby: {
-
		origin: "lang/ruby20",
-
		version: "2.0"
-
	},
-
	ruby20-gems: {
-
		origin: "lang/ruby-gems",
-
		version: "1.0"
-
	},
-
}
-
files: {
-
	${TMPDIR}/rubygemhiera.file: "",
-
}
-
EOF
-

-
	cat << EOF > ruby-gems20.ucl
-
name: ruby20-gems
-
origin: lang/ruby-gems
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby {
-
		origin: lang/ruby20,
-
		version: "2.0"
-
	}
-
}
-
files: {
-
	${TMPDIR}/rubygems.file: "",
-
}
-
EOF
-

-
	cat << EOF > repo1.conf
-
local1: {
-
	url: file://${TMPDIR},
-
	enabled: true
-
}
-
EOF
-

-
	for p in ruby ruby-gems20 rubygem-hiera rubygemrubyaugeas puppet; 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 .
-

-
	atf_check \
-
	    -o ignore \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" install -y puppet
-

-
#### NEW
-
	rm repo1.conf
-
	rm -f *.ucl
-
	rm *.txz
-

-
	cat << EOF > rubygemrubyaugeas.new.ucl
-
name: rubygem-ruby-augeas
-
origin: textproc/rubygem-augeas
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby: {
-
		origin: "lang/ruby21",
-
		version: "2.1"
-
	},
-
	ruby21-gems: {
-
		origin: "lang/ruby-gems",
-
		version: "1.0"
-
	}
-
}
-
files: {
-
	${TMPDIR}/rubygemrubyaugeas.file: "",
-
}
-
EOF
-

-
	cat << EOF > puppet.new.ucl
-
name: puppet
-
origin: sysutils/puppet
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby: {
-
		origin: "lang/ruby21",
-
		version: "2.1"
-
	},
-
	rubygem-hiera: {
-
		origin: "lang/rubygem-hiera",
-
		version: "1.0"
-
	},
-
	rubygem-ruby-augeas: {
-
		origin: "textproc/rubygem-augeas",
-
		version: "1.0"
-
	}
-
}
-
files: {
-
	${TMPDIR}/puppet.file: "",
-
}
-
EOF
-

-
cat << EOF > ruby.new.ucl
-
name: ruby
-
origin: lang/ruby21
-
version: "2.1"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
shlibs_provided [
-
	"libruby21.so.21",
-
]
-
files: {
-
	${TMPDIR}/ruby.file: "",
-
}
-
EOF
-

-
cat << EOF > rubygem-hiera.new.ucl
-
name: rubygem-hiera
-
origin: lang/rubygem-hiera
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby: {
-
		origin: "lang/ruby21",
-
		version: "2.1"
-
	},
-
	ruby21-gems: {
-
		origin: "lang/ruby-gems",
-
		version: "1.0"
-
	},
-
}
-
files: {
-
	${TMPDIR}/rubygemhiera.file: "",
-
	}
-
EOF
-

-
cat << EOF > ruby-gems21.new.ucl
-
name: ruby21-gems
-
origin: lang/ruby-gems
-
version: "1.0"
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /usr/local
-
desc: <<EOD
-
Yet another test
-
EOD
-
deps: {
-
	ruby {
-
		origin: lang/ruby21,
-
		version: "2.1"
-
	}
-
}
-
files: {
-
	${TMPDIR}/rubygems.file: "",
-
}
-
EOF
-

-
	for p in ruby ruby-gems21 rubygem-hiera rubygemrubyaugeas puppet; do
-
		atf_check \
-
		    -o ignore \
-
		    -e empty \
-
		    -s exit:0 \
-
		    pkg create -M ./${p}.new.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
-

-
	OUTPUT="Updating local repository catalogue...
-
${JAILED}Fetching meta.txz:  done
-
${JAILED}Fetching packagesite.txz:  done
-
Processing entries:  done
-
local repository update completed. 5 packages processed.
-
Checking for upgrades (4 candidates):  done
-
Processing candidates (4 candidates):  done
-
Checking integrity... done (1 conflicting)
-
Checking integrity... done (0 conflicting)
-
The following 6 package(s) will be affected (of 0 checked):
-

-
Installed packages to be REMOVED:
-
	ruby20-gems-1.0
-

-
New packages to be INSTALLED:
-
	ruby21-gems: 1.0
-

-
Installed packages to be UPGRADED:
-
	ruby: 2.0 -> 2.1
-

-
Installed packages to be REINSTALLED:
-
	rubygem-ruby-augeas-1.0 (direct dependency changed: ruby)
-
	rubygem-hiera-1.0 (direct dependency changed: ruby)
-
	puppet-1.0 (direct dependency changed: ruby)
-
"
-

-
	atf_check \
-
	    -o inline:"${OUTPUT}" \
-
	    -e empty \
-
	    -s exit:0 \
-
	    pkg -o REPOS_DIR="${TMPDIR}" -o PKG_CACHEDIR="${TMPDIR}" upgrade -yn
-
}
-

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

-
	atf_add_test_case pkg_puppet
-
}
added tests/frontend/search.sh
@@ -0,0 +1,17 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case search
+
search_head() {
+
	atf_set "descr" "testing pkg search"
+
}
+

+
search_body() {
+
	export REPOS_DIR=/nonexistent
+
	atf_check -e inline:"No active remote repositories configured.\n" -o empty -s exit:3 pkg -C '' -R '' search -e -Q comment -S name pkg
+
}
+

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

+
	atf_add_test_case search
+
}
deleted tests/frontend/search.shin
@@ -1,17 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case search
-
search_head() {
-
	atf_set "descr" "testing pkg search"
-
}
-

-
search_body() {
-
	export REPOS_DIR=/nonexistent
-
	atf_check -e inline:"No active remote repositories configured.\n" -o empty -s exit:3 pkg -C '' -R '' search -e -Q comment -S name pkg
-
}
-

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

-
	atf_add_test_case search
-
}
added tests/frontend/set.sh
@@ -0,0 +1,101 @@
+
#! /usr/bin/env atf-sh
+

+
initialize_pkg() {
+
	cat << EOF > test.ucl
+
name: test
+
origin: origin/test
+
version: 1
+
maintainer: test
+
categories: [test]
+
comment: a test
+
www: http://test
+
prefix: /
+
abi = "*";
+
desc: <<EOD
+
Yet another test
+
EOD
+
EOF
+

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

+
atf_test_case set_automatic
+
set_automatic_body() {
+
	initialize_pkg
+

+
	atf_check \
+
		-o inline:"0\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query "%a" test
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg set -y -A 1 test
+

+
	atf_check \
+
		-o inline:"1\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query "%a" test
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg set -y -A 0 test
+

+
	atf_check \
+
		-o inline:"0\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg query "%a" test
+
}
+

+
atf_test_case set_change_name
+
set_change_name_body() {
+
	initialize_pkg
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg set -yn test:new
+

+
	atf_check \
+
		-o inline:"new-1\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg info -q
+
}
+

+
atf_test_case set_change_origin
+
set_change_origin_body() {
+
	initialize_pkg
+

+
	atf_check \
+
		-o empty \
+
		-e empty \
+
		-s exit:0 \
+
		pkg set -yo origin/test:neworigin/test
+

+
	atf_check \
+
		-o inline:"neworigin/test\n" \
+
		-e empty \
+
		-s exit:0 \
+
		pkg info -qo
+
}
+

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

+
	atf_add_test_case set_automatic
+
	atf_add_test_case set_change_name
+
	atf_add_test_case set_change_origin
+
}
deleted tests/frontend/set.shin
@@ -1,101 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
initialize_pkg() {
-
	cat << EOF > test.ucl
-
name: test
-
origin: origin/test
-
version: 1
-
maintainer: test
-
categories: [test]
-
comment: a test
-
www: http://test
-
prefix: /
-
abi = "*";
-
desc: <<EOD
-
Yet another test
-
EOD
-
EOF
-

-
	atf_check \
-
		-o match:".*Installing.*\.\.\.$" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg register -t -M test.ucl
-
}
-

-
atf_test_case set_automatic
-
set_automatic_body() {
-
	initialize_pkg
-

-
	atf_check \
-
		-o inline:"0\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query "%a" test
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg set -y -A 1 test
-

-
	atf_check \
-
		-o inline:"1\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query "%a" test
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg set -y -A 0 test
-

-
	atf_check \
-
		-o inline:"0\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg query "%a" test
-
}
-

-
atf_test_case set_change_name
-
set_change_name_body() {
-
	initialize_pkg
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg set -yn test:new
-

-
	atf_check \
-
		-o inline:"new-1\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg info -q
-
}
-

-
atf_test_case set_change_origin
-
set_change_origin_body() {
-
	initialize_pkg
-

-
	atf_check \
-
		-o empty \
-
		-e empty \
-
		-s exit:0 \
-
		pkg set -yo origin/test:neworigin/test
-

-
	atf_check \
-
		-o inline:"neworigin/test\n" \
-
		-e empty \
-
		-s exit:0 \
-
		pkg info -qo
-
}
-

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

-
	atf_add_test_case set_automatic
-
	atf_add_test_case set_change_name
-
	atf_add_test_case set_change_origin
-
}
added tests/frontend/sqlite3.ucl
@@ -0,0 +1,70 @@
+
name: "sqlite3"
+
origin: "databases/sqlite3"
+
version: "3.8.6"
+
arch: "freebsd:11:x86:64"
+
maintainer: "pavelivolkov@gmail.com"
+
prefix: "/usr/local"
+
www: "https://www.sqlite.org/"
+
flatsize: 2946046
+
comment: "SQL database engine in a C library"
+
licenselogic: "single"
+
licenses: [
+
    "public"
+
]
+
desc: "SQLite is an SQL database engine in a C library. Programs that link the SQLite\nlibrary can have SQL database access without running a separate RDBMS process.\nThe distribution comes with a standalone command-line access program (sqlite)\nthat can be used to administer an SQLite database and which serves as an\nexample of how to use the SQLite library.\n\nWWW: https://www.sqlite.org/"
+
categories: [
+
    "databases"
+
]
+
shlibs_provided: [
+
    "libsqlite3.so.0"
+
]
+
options: {
+
    DIRECT_READ: "off",
+
    EXTENSION: "on",
+
    FTS4: "on",
+
    ICU: "off",
+
    MEMMAN: "off",
+
    METADATA: "on",
+
    RTREE: "on",
+
    RTREE_INT: "off",
+
    SECURE_DELETE: "on",
+
    SOUNDEX: "off",
+
    STAT3: "off",
+
    STAT4: "off",
+
    THREADS: "on",
+
    TS0: "off",
+
    TS1: "on",
+
    TS2: "off",
+
    TS3: "off",
+
    UNICODE61: "off",
+
    UNLOCK_NOTIFY: "on",
+
    UPD_DEL_LIMIT: "off",
+
    URI: "on",
+
    URI_AUTHORITY: "off"
+
}
+
annotations: {
+
    repo_type: "binary"
+
}
+
files: {
+
    /usr/local/bin/sqlite3: "06663b5ae4eb31eda5d682b0679e6049e28c166efaa43f08faa3bdf73306358e",
+
    /usr/local/include/sqlite3.h: "5af7e60f277ba3c30bef97de7e8fb8df839d94b6cdbca5467f2dd8d3adf2986a",
+
    /usr/local/include/sqlite3ext.h: "620d8b84b8d8b8bea394dc5b9e6a98b0367218273ad0a4412cbb0cd3ce9be686",
+
    /usr/local/lib/libsqlite3.a: "10cc5a3ae7eaf320ee7ac197fd153e39e9d2ffcbadee9cb8cf459127d477c2ad",
+
    /usr/local/lib/libsqlite3.so: "b6289dcd4b8f45abf3e2f69c903e9b0f80bae1fb7d5a9e3ad0636fe5e26886a4",
+
    /usr/local/lib/libsqlite3.so.0: "b6289dcd4b8f45abf3e2f69c903e9b0f80bae1fb7d5a9e3ad0636fe5e26886a4",
+
    /usr/local/lib/libsqlite3.so.0.8.6: "1fc16fcbab41551bececda3e6ec315dc1c7b798d81013ca3a73d6e3ae68bd8c5",
+
    /usr/local/libdata/pkgconfig/sqlite3.pc: "740a7c23bc1d18ef3c10170099e9742e34ce0dce33866ae7105796e2c60ee1fc",
+
    /usr/local/man/man1/sqlite3.1.gz: "b6d58505d378faa5abe126400ebdcc25e72abdf7e65e4a39e48a91cc81a5ebb3",
+
    /usr/local/share/licenses/sqlite3-3.8.6/LICENSE: "8402e9d907c9f12647832648c5941d3be53e33f9832bf0bf1a30b8e88cfa7513",
+
    /usr/local/share/licenses/sqlite3-3.8.6/catalog.mk: "e38548a1526c48409021e478d16ad967081adc6b1acddf592c17f5c8a44c7ced",
+
    /usr/local/share/licenses/sqlite3-3.8.6/public: "b4321e78d0be51d4397b0647c9ab18cf0805fd438660aee7b5c052811f755f78"
+
}
+
directories: {
+
    /usr/local/share/licenses/sqlite3-3.8.6/: "n",
+
    /usr/local/share/licenses/: "y"
+
}
+
scripts: {
+
    post-install: "/sbin/ldconfig -m /usr/local/lib\ncd /usr/local",
+
    pre-deinstall: "cd /usr/local",
+
    post-deinstall: "/sbin/ldconfig -R\ncd /usr/local"
+
}
deleted tests/frontend/sqlite3.uclin
@@ -1,70 +0,0 @@
-
name: "sqlite3"
-
origin: "databases/sqlite3"
-
version: "3.8.6"
-
arch: "freebsd:11:x86:64"
-
maintainer: "pavelivolkov@gmail.com"
-
prefix: "/usr/local"
-
www: "https://www.sqlite.org/"
-
flatsize: 2946046
-
comment: "SQL database engine in a C library"
-
licenselogic: "single"
-
licenses: [
-
    "public"
-
]
-
desc: "SQLite is an SQL database engine in a C library. Programs that link the SQLite\nlibrary can have SQL database access without running a separate RDBMS process.\nThe distribution comes with a standalone command-line access program (sqlite)\nthat can be used to administer an SQLite database and which serves as an\nexample of how to use the SQLite library.\n\nWWW: https://www.sqlite.org/"
-
categories: [
-
    "databases"
-
]
-
shlibs_provided: [
-
    "libsqlite3.so.0"
-
]
-
options: {
-
    DIRECT_READ: "off",
-
    EXTENSION: "on",
-
    FTS4: "on",
-
    ICU: "off",
-
    MEMMAN: "off",
-
    METADATA: "on",
-
    RTREE: "on",
-
    RTREE_INT: "off",
-
    SECURE_DELETE: "on",
-
    SOUNDEX: "off",
-
    STAT3: "off",
-
    STAT4: "off",
-
    THREADS: "on",
-
    TS0: "off",
-
    TS1: "on",
-
    TS2: "off",
-
    TS3: "off",
-
    UNICODE61: "off",
-
    UNLOCK_NOTIFY: "on",
-
    UPD_DEL_LIMIT: "off",
-
    URI: "on",
-
    URI_AUTHORITY: "off"
-
}
-
annotations: {
-
    repo_type: "binary"
-
}
-
files: {
-
    /usr/local/bin/sqlite3: "06663b5ae4eb31eda5d682b0679e6049e28c166efaa43f08faa3bdf73306358e",
-
    /usr/local/include/sqlite3.h: "5af7e60f277ba3c30bef97de7e8fb8df839d94b6cdbca5467f2dd8d3adf2986a",
-
    /usr/local/include/sqlite3ext.h: "620d8b84b8d8b8bea394dc5b9e6a98b0367218273ad0a4412cbb0cd3ce9be686",
-
    /usr/local/lib/libsqlite3.a: "10cc5a3ae7eaf320ee7ac197fd153e39e9d2ffcbadee9cb8cf459127d477c2ad",
-
    /usr/local/lib/libsqlite3.so: "b6289dcd4b8f45abf3e2f69c903e9b0f80bae1fb7d5a9e3ad0636fe5e26886a4",
-
    /usr/local/lib/libsqlite3.so.0: "b6289dcd4b8f45abf3e2f69c903e9b0f80bae1fb7d5a9e3ad0636fe5e26886a4",
-
    /usr/local/lib/libsqlite3.so.0.8.6: "1fc16fcbab41551bececda3e6ec315dc1c7b798d81013ca3a73d6e3ae68bd8c5",
-
    /usr/local/libdata/pkgconfig/sqlite3.pc: "740a7c23bc1d18ef3c10170099e9742e34ce0dce33866ae7105796e2c60ee1fc",
-
    /usr/local/man/man1/sqlite3.1.gz: "b6d58505d378faa5abe126400ebdcc25e72abdf7e65e4a39e48a91cc81a5ebb3",
-
    /usr/local/share/licenses/sqlite3-3.8.6/LICENSE: "8402e9d907c9f12647832648c5941d3be53e33f9832bf0bf1a30b8e88cfa7513",
-
    /usr/local/share/licenses/sqlite3-3.8.6/catalog.mk: "e38548a1526c48409021e478d16ad967081adc6b1acddf592c17f5c8a44c7ced",
-
    /usr/local/share/licenses/sqlite3-3.8.6/public: "b4321e78d0be51d4397b0647c9ab18cf0805fd438660aee7b5c052811f755f78"
-
}
-
directories: {
-
    /usr/local/share/licenses/sqlite3-3.8.6/: "n",
-
    /usr/local/share/licenses/: "y"
-
}
-
scripts: {
-
    post-install: "/sbin/ldconfig -m /usr/local/lib\ncd /usr/local",
-
    pre-deinstall: "cd /usr/local",
-
    post-deinstall: "/sbin/ldconfig -R\ncd /usr/local"
-
}
added tests/frontend/test_environment.sh.in
@@ -0,0 +1,10 @@
+
export RESOURCEDIR=@abs_srcdir@
+
export PATH=$(atf_get_srcdir)/../../src:${PATH}
+
export LD_LIBRARY_PATH=$(atf_get_srcdir)/../../libpkg/.libs/
+
export INSTALL_AS_USER=yes
+
export PKG_DBDIR=.
+
export NO_TICK=yes
+
jailed=$(sysctl -n security.jail.jailed 2>/dev/null || :)
+
if [ "$jailed" = "1" ]; then
+
	export JAILED="[`hostname`] "
+
fi
deleted tests/frontend/test_environment.shin
@@ -1,9 +0,0 @@
-
export PATH=$(atf_get_srcdir)/../../src:${PATH}
-
export LD_LIBRARY_PATH=$(atf_get_srcdir)/../../libpkg/.libs/
-
export INSTALL_AS_USER=yes
-
export PKG_DBDIR=.
-
export NO_TICK=yes
-
jailed=$(sysctl -n security.jail.jailed 2>/dev/null || :)
-
if [ "$jailed" = "1" ]; then
-
	export JAILED="[`hostname`] "
-
fi
added tests/frontend/version.sh
@@ -0,0 +1,19 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case version
+
version_head() {
+
	atf_set "descr" "testing pkg version"
+
}
+

+
version_body() {
+
	atf_check -o inline:"<\n" -s exit:0 pkg version -t 1 2
+
	atf_check -o inline:">\n" -s exit:0 pkg version -t 2 1
+
	atf_check -o inline:"=\n" -s exit:0 pkg version -t 2 2
+
	atf_check -o inline:"<\n" -s exit:0 pkg version -t 2 1,1
+
}
+

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

+
	atf_add_test_case version
+
}
deleted tests/frontend/version.shin
@@ -1,19 +0,0 @@
-
#! /usr/bin/env atf-sh
-

-
atf_test_case version
-
version_head() {
-
	atf_set "descr" "testing pkg version"
-
}
-

-
version_body() {
-
	atf_check -o inline:"<\n" -s exit:0 pkg version -t 1 2
-
	atf_check -o inline:">\n" -s exit:0 pkg version -t 2 1
-
	atf_check -o inline:"=\n" -s exit:0 pkg version -t 2 2
-
	atf_check -o inline:"<\n" -s exit:0 pkg version -t 2 1,1
-
}
-

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

-
	atf_add_test_case version
-
}