1
0
mirror of https://github.com/opencryptoki/opencryptoki.git synced 2026-10-24 05:39:17 +03:00
Files
opencryptoki/Makefile.am
Ingo Franzki 0e0a8c807f CI: 'make ci-cleanup' should also remove the testcase log files
Running 'make ci-installcheck' (or 'make installcheck') produces several
log files that contain the detail testcase output. Let 'make ci-cleanup'
also remove these log files.

Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
2026-10-13 09:33:43 +02:00

450 lines
20 KiB
Makefile

ACLOCAL_AMFLAGS = -I m4
CLEANFILES =
DISTCLEANFILES = *~ opencryptoki.map.sym opencryptoki_tok.map.sym
MAINTAINERCLEANFILES = test-driver \
Makefile.in aclocal.m4 compile configure config.guess \
config.sub depcomp install-sh ltmain.sh m4/* missing \
depcomp ylwrap
if AIX
EXTRA_DIST = bootstrap.sh opencryptoki.map opencryptoki_tok.map \
opencryptoki.map.sym opencryptoki_tok.map.sym FAQ LICENSE
SHLIBEXT=a
LNFLAG=fs
KILLALL = ./kill-all
else
EXTRA_DIST = bootstrap.sh opencryptoki.map opencryptoki_tok.map FAQ LICENSE
SHLIBEXT=so
LNFLAG=nfs
KILLALL = killall
endif
AM_YFLAGS = -d -v
BUILT_SOURCES =
man1_MANS =
man5_MANS =
man7_MANS =
man8_MANS =
sbin_PROGRAMS =
nobase_lib_LTLIBRARIES =
noinst_HEADERS =
noinst_LTLIBRARIES =
noinst_PROGRAMS =
noinst_SCRIPTS =
if ENABLE_LIBRARY
include misc/misc.mk
else
if ENABLE_DAEMON
include misc/misc.mk
endif
endif
if ENABLE_TESTCASES
include testcases/testcases.mk
endif
include man/man.mk
include usr/usr.mk
include tools/tools.mk
include doc/doc.mk
install-data-hook:
if AIX
lsgroup $(pkcs_group) > /dev/null || $(GROUPADD) -a pkcs11
lsuser $(pkcsslotd_user) > /dev/null || $(USERADD) -g $(pkcs_group) -d $(DESTDIR)$(RUN_PATH)/opencryptoki -c "Opencryptoki pkcsslotd user" $(pkcsslotd_user)
else
getent group $(pkcs_group) > /dev/null || $(GROUPADD) -r $(pkcs_group)
getent passwd $(pkcsslotd_user) >/dev/null || $(USERADD) -r -g $(pkcs_group) -d $(RUN_PATH)/opencryptoki -s /sbin/nologin -c "Opencryptoki pkcsslotd user" $(pkcsslotd_user)
endif
$(MKDIR_P) $(DESTDIR)$(RUN_PATH)/opencryptoki/
$(CHOWN) $(pkcsslotd_user):$(pkcs_group) $(DESTDIR)$(RUN_PATH)/opencryptoki/
$(CHGRP) $(pkcs_group) $(DESTDIR)$(RUN_PATH)/opencryptoki/
$(CHMOD) 0710 $(DESTDIR)$(RUN_PATH)/opencryptoki/
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki
if ENABLE_LIBRARY
$(MKDIR_P) $(DESTDIR)$(libdir)/opencryptoki/stdll
$(MKDIR_P) $(DESTDIR)$(libdir)/pkcs11
cd $(DESTDIR)$(libdir)/opencryptoki && \
ln -fs libopencryptoki.$(SHLIBEXT) PKCS11_API.$(SHLIBEXT)
cd $(DESTDIR)$(libdir)/opencryptoki && \
ln -$(LNFLAG) $(sbindir) methods
cd $(DESTDIR)$(libdir)/pkcs11 && \
ln -$(LNFLAG) $(sbindir) methods
cd $(DESTDIR)$(libdir)/pkcs11 && \
ln -fs ../opencryptoki/libopencryptoki.$(SHLIBEXT) PKCS11_API.$(SHLIBEXT)
cd $(DESTDIR)$(libdir)/pkcs11 && \
ln -fs ../opencryptoki/libopencryptoki.$(SHLIBEXT) libopencryptoki.$(SHLIBEXT)
cd $(DESTDIR)$(libdir)/pkcs11 && \
ln -$(LNFLAG) ../opencryptoki/stdll/ stdll
endif
if ENABLE_PKCSHSM_MK_CHANGE
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/HSM_MK_CHANGE
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/HSM_MK_CHANGE
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/HSM_MK_CHANGE
endif
if ENABLE_CCATOK
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
ln -fs libpkcs11_cca.$(SHLIBEXT) PKCS11_CCA.$(SHLIBEXT)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/ccatok/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/ccatok/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/ccatok
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/ccatok/TOK_OBJ
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/ccatok
$(MKDIR_P) $(DESTDIR)$(lockdir)/ccatok
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir)/ccatok
$(CHMOD) 0770 $(DESTDIR)$(lockdir)/ccatok
test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/ccatok.conf || $(INSTALL) -m 644 $(srcdir)/usr/lib/cca_stdll/ccatok.conf $(DESTDIR)$(sysconfdir)/opencryptoki/ccatok.conf || true
endif
if ENABLE_EP11TOK
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
ln -fs libpkcs11_ep11.$(SHLIBEXT) PKCS11_EP11.$(SHLIBEXT)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/ep11tok/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/ep11tok/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/ep11tok
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/ep11tok/TOK_OBJ
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/ep11tok
$(MKDIR_P) $(DESTDIR)$(lockdir)/ep11tok
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir)/ep11tok
$(CHMOD) 0770 $(DESTDIR)$(lockdir)/ep11tok
test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/ep11tok.conf || $(INSTALL) -m 644 $(srcdir)/usr/lib/ep11_stdll/ep11tok.conf $(DESTDIR)$(sysconfdir)/opencryptoki/ep11tok.conf || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/ep11cpfilter.conf || $(INSTALL) -m 644 $(srcdir)/usr/lib/ep11_stdll/ep11cpfilter.conf $(DESTDIR)$(sysconfdir)/opencryptoki/ep11cpfilter.conf || true
endif
if ENABLE_P11SAK
test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || $(INSTALL) -g $(pkcs_group) -m 0640 $(srcdir)/usr/sbin/p11sak/p11sak_defined_attrs.conf $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || true
endif
if ENABLE_P11KMIP
test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11kmip.conf || $(INSTALL) -g $(pkcs_group) -m 0640 $(srcdir)/usr/sbin/p11kmip/p11kmip.conf $(DESTDIR)$(sysconfdir)/opencryptoki/p11kmip.conf || true
endif
if ENABLE_ICATOK
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
ln -fs libpkcs11_ica.$(SHLIBEXT) PKCS11_ICA.$(SHLIBEXT)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/lite/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/lite/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/lite
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/lite/TOK_OBJ
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/lite
$(MKDIR_P) $(DESTDIR)$(lockdir)/lite
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir)/lite
$(CHMOD) 0770 $(DESTDIR)$(lockdir)/lite
endif
if ENABLE_SWTOK
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
ln -fs libpkcs11_sw.$(SHLIBEXT) PKCS11_SW.$(SHLIBEXT)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/swtok/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/swtok/TOK_OBJ
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/swtok
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/swtok/TOK_OBJ
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/swtok
$(MKDIR_P) $(DESTDIR)$(lockdir)/swtok
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir)/swtok
$(CHMOD) 0770 $(DESTDIR)$(lockdir)/swtok
endif
if ENABLE_TPMTOK
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/tpm
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
ln -fs libpkcs11_tpm.$(SHLIBEXT) PKCS11_TPM.$(SHLIBEXT)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/tpm
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/tpm
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/tpm
$(MKDIR_P) $(DESTDIR)$(lockdir)/tpm
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir)/tpm
$(CHMOD) 0770 $(DESTDIR)$(lockdir)/tpm
endif
if ENABLE_ICSFTOK
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/icsf
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
ln -fs libpkcs11_icsf.$(SHLIBEXT) PKCS11_ICSF.$(SHLIBEXT)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki/icsf
$(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki/icsf
$(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki/icsf
$(MKDIR_P) $(DESTDIR)$(lockdir)/icsf
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir)/icsf
$(CHMOD) 0770 $(DESTDIR)$(lockdir)/icsf
endif
if ENABLE_DAEMON
test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || $(INSTALL) -m 644 $(srcdir)/usr/sbin/pkcsslotd/opencryptoki.conf $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || true
test -f $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || $(INSTALL) -m 640 -o root -g $(pkcs_group) -T $(srcdir)/doc/strength-example.conf $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || true
endif
if !AIX
$(MKDIR_P) $(DESTDIR)/etc/ld.so.conf.d
echo "$(libdir)/opencryptoki" >\
$(DESTDIR)/etc/ld.so.conf.d/opencryptoki-$(target_cpu).conf
echo "$(libdir)/opencryptoki/stdll" >>\
$(DESTDIR)/etc/ld.so.conf.d/opencryptoki-$(target_cpu).conf
@echo "--------------------------------------------------------------"
@echo "Remember you must run ldconfig before using the above settings"
@echo "--------------------------------------------------------------"
endif
$(MKDIR_P) $(DESTDIR)$(lockdir) $(DESTDIR)$(logdir)
$(CHGRP) $(pkcs_group) $(DESTDIR)$(lockdir) $(DESTDIR)$(logdir)
$(CHMOD) 0770 $(DESTDIR)$(lockdir) $(DESTDIR)$(logdir)
uninstall-hook:
if ENABLE_LIBRARY
if test -d $(DESTDIR)$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)$(libdir)/opencryptoki && \
rm -f PKCS11_API.$(SHLIBEXT) && \
rm -f methods; fi
if test -d $(DESTDIR)$(libdir)/pkcs11; then \
cd $(DESTDIR)$(libdir)/pkcs11 && \
rm -f methods && \
rm -f PKCS11_API.$(SHLIBEXT) && \
rm -f libopencryptoki.$(SHLIBEXT) && \
rm -f stdll; fi
endif
if ENABLE_CCATOK
if test -d $(DESTDIR)/$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)/$(libdir)/opencryptoki/stdll && \
rm -f PKCS11_CCA.$(SHLIBEXT); fi
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/ccatok.conf
endif
if ENABLE_EP11TOK
if test -d $(DESTDIR)$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
rm -f PKCS11_EP11.$(SHLIBEXT); fi
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/ep11tok.conf
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/ep11cpfilter.conf
endif
if ENABLE_ICATOK
if test -d $(DESTDIR)$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
rm -f PKCS11_ICA.$(SHLIBEXT); fi
endif
if ENABLE_SWTOK
if test -d $(DESTDIR)$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
rm -f PKCS11_SW.$(SHLIBEXT); fi
endif
if ENABLE_TPMTOK
if test -d $(DESTDIR)$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
rm -rf PKCS11_TPM.$(SHLIBEXT); fi
endif
if !AIX
rm -f $(DESTDIR)/etc/ld.so.conf.d/opencryptoki-$(target_cpu).conf
endif
if ENABLE_ICSFTOK
if test -d $(DESTDIR)$(libdir)/opencryptoki/stdll; then \
cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \
rm -rf PKCS11_ICSF.$(SHLIBEXT); fi
endif
if ENABLE_DAEMON
if ENABLE_SYSTEMD
if test -e $(DESTDIR)/usr/lib/tmpfiles.d/opencryptoki.conf; then \
rm -f $(DESTDIR)/usr/lib/tmpfiles.d/opencryptoki.conf; fi
endif
endif
if ENABLE_P11SAK
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || true
endif
if ENABLE_P11KMIP
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11kmip.conf || true
endif
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || true
rm -f $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || true
if ENABLE_TESTCASES
PKCS11_SO_PIN ?= 76543210
PKCS11_USER_PIN ?= 01234567
PKCS11_VHSM_PIN ?= 1234567890
if AIX
PKCSLIB = '@libdir@/opencryptoki/libopencryptoki.a(libopencryptoki.so.0)'
else
PKCSLIB ?= @libdir@/opencryptoki/libopencryptoki.so
endif
# ci-prepare: set up tokens and configuration for ci-installcheck.
#
# When OCK_CI_REUSE_TOKENS is set to a non-empty value, the existing
# opencryptoki.conf is left untouched and only uninitialised slots are
# initialised. This lets callers reuse a previously configured token
# setup instead of destroying it. By default (OCK_CI_REUSE_TOKENS
# unset) the original behaviour is preserved: ciconfig.sh regenerates
# the full slot configuration from scratch.
ci-prepare:
$(KILLALL) -HUP pkcsslotd || true
if [ -z "$${OCK_CI_REUSE_TOKENS}" ]; then \
${srcdir}/testcases/ciconfig.sh "$(sysconfdir)/opencryptoki" "$(sysconfdir)/opencryptoki" "$(sysconfdir)/opencryptoki" "${srcdir}/testcases/test_combined_extract.slots" "$(CI_ICSF_MOCK_PID_FILE)" "${srcdir}/tools/icsf_mock_server/server.py" "$(CI_ICSF_MOCK_PORT)" "$(CI_ICSF_MOCK_TOKEN)" "$(CI_ICSF_SLOT)" "$(CI_ICSF_MOCK_LOG)"; \
else \
echo "OCK_CI_REUSE_TOKENS set - skipping ciconfig.sh, reusing existing token configuration"; \
fi
@sbindir@/pkcsslotd
@sbindir@/pkcsstats --reset-all
for slot in `awk '/^slot (.*)/ { print $$2; }' $(sysconfdir)/opencryptoki/opencryptoki.conf`; do \
TOKINFO=$$(@sbindir@/pkcsconf -c $$slot -t 2>/dev/null); \
echo "$$TOKINFO" | grep "Flags:" | grep -q TOKEN_INITIALIZED || \
{ PKCS11_USER_PIN=$(PKCS11_USER_PIN) PKCS11_SO_PIN=$(PKCS11_SO_PIN) PKCSLIB=$(PKCSLIB) ${srcdir}/testcases/init_token.sh $$slot || exit; continue; }; \
echo "$$TOKINFO" | grep "Flags:" | grep -q USER_PIN_INITIALIZED || \
{ PKCS11_USER_PIN=$(PKCS11_USER_PIN) PKCS11_SO_PIN=$(PKCS11_SO_PIN) PKCSLIB=$(PKCSLIB) ${srcdir}/testcases/init_token.sh $$slot || exit; }; \
done
# if [ -z "$${OCK_CI_REUSE_TOKENS}" ]; then \
# cd ${srcdir}/testcases && PKCS11_USER_PIN=$(PKCS11_USER_PIN) PKCS11_VHSM_PIN=$(PKCS11_VHSM_PIN) PKCSLIB=$(PKCSLIB) ./init_vhsm.exp 42; \
# echo "VHSM_MODE" >> "$(sysconfdir)/opencryptoki/ep11tok42.conf"; \
# fi
@sbindir@/pkcsep11_session status || true
installcheck-local: all check
$(KILLALL) -HUP pkcsslotd || true
@sbindir@/pkcsslotd
if test ! -z ${PKCS11_TEST_USER}; then \
chmod 777 ${srcdir}/testcases && \
cd ${srcdir}/testcases && \
su -s /bin/bash -c "PKCS11_SO_PIN=$(PKCS11_SO_PIN) PKCS11_USER_PIN=$(PKCS11_USER_PIN) PKCSLIB=$(PKCSLIB) MAX_JOBS=$(TEST_MAX_JOBS) /bin/bash ./ock_tests.sh || true" ${PKCS11_TEST_USER}; \
else \
cd ${srcdir}/testcases && \
PKCS11_SO_PIN=$(PKCS11_SO_PIN) PKCS11_USER_PIN=$(PKCS11_USER_PIN) PKCSLIB=$(PKCSLIB) MAX_JOBS=$(TEST_MAX_JOBS) ./ock_tests.sh || true; \
fi
$(KILLALL) -HUP pkcsslotd
# Slot number and datastore used by the soft-token-based test scripts.
# When OCK_CI_REUSE_TOKENS is set, callers may override these via
# OCK_CI_SWTOK_SLOT (default: 30)
# OCK_CI_SWTOK_DATASTORE (default: $(localstatedir)/lib/opencryptoki/sw0)
CI_SWTOK_SLOT = $${OCK_CI_SWTOK_SLOT:-30}
CI_SWTOK_DATASTORE = $${OCK_CI_SWTOK_DATASTORE:-$(localstatedir)/lib/opencryptoki/sw0}
# ICSF mock server settings used by ci-prepare / ci-installcheck.
# CI_ICSF_MOCK_PID_FILE path where the mock server PID is recorded (used to
# stop it after tests).
# CI_ICSF_MOCK_LOG log file for the mock server; placed in the testcases
# directory as log-*.txt so the post-process script picks
# it up alongside the other CI log files.
# CI_ICSF_MOCK_PORT LDAP listen port for the mock server (default: 1389).
# CI_ICSF_MOCK_TOKEN name of the pre-created ICSF token (default: icsf0).
# CI_ICSF_SLOT slot number assigned to the ICSF token (default: 50).
# ICSF_MOCK_RACF_PASSWORD env var: RACF/bind password passed to pkcsicsf -a
# (default: testpassword). Set in the environment to
# override when testing against a real ICSF server.
CI_ICSF_MOCK_PID_FILE = ${builddir}/.icsf_mock_server.pid
CI_ICSF_MOCK_LOG = ${srcdir}/testcases/log-icsf-mock-server.txt
CI_ICSF_MOCK_PORT = 1389
CI_ICSF_MOCK_TOKEN = icsf0
CI_ICSF_SLOT = 50
ci-installcheck: ci-prepare installcheck
$(KILLALL) -HUP pkcsslotd || true
@sbindir@/pkcsslotd
@sbindir@/pkcshsm_mk_change list || true
cd ${srcdir}/testcases \
&& export PKCSLIB=$(PKCSLIB) \
&& export PKCS11_USER_PIN=$(PKCS11_USER_PIN) \
&& export PKCS11_SO_PIN=$(PKCS11_SO_PIN) \
&& SBINDIR=@sbindir@ SLOT=$(CI_SWTOK_SLOT) ./misc_tests/p11sak_test.sh | tee log-p11sak.txt \
&& SBINDIR=@sbindir@ ./misc_tests/pkcsconf_test.sh | tee log-pkcsconf.txt \
&& SBINDIR=@sbindir@ MAX_JOBS=$(TEST_MAX_JOBS) ./misc_tests/tok2tok_test.sh | tee log-tok2tok.txt
if [[ -n "${KMIP_IP}" ]] && [[ -n "${KMIP_REST_USER}" ]] && [[ -n "${KMIP_REST_PASSWORD}" ]]; then \
cd ${srcdir}/testcases \
&& export PKCSLIB=$(PKCSLIB) \
&& export PKCS11_USER_PIN=$(PKCS11_USER_PIN) \
&& export PKCS11_SO_PIN=$(PKCS11_SO_PIN) \
&& SBINDIR=@sbindir@ \
PKCS11_SLOT_ID=$(CI_SWTOK_SLOT) \
./misc_tests/p11kmip_test.sh | tee log-p11kmip.txt;\
fi
cd ${srcdir}/testcases \
&& export PKCSLIB=$(PKCSLIB) \
&& export PKCS11_USER_PIN=$(PKCS11_USER_PIN) \
&& export PKCS11_SO_PIN=$(PKCS11_SO_PIN) \
&& SBINDIR=@sbindir@ \
SLOT=$(CI_SWTOK_SLOT) \
OCK_CONFDIR=$(sysconfdir)/opencryptoki \
OCK_DATASTORE=$(CI_SWTOK_DATASTORE) \
./misc_tests/pkcstok_migrate_test.sh | tee log-pkcstok-migrate.txt
@sbindir@/pkcsstats --all
$(KILLALL) -HUP pkcsslotd
if [ -z "$${OCK_CI_REUSE_TOKENS}" ]; then \
if [ -f "$(CI_ICSF_MOCK_PID_FILE)" ]; then \
ICSF_PID=$$(cat "$(CI_ICSF_MOCK_PID_FILE)"); \
if kill -0 "$${ICSF_PID}" 2>/dev/null; then \
echo "Stopping ICSF mock server (pid=$${ICSF_PID})..."; \
kill "$${ICSF_PID}" && rm -f "$(CI_ICSF_MOCK_PID_FILE)"; \
else \
echo "WARNING: ICSF mock server PID $${ICSF_PID} is stale; nothing to stop." >&2; \
rm -f "$(CI_ICSF_MOCK_PID_FILE)"; \
fi; \
else \
echo "WARNING: ICSF mock server PID file '$(CI_ICSF_MOCK_PID_FILE)' not found; nothing to stop." >&2; \
fi; \
fi
rm ${srcdir}/testcases/test_combined_extract.slots -f
@echo "done"
# ci-cleanup also removes the testcases/log-*.txt files, so collect them (or
# run ci-check-results) before running this target.
ci-cleanup:
$(KILLALL) -HUP pkcsslotd || true
# @sbindir@/pkcsslotd
# cd ${srcdir}/testcases && PKCS11_USER_PIN=$(PKCS11_USER_PIN) PKCSLIB=$(PKCSLIB) ./cleanup_vhsm.exp 42
# $(KILLALL) -HUP pkcsslotd
@sbindir@/pkcsep11_session status || true
${srcdir}/testcases/cicleanup.sh "@sbindir@" "$(CI_ICSF_MOCK_TOKEN)" "$(CI_ICSF_MOCK_PID_FILE)" "$(sysconfdir)/opencryptoki" "${srcdir}/testcases"
rm ${srcdir}/testcases/test_combined_extract.slots -f
ci-uninstall: uninstall
rm -f $(sysconfdir)/opencryptoki/ep11tok*.conf
rm -rf $(localstatedir)/lib/opencryptoki/*
rm -rf $(lockdir)/*
rm -rf $(logdir)/*
# ci-check-results: scan log files left by a previous ci-installcheck run and
# report any failures without re-running the tests.
#
# Sources examined:
# log-slot_N.txt - per-slot crypto/pkcs11 output from ock_tests.sh
# log-p11sak.txt, log-pkcsconf.txt, log-tok2tok.txt,
# log-pkcstok-migrate.txt, log-p11kmip.txt - misc_tests harnesses
# Keep this list in sync with the 'tee log-*.txt' invocations in
# ci-installcheck.
#
# Note: log files are not removed before a test run, so logs from an earlier
# run (e.g. misc_tests logs when only 'make installcheck' was run, or
# log-p11kmip.txt when KMIP_* is not set) are examined as well. Run
# 'make ci-cleanup' between runs to avoid stale results.
#
# Exit code: 0 = no failures found, 1 = at least one failure detected.
ci-check-results:
@LOGDIR="${srcdir}/testcases"; \
FAILED=0; \
LOGS=$$(ls "$$LOGDIR"/log-slot_*.txt "$$LOGDIR"/log-p11sak.txt \
"$$LOGDIR"/log-pkcsconf.txt "$$LOGDIR"/log-tok2tok.txt \
"$$LOGDIR"/log-pkcstok-migrate.txt \
"$$LOGDIR"/log-p11kmip.txt 2>/dev/null); \
if [ -z "$$LOGS" ]; then \
echo "ci-check-results: no log files found in $$LOGDIR" \
"(has ci-installcheck been run?)"; \
exit 1; \
fi; \
for log in $$LOGS; do \
MATCHES=$$(grep -E \
-e "^\* TESTCASE .* (FAIL|ERROR) " \
-e "^ERROR: Testcase .* failed to execute" \
"$$log" 2>/dev/null); \
if [ -n "$$MATCHES" ]; then \
echo "--- $$log ---"; \
echo "$$MATCHES"; \
FAILED=1; \
fi; \
done; \
if [ "$$FAILED" -eq 0 ]; then \
echo "ci-check-results: no failures found in $$(echo $$LOGS | wc -w) log file(s)."; \
else \
echo "ci-check-results: FAILED - see matches above."; \
exit 1; \
fi
.PHONY: ci-prepare ci-installcheck ci-uninstall ci-check-results
endif