Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Employing ATF more correctly:
Matthew Seaman committed 13 years ago
commit bc0789cda1b4804278b8642ab17aab4b0d77a8be
parent bb00cde
10 files changed +211 -49
added tests/Atffile
@@ -0,0 +1,6 @@
+
Content-Type: application/X-atf-atffile; version="1"
+

+
prop: test-suite = pkgng
+

+
tp: frontend
+
#tp: lib
modified tests/Makefile
@@ -4,6 +4,4 @@ SUBDIR= lib \
.include <bsd.subdir.mk>

run:
-
.for dir in ${SUBDIR}
-
	cd ${.CURDIR}/${dir} && ${MAKE} run
-
.endfor
+
	atf-run | atf-report
added tests/frontend/Atffile
@@ -0,0 +1,8 @@
+
Content-Type: application/X-atf-atffile; version="1"
+

+
prop: test-suite = frontend
+

+
tp: pkg.sh
+
tp: version.sh
+
tp: search.sh
+
tp: annotate.sh
deleted tests/frontend/Makefile
@@ -1,7 +0,0 @@
-
TESTS=	version pkg search
-
all:
-
	@echo "nothing todo"
-
run:
-
.for test in ${TESTS}
-
	@env LD_LIBRARY_PATH=${.CURDIR}/../../libpkg PATH=${.CURDIR}/../../pkg:${PATH} atf-sh ${test}.sh ${test}
-
.endfor
added tests/frontend/annotate.sh
@@ -0,0 +1,106 @@
+
#! /usr/bin/env atf-sh
+

+
atf_test_case ann1
+
ann1_head() {
+
	atf_set "descr" "add annotation via command-line"
+
}
+

+
ann1_body() {
+
        atf_check \
+
	    -o match:"added annotation tagged: TEST1" \
+
	    -s exit:0 \
+
	    pkg annotate -Ay pkg TEST1 test1
+

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

+
atf_test_case ann2
+
ann2_head()
+
{
+
	atf_set "descr" "add annotation from stdin"
+
}
+
ann2_body()
+
{
+
	echo test2 > $HOME/annotate-TEST2.txt
+

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

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

+
}
+

+
atf_test_case ann3
+
ann3_head()
+
{
+
	atf_set "descr" "modify annotation via command-line"
+
}
+
ann3_body()
+
{
+
	atf_check \
+
	    -o match:"Modified annotation tagged: TEST1" \
+
	    -s exit:0 \
+
	    pkg annotate -My pkg TEST1 test1-modified
+

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

+
atf_test_case ann4
+
ann4_head()
+
{
+
	atf_set "descr" "delete one annotation from several"
+
}
+
ann4_body()
+
{
+
	atf_check \
+
	    -o match:"Deleted annotation tagged: TEST1" \
+
	    -s exit:0 \
+
	    pkg annotate -Dy pkg TEST1
+

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

+
atf_test_case ann5
+
ann5_head()
+
{
+
	atf_set "descr" "delete the second annotation"
+
}
+
ann5_body()
+
{
+
	atf_check \
+
	    -o match:"Deleted annotation tagged: TEST2" \
+
	    -s exit:0 \
+
	    pkg annotate -Dy pkg TEST2
+

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

+
atf_init_test_cases() {
+
        eval `cat $(atf_get_srcdir)/test_environment`
+

+
	# Tests are run in alphabetical order
+
	for tc in ann1 ann2 ann3 ann4 ann5; do
+
	    atf_add_test_case $tc
+
	done
+
}
deleted tests/frontend/pkg-vv.out
@@ -1,30 +0,0 @@
-
PACKAGESITE: 
-
PKG_DBDIR: /var/db/pkg
-
PKG_CACHEDIR: /var/cache/pkg
-
PORTSDIR: /usr/ports
-
PUBKEY: 
-
PKG_MULTIREPOS: no
-
HANDLE_RC_SCRIPTS: no
-
ASSUME_ALWAYS_YES: no
-
REPOS:
-
PLIST_KEYWORDS_DIR: 
-
SYSLOG: yes
-
SHLIBS: no
-
AUTODEPS: no
-
ABI: freebsd
-
DEVELOPER_MODE: no
-
PORTAUDIT_SITE: http://portaudit.FreeBSD.org/auditfile.tbz
-
MIRROR_TYPE: SRV
-
FETCH_RETRY: 3
-
PKG_PLUGINS_DIR: /usr/local/lib/pkg/
-
PKG_ENABLE_PLUGINS: yes
-
PLUGINS:
-
DEBUG_SCRIPTS: no
-
PLUGINS_CONF_DIR: /usr/local/etc/pkg/
-
PERMISSIVE: no
-
REPO_AUTOUPDATE: yes
-
HTTP_PROXY: 
-
FTP_PROXY: 
-
NAMESERVER: 
-
EVENT_PIPE: 
-
FETCH_TIMEOUT: 30
modified tests/frontend/pkg.sh
@@ -1,15 +1,86 @@
-
atf_test_case pkg
-
pkg_head() {
-
	atf_set "descr" "testing pkg"
+
#! /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
}

-
pkg_body() {
-
	atf_check -o empty -e inline:"pkg: package database non-existent\n" -s exit:69 -x PKG_DBDIR=/dev/null pkg -N
-
	eval `../../newvers.sh`
-
	atf_check -o match:"^${PKGVERSION} .*$" -e empty -s exit:0 pkg -v
-
	atf_check -o file:pkg-vv.out -e empty -s exit:0 -x 'ABI=freebsd pkg -C "" -vvv | grep -v "^version.*"'
+
atf_test_case pkg_version
+
pkg_version_head()
+
{
+
	atf_set "descr" "testing pkg -- latest compiled version"
}

+
pkg_version_body()
+
{
+
        NEWVERS_SH="$( atf_get_srcdir )/../../newvers.sh"
+
	eval $($NEWVERS_SH)
+
	
+
	[ ${PKGVERSION} ] || atf_fail 'eval $(newvers.sh) failed'
+

+
	atf_check -o match:"^${PKGVERSION} " -e empty -s exit:0 pkg -v
+
}
+

+

+
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:'^PACKAGESITE: $' \
+
	-o match:'^PKG_DBDIR: /var/db/pkg$' \
+
	-o match:'^PKG_CACHEDIR: /var/cache/pkg$' \
+
	-o match:'^PORTSDIR: /usr/ports$' \
+
	-o match:'^PUBKEY: $' \
+
	-o match:'^PKG_MULTIREPOS: no$' \
+
	-o match:'^HANDLE_RC_SCRIPTS: no$' \
+
	-o match:'^ASSUME_ALWAYS_YES: no$' \
+
	-o match:'^REPOS:$' \
+
	-o match:'^PLIST_KEYWORDS_DIR: $' \
+
	-o match:'^SYSLOG: yes$' \
+
	-o match:'^SHLIBS: no$' \
+
	-o match:'^AUTODEPS: no$' \
+
	-o match:'^ABI: [a-zA-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9]+:[a-zA-Z0-9]+$' \
+
	-o match:'^DEVELOPER_MODE: no$' \
+
	-o match:'^PORTAUDIT_SITE: http://portaudit.FreeBSD.org/auditfile.tbz$' \
+
	-o match:'^MIRROR_TYPE: SRV$' \
+
	-o match:'^FETCH_RETRY: 3$' \
+
	-o match:'^PKG_PLUGINS_DIR: /usr/local/lib/pkg/$' \
+
	-o match:'^PKG_ENABLE_PLUGINS: yes$' \
+
	-o match:'^PLUGINS:$' \
+
	-o match:'^DEBUG_SCRIPTS: no$' \
+
	-o match:'^PLUGINS_CONF_DIR: /usr/local/etc/pkg/$' \
+
	-o match:'^PERMISSIVE: no$' \
+
	-o match:'^REPO_AUTOUPDATE: yes$' \
+
	-o match:'^HTTP_PROXY: $' \
+
	-o match:'^FTP_PROXY: $' \
+
	-o match:'^NAMESERVER: $' \
+
	-o match:'^EVENT_PIPE: $' \
+
	-o match:'^FETCH_TIMEOUT: 30$' \
+
	-o match:'^UNSET_TIMESTAMP: no$' \
+
	-o match:'^SSH_RESTRICT_DIR: $' \
+
	-e empty              \
+
	-s exit:0             \
+
	pkg -C "" -vv 
+
}
+

+

atf_init_test_cases() {
-
	atf_add_test_case pkg
+
        eval `cat $(atf_get_srcdir)/test_environment`
+

+
	atf_add_test_case pkg_no_database
+
	atf_add_test_case pkg_version
+
	atf_add_test_case pkg_config_defaults
}
modified tests/frontend/search.sh
@@ -1,3 +1,5 @@
+
#! /usr/bin/env atf-sh
+

atf_test_case search
search_head() {
	atf_set "descr" "testing pkg search"
@@ -8,5 +10,7 @@ search_body() {
}

atf_init_test_cases() {
+
        eval `cat $(atf_get_srcdir)/test_environment`
+

	atf_add_test_case search
}
added tests/frontend/test_environment
@@ -0,0 +1,2 @@
+
LD_LIBRARY_PATH=$(atf_get_srcdir)/../../libpkg
+
PATH=$(atf_get_srcdir)/../../pkg:${PATH}
modified tests/frontend/version.sh
@@ -1,3 +1,5 @@
+
#! /usr/bin/env atf-sh
+

atf_test_case version
version_head() {
	atf_set "descr" "testing pkg version"
@@ -11,5 +13,7 @@ version_body() {
}

atf_init_test_cases() {
+
        eval `cat $(atf_get_srcdir)/test_environment`
+

	atf_add_test_case version
}