Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Get one step closer to get make distcheck working with kyua
Baptiste Daroussin committed 11 years ago
commit 7b8dadafd0670e7d824a1a6cf0fab1844b3fa715
parent 1bc61a46a6bb592dfd6d97d3baf5efda299c791a
11 files changed +221 -200
modified Makefile.am
@@ -7,12 +7,11 @@ pkgconfig_DATA= libpkg/pkg.pc
$(pkgconfig_DATA): config.status

DISTCLEANFILES=	pkg_repos.h
-
EXTRA_DIST=	docs
+
EXTRA_DIST=	docs Kyuafile
dist-hook:
	rm -rf `find $(distdir)/external -type d -name .deps`

check-local:
-
	make -C $(top_srcdir)/tests/ check-local
	kyua --config=none test \
		--kyuafile='$(top_srcdir)/Kyuafile' \
		--build-root='$(top_builddir)'
modified configure.ac
@@ -220,7 +220,7 @@ AS_IF([test "x$with_ldns" = "xyes"], [
])

AC_CHECK_HEADER([atf-c.h], [
-
	 TESTS="\$(test_program)"
+
	 TESTS="\$(tests_programs)"
 ])

AC_CHECK_HEADER([sys/capability.h], [
@@ -327,4 +327,6 @@ AC_CONFIG_COMMANDS([pkg_repos.h], [[
	rm $NMODULES
]], [REPOS=$REPOS])

+
AC_CONFIG_COMMANDS([mkdir], [$MKDIR_P tests/frontend])
+

AC_OUTPUT
modified tests/Makefile.am
@@ -10,8 +10,10 @@ GENERIC_LDADD= $(top_builddir)/libpkg/libpkg_static.la \
		-larchive \
		-lutil \
		-lm \
+
		-L/usr/local/lib \
		-latf-c
-
PUBLIC_INCS=	-I$(top_srcdir)/libpkg -DTESTING
+
PUBLIC_INCS=	-I$(top_srcdir)/libpkg -DTESTING \
+
		-I/usr/local/include
PRIVATE_INCS=	$(PUBLIC_INCS) \
		-I$(top_srcdir)/external/sqlite \
		-I$(top_srcdir)/external/uthash \
@@ -32,11 +34,29 @@ plist_SOURCES= lib/plist.c
plist_CFLAGS=		$(PRIVATE_INCS)
plist_LDADD=		$(GENERIC_LDADD)

+
EXTRA_DIST=	frontend/png.ucl \
+
		Kyuafile \
+
		frontend/Kyuafile \
+
		frontend/annotate.shin \
+
		frontend/pkg.shin \
+
		frontend/search.shin \
+
		frontend/version.shin \
+
		frontend/test_environment
+

+
TESTS =
tests_programs=	pkg_printf pkg_validation plist
EXTRA_PROGRAMS=	$(tests_programs)
check_PROGRAMS=	@TESTS@
+
check_SCRIPTS=	frontend/pkg.sh \
+
		frontend/annotate.sh \
+
		frontend/search.sh \
+
		frontend/version.sh
+
CLEANFILES+=	${check_SCRIPTS}
+
SUFFIXES = .sh

-
check-local: $(tests_programs)
+
.shin.sh:
+
	@echo "    GEN   " $@;
+
	@install -m 755 $< $@

lib/pkg_printf.c:
	@echo "    CP    " $@;
deleted tests/frontend/annotate.sh
@@ -1,98 +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() {
-
        export INSTALL_AS_USER=yes
-
	export PKG_DBDIR=.
-

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

-
	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:"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
-
}
-

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

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

-
}
added tests/frontend/annotate.shin
@@ -0,0 +1,98 @@
+
#! /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() {
+
        export INSTALL_AS_USER=yes
+
	export PKG_DBDIR=.
+

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

+
	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:"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
+
}
+

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

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

+
}
deleted tests/frontend/pkg.sh
@@ -1,59 +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/ports";$' \
-
	-o match:'^ *HANDLE_RC_SCRIPTS = false;$' \
-
	-o match:'^ *ASSUME_ALWAYS_YES = false;$' \
-
	-o match:'^ *PLIST_KEYWORDS_DIR = "";$' \
-
	-o match:'^ *SYSLOG = true;$' \
-
	-o match:'^ *ABI = "[a-zA-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9]+";$' \
-
	-o match:'^ *DEVELOPER_MODE = false;$' \
-
	-o match:'^ *VULNXML_SITE = "http://www.vuxml.org/freebsd/vuln.xml.bz2";$' \
-
	-o match:'^ *FETCH_RETRY = 3;$' \
-
	-o match:'^ *PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";$' \
-
	-o match:'^ *PKG_ENABLE_PLUGINS = true;$' \
-
	-o match:'^ *DEBUG_SCRIPTS = false;$' \
-
	-o match:'^ *PLUGINS_CONF_DIR = "/usr/local/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 = "";$' \
-
	-o match:'^ *DISABLE_MTREE = false;$' \
-
	-e empty              \
-
	-s exit:0             \
-
	env -i PATH=${PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} pkg -C "" -R "" -vv
-
}
-

-

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

-
	atf_add_test_case pkg_no_database
-
	atf_add_test_case pkg_config_defaults
-
}
added tests/frontend/pkg.shin
@@ -0,0 +1,59 @@
+
#! /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/ports";$' \
+
	-o match:'^ *HANDLE_RC_SCRIPTS = false;$' \
+
	-o match:'^ *ASSUME_ALWAYS_YES = false;$' \
+
	-o match:'^ *PLIST_KEYWORDS_DIR = "";$' \
+
	-o match:'^ *SYSLOG = true;$' \
+
	-o match:'^ *ABI = "[a-zA-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9]+";$' \
+
	-o match:'^ *DEVELOPER_MODE = false;$' \
+
	-o match:'^ *VULNXML_SITE = "http://www.vuxml.org/freebsd/vuln.xml.bz2";$' \
+
	-o match:'^ *FETCH_RETRY = 3;$' \
+
	-o match:'^ *PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";$' \
+
	-o match:'^ *PKG_ENABLE_PLUGINS = true;$' \
+
	-o match:'^ *DEBUG_SCRIPTS = false;$' \
+
	-o match:'^ *PLUGINS_CONF_DIR = "/usr/local/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 = "";$' \
+
	-o match:'^ *DISABLE_MTREE = false;$' \
+
	-e empty              \
+
	-s exit:0             \
+
	env -i PATH=${PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} pkg -C "" -R "" -vv
+
}
+

+

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

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

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

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

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

-
	unset PKG_DBDIR
-

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

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

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

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

+
	unset PKG_DBDIR
+

+
	atf_add_test_case search
+
}
deleted tests/frontend/version.sh
@@ -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
-

-
	atf_add_test_case version
-
}
added tests/frontend/version.shin
@@ -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
+

+
	atf_add_test_case version
+
}