Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Get one step closer to get make distcheck working with kyua
Baptiste Daroussin committed 11 years ago
commit 7b8dadafd0670e7d824a1a6cf0fab1844b3fa715
parent 1bc61a4
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
+
}