1#	$OpenBSD: Makefile,v 1.11 2023/09/24 07:01:40 tb Exp $
2
3OPENSSL_RUBY_TESTS =	/usr/local/share/openssl-ruby-tests
4RUBY_BINREV =		32
5RUBY =			ruby${RUBY_BINREV}
6
7# We work in a subdirectory of obj/ since extconf.rb generates a Makefile whose
8# name can't be customized in $PWD. An obj/Makefile in turn confuses either make
9# or bsd.*.mk. This hurts when things are in an unexpected state after a signal.
10BUILDDIR =		build
11
12.if !exists(${OPENSSL_RUBY_TESTS})
13regress:
14	@echo package openssl-ruby-tests is required for this regress
15	@echo SKIPPED
16.else
17
18REGRESS_TARGETS +=		openssl-ruby-test
19
20openssl-ruby-test:	retest
21
22_BUILDDIR_COOKIE =	.builddir
23_BUILD_COOKIE =		.build
24_TEST_COOKIE =		.test
25
26${_BUILDDIR_COOKIE}:
27	mkdir -p ${BUILDDIR}
28	touch $@
29
30${_BUILD_COOKIE}: ${_BUILDDIR_COOKIE}
31	cd ${BUILDDIR} && \
32	    ${RUBY} ${OPENSSL_RUBY_TESTS}/ext/openssl/extconf.rb && \
33	    make;
34	touch $@
35
36OPENSSL_RUBY_TESTSRC =	${OPENSSL_RUBY_TESTS}/test/openssl/test_*.rb
37${_TEST_COOKIE}: ${_BUILD_COOKIE} ${_BUILDDIR_COOKIE}
38	cd ${BUILDDIR} && \
39	    env SKIP_EXPECTED_FAILURES=true ${RUBY} -I. \
40		-I${OPENSSL_RUBY_TESTS}/test/openssl \
41		-I${OPENSSL_RUBY_TESTS}/lib \
42		-e 'Dir["${OPENSSL_RUBY_TESTSRC}"].each{|f| require f}' \
43		-- --no-use-color --no-show-detail-immediately
44	touch $@
45
46build: ${_BUILD_COOKIE}
47test: ${_TEST_COOKIE}
48
49_MAKE =			cd ${.CURDIR} && exec ${.MAKE}
50
51rebuild:
52	rm -f ${_BUILD_COOKIE}
53	${_MAKE} build
54
55retest:
56	rm -f ${_TEST_COOKIE}
57	${_MAKE} test
58
59.for _t in test_client_ca
60REGRESS_TARGETS += ${_t}
61REGRESS_EXPECTED_FAILURES += ${_t}
62${_t}: ${_BUILD_COOKIE}
63	cd ${BUILDDIR} && \
64	    ${RUBY} -I. -I${OPENSSL_RUBY_TESTS}/test/openssl \
65		-I${OPENSSL_RUBY_TESTS}/lib \
66		${OPENSSL_RUBY_TESTS}/test/openssl/test_ssl.rb \
67		-n ${_t}
68.endfor
69
70CLEANFILES +=		${_BUILD_COOKIE} ${_TEST_COOKIE} ${_BUILDDIR_COOKIE}
71
72. if make(clean) || make(cleandir)
73.  if exists(${BUILDDIR})
74.BEGIN:
75	rm -r ${BUILDDIR}
76.  endif
77. endif
78
79.PHONY: build rebuild test retest
80
81.endif
82
83.include <bsd.regress.mk>
84