Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add initial test for triggers
Baptiste Daroussin committed 5 years ago
commit fa4638e2db294ac8a95d9ededec2b5a7c80420c2
parent 858b7ee
4 files changed +68 -44
modified src/event.c
@@ -890,6 +890,13 @@ event_callback(void *data, struct pkg_event *ev)
		fprintf(conflicts->fp, " on %s\n",
		    ev->e_conflicts.path);
		break;
+
	case PKG_EVENT_TRIGGER:
+
		if (!quiet) {
+
			if (ev->e_trigger.cleanup)
+
				printf("==> Cleaning up trigger: %s\n", ev->e_trigger.name);
+
			else
+
				printf("==> Running trigger: %s\n", ev->e_trigger.name);
+
		}
	default:
		break;
	}
modified tests/Makefile.autosetup
@@ -54,7 +54,8 @@ TESTS_SH= \
	frontend/clean.sh \
	frontend/backup_lib.sh \
	frontend/abi.sh \
-
	frontend/http.sh
+
	frontend/http.sh \
+
	frontend/triggers.sh

merge_OBJS=	lib/merge.o
plist_OBJS=	lib/plist.o
deleted tests/frontend/Kyuafile.in
@@ -1,43 +0,0 @@
-
syntax(2)
-

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

-
atf_test_program{name='add'}
-
atf_test_program{name='alias'}
-
atf_test_program{name='annotate'}
-
atf_test_program{name='autoremove'}
-
atf_test_program{name='autoupgrade'}
-
atf_test_program{name='config'}
-
atf_test_program{name='configmerge'}
-
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='extract'}
-
atf_test_program{name='install'}
-
atf_test_program{name='jpeg'}
-
atf_test_program{name='lock'}
-
atf_test_program{name='messages'}
-
atf_test_program{name='multipleprovider'}
-
atf_test_program{name='packagesplit'}
-
atf_test_program{name='packagemerge'}
-
atf_test_program{name='php-pr'}
-
atf_test_program{name='pkg'}
-
atf_test_program{name='pubkey'}
-
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='update'}
-
atf_test_program{name='updating'}
-
atf_test_program{name='version'}
-
atf_test_program{name='vital'}
-
atf_test_program{name='issue1374'}
-
atf_test_program{name='issue1425'}
-
atf_test_program{name='issue1440'}
-
atf_test_program{name='issue1445'}
-
atf_test_program{name='fingerprint'}
added tests/frontend/triggers.sh
@@ -0,0 +1,59 @@
+
#! /usr/bin/env atf-sh
+

+
. $(atf_get_srcdir)/test_environment.sh
+

+
tests_init \
+
	cleanup_shell \
+
	cleanup_lua
+

+
cleanup_shell_body() {
+
	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/"
+
	mkdir trigger_dir/
+
	cat << EOF >> trigger_dir/trigger.ucl
+
path: [ "/" ]
+
cleanup: {
+
	type: shell
+
	script: <<EOS
+
echo "Cleaning up"
+
EOS
+
}
+
trigger: {
+
	type: shell
+
	script: <<EOS
+
exit 0
+
EOS
+
}
+
EOF
+
	echo trigger_dir/trigger.ucl > plist
+
	atf_check pkg create -M test.ucl -p plist -r .
+
	mkdir target
+
	atf_check pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.txz
+
	atf_check pkg -o REPOS_DIR=/dev/null -o PKG_TRIGGERS_DIR="/trigger_dir" -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.txz
+
	atf_check -o inline:"Cleaning up\n" pkg -o REPOS_DIR=/dev/null -o PKG_TRIGGERS_DIR="/trigger_dir" -r ${TMPDIR}/target delete -qy test
+
}
+

+
cleanup_lua_body() {
+
	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/"
+
	mkdir trigger_dir/
+
	cat << EOF >> trigger_dir/trigger.ucl
+
path: [ "/" ]
+
cleanup: {
+
	type: lua
+
	script: <<EOS
+
print "Cleaning up"
+
EOS
+
}
+
trigger: {
+
	type: lua
+
	script: <<EOS
+
	return 0
+
EOS
+
}
+
EOF
+
	echo trigger_dir/trigger.ucl > plist
+
	atf_check pkg create -M test.ucl -p plist -r .
+
	mkdir target
+
	atf_check pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.txz
+
	atf_check pkg -o REPOS_DIR=/dev/null -o PKG_TRIGGERS_DIR="/trigger_dir" -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.txz
+
	atf_check -o inline:"Cleaning up\n" pkg -o REPOS_DIR=/dev/null -o PKG_TRIGGERS_DIR="/trigger_dir" -r ${TMPDIR}/target delete -qy test
+
}