1mydir=tests$(S)asn.1
2BUILDTOP=$(REL)..$(S)..
3LDAP=@LDAP@
4
5SRCS= $(srcdir)/krb5_encode_test.c $(srcdir)/krb5_decode_test.c \
6	$(srcdir)/krb5_decode_leak.c $(srcdir)/ktest.c \
7	$(srcdir)/ktest_equal.c $(srcdir)/utility.c \
8	$(srcdir)/trval.c $(srcdir)/t_trval.c
9
10ASN1SRCS= $(srcdir)/krb5.asn1 $(srcdir)/pkix.asn1 $(srcdir)/otp.asn1 \
11	$(srcdir)/pkinit.asn1 $(srcdir)/pkinit-agility.asn1 \
12	$(srcdir)/cammac.asn1 $(srcdir)/spake.asn1
13
14all: krb5_encode_test krb5_decode_test krb5_decode_leak t_trval
15
16ENCOBJS = krb5_encode_test.o ktest.o ktest_equal.o utility.o trval.o
17
18krb5_encode_test: $(ENCOBJS) $(KRB5_BASE_DEPLIBS)
19	$(CC_LINK) -o krb5_encode_test $(ENCOBJS) $(KRB5_BASE_LIBS)
20
21DECOBJS = krb5_decode_test.o ktest.o ktest_equal.o utility.o
22
23krb5_decode_test: $(DECOBJS) $(KRB5_BASE_DEPLIBS)
24	$(CC_LINK) -o krb5_decode_test $(DECOBJS) $(KRB5_BASE_LIBS)
25
26LEAKOBJS = krb5_decode_leak.o ktest.o ktest_equal.o utility.o
27
28krb5_decode_leak: $(LEAKOBJS) $(KRB5_BASE_DEPLIBS)
29	$(CC_LINK) -o krb5_decode_leak $(LEAKOBJS) $(KRB5_BASE_LIBS)
30
31t_trval: t_trval.o
32	$(CC) -o t_trval $(ALL_CFLAGS) t_trval.o
33
34check: check-encode check-encode-trval check-decode check-leak
35
36# Does not actually test for leaks unless using valgrind or a similar
37# tool, but does exercise a bunch of code.
38check-leak: krb5_decode_leak
39	$(RUN_TEST) ./krb5_decode_leak
40
41check-decode: krb5_decode_test
42	$(RUN_TEST) ./krb5_decode_test
43
44PKINIT_ENCODE_OUT=$(PKINIT_ENCODE_OUT-@PKINIT@)
45PKINIT_ENCODE_OUT-yes=$(srcdir)/pkinit_encode.out
46PKINIT_ENCODE_OUT-no=
47LDAP_ENCODE_OUT=$(LDAP_ENCODE_OUT-@LDAP@)
48LDAP_ENCODE_OUT-yes=$(srcdir)/ldap_encode.out
49LDAP_ENCODE_OUT-no=
50expected_encode.out: reference_encode.out pkinit_encode.out ldap_encode.out
51	cat $(srcdir)/reference_encode.out $(PKINIT_ENCODE_OUT) \
52		$(LDAP_ENCODE_OUT) > $@
53
54PKINIT_TRVAL_OUT=$(PKINIT_TRVAL_OUT-@PKINIT@)
55PKINIT_TRVAL_OUT-yes=$(srcdir)/pkinit_trval.out
56PKINIT_TRVAL_OUT-no=
57LDAP_TRVAL_OUT=$(LDAP_TRVAL_OUT-@LDAP@)
58LDAP_TRVAL_OUT-yes=$(srcdir)/ldap_trval.out
59LDAP_TRVAL_OUT-no=
60expected_trval.out: trval_reference.out pkinit_trval.out ldap_trval.out
61	cat $(srcdir)/trval_reference.out $(PKINIT_TRVAL_OUT) \
62		$(LDAP_TRVAL_OUT) > $@
63
64check-encode: krb5_encode_test expected_encode.out
65	$(RUN_TEST) ./krb5_encode_test > test.out
66	cmp test.out expected_encode.out
67
68check-encode-trval: krb5_encode_test expected_trval.out
69	$(RUN_TEST) ./krb5_encode_test -t > trval.out
70	cmp trval.out expected_trval.out
71
72# This target uses asn1c to generate encodings of sample objects, to
73# help ensure that our implementation is correct.  asn1c must be in the
74# path for this to work.
75test-vectors:
76	$(RM) -r vectors
77	mkdir vectors
78	cp $(ASN1SRCS) $(srcdir)/make-vectors.c vectors
79	(cd vectors && asn1c *.asn1 && rm converter-sample.c)
80	(cd vectors && $(CC) -I. -w *.c -o make-vectors)
81	(cd vectors && ./make-vectors)
82
83install:
84
85clean:
86	rm -f *~ *.o krb5_encode_test krb5_decode_test krb5_decode_leak test.out trval t_trval expected_encode.out expected_trval.out trval.out
87
88
89################ Dependencies ################
90krb5_decode_test.o: ktest.h utility.h ktest_equal.h debug.h
91krb5_encode_test.o: utility.h ktest.h debug.h
92trval.o: trval.c
93ktest.o: ktest.h utility.h
94ktest_equal.o: ktest_equal.h
95#utility.o: utility.h
96#utility.h: krbasn1.h asn1buf.h
97##############################################
98
99