xref: /f-stack/tools/libxo/tests/core/Makefile.am (revision d4a07e70)
1*d4a07e70Sfengbojiang#
2*d4a07e70Sfengbojiang# $Id$
3*d4a07e70Sfengbojiang#
4*d4a07e70Sfengbojiang# Copyright 2014, Juniper Networks, Inc.
5*d4a07e70Sfengbojiang# All rights reserved.
6*d4a07e70Sfengbojiang# This SOFTWARE is licensed under the LICENSE provided in the
7*d4a07e70Sfengbojiang# ../Copyright file. By downloading, installing, copying, or otherwise
8*d4a07e70Sfengbojiang# using the SOFTWARE, you agree to be bound by the terms of that
9*d4a07e70Sfengbojiang# LICENSE.
10*d4a07e70Sfengbojiang
11*d4a07e70SfengbojiangAM_CFLAGS = -I${top_srcdir} -I${top_srcdir}/libxo
12*d4a07e70Sfengbojiang
13*d4a07e70Sfengbojiang# Ick: maintained by hand!
14*d4a07e70SfengbojiangTEST_CASES = \
15*d4a07e70Sfengbojiangtest_01.c \
16*d4a07e70Sfengbojiangtest_02.c \
17*d4a07e70Sfengbojiangtest_03.c \
18*d4a07e70Sfengbojiangtest_04.c \
19*d4a07e70Sfengbojiangtest_05.c \
20*d4a07e70Sfengbojiangtest_06.c \
21*d4a07e70Sfengbojiangtest_07.c \
22*d4a07e70Sfengbojiangtest_08.c \
23*d4a07e70Sfengbojiangtest_09.c \
24*d4a07e70Sfengbojiangtest_10.c \
25*d4a07e70Sfengbojiangtest_11.c \
26*d4a07e70Sfengbojiangtest_12.c
27*d4a07e70Sfengbojiang
28*d4a07e70Sfengbojiangtest_01_test_SOURCES = test_01.c
29*d4a07e70Sfengbojiangtest_02_test_SOURCES = test_02.c
30*d4a07e70Sfengbojiangtest_03_test_SOURCES = test_03.c
31*d4a07e70Sfengbojiangtest_04_test_SOURCES = test_04.c
32*d4a07e70Sfengbojiangtest_05_test_SOURCES = test_05.c
33*d4a07e70Sfengbojiangtest_06_test_SOURCES = test_06.c
34*d4a07e70Sfengbojiangtest_07_test_SOURCES = test_07.c
35*d4a07e70Sfengbojiangtest_08_test_SOURCES = test_08.c
36*d4a07e70Sfengbojiangtest_09_test_SOURCES = test_09.c
37*d4a07e70Sfengbojiangtest_10_test_SOURCES = test_10.c
38*d4a07e70Sfengbojiangtest_11_test_SOURCES = test_11.c
39*d4a07e70Sfengbojiangtest_12_test_SOURCES = test_12.c
40*d4a07e70Sfengbojiang
41*d4a07e70Sfengbojiang# TEST_CASES := $(shell cd ${srcdir} ; echo *.c )
42*d4a07e70Sfengbojiang
43*d4a07e70Sfengbojiangnoinst_PROGRAMS = ${TEST_CASES:.c=.test}
44*d4a07e70Sfengbojiang
45*d4a07e70SfengbojiangLDADD = \
46*d4a07e70Sfengbojiang    ${top_builddir}/libxo/libxo.la
47*d4a07e70Sfengbojiang
48*d4a07e70Sfengbojiangif HAVE_HUMANIZE_NUMBER
49*d4a07e70SfengbojiangLDADD += -lutil
50*d4a07e70Sfengbojiangendif
51*d4a07e70Sfengbojiang
52*d4a07e70SfengbojiangEXTRA_DIST = \
53*d4a07e70Sfengbojiang    ${TEST_CASES} \
54*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.T.err}} \
55*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.T.out}} \
56*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.XP.err}} \
57*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.XP.out}} \
58*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.JP.err}} \
59*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.JP.out}} \
60*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.HP.err}} \
61*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.HP.out}} \
62*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.X.err}} \
63*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.X.out}} \
64*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.J.err}} \
65*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.J.out}} \
66*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.H.err}} \
67*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.H.out}} \
68*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.HIPx.err}} \
69*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.HIPx.out}} \
70*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.E.err}} \
71*d4a07e70Sfengbojiang    ${addprefix saved/, ${TEST_CASES:.c=.E.out}}
72*d4a07e70Sfengbojiang
73*d4a07e70SfengbojiangS2O = | ${SED} '1,/@@/d'
74*d4a07e70Sfengbojiang
75*d4a07e70Sfengbojiangall:
76*d4a07e70Sfengbojiang
77*d4a07e70Sfengbojiangvalgrind:
78*d4a07e70Sfengbojiang	@echo '## Running the regression tests under Valgrind'
79*d4a07e70Sfengbojiang	${MAKE} CHECKER='valgrind -q' tests
80*d4a07e70Sfengbojiang
81*d4a07e70Sfengbojiang#TEST_TRACE = set -x ;
82*d4a07e70Sfengbojiang
83*d4a07e70SfengbojiangTEST_JIG = \
84*d4a07e70Sfengbojiang      ${CHECKER} ./$$base.test --libxo$$xoopts ${TEST_OPTS} \
85*d4a07e70Sfengbojiang      > out/$$base.$$fmt.out 2> out/$$base.$$fmt.err ; \
86*d4a07e70Sfengbojiang ${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.out out/$$base.$$fmt.out ${S2O} ; \
87*d4a07e70Sfengbojiang ${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.err out/$$base.$$fmt.err ${S2O}
88*d4a07e70Sfengbojiang
89*d4a07e70SfengbojiangTEST_JIG2 = \
90*d4a07e70Sfengbojiangecho "... $$test ... $$fmt ..."; \
91*d4a07e70Sfengbojiangxoopts==warn,$$csv ; \
92*d4a07e70Sfengbojiang${TEST_JIG}; true;
93*d4a07e70Sfengbojiang
94*d4a07e70SfengbojiangTEST_FORMATS = T XP JP HP X J H HIPx
95*d4a07e70Sfengbojiang
96*d4a07e70Sfengbojiangtest tests: ${bin_PROGRAMS}
97*d4a07e70Sfengbojiang	@${MKDIR} -p out
98*d4a07e70Sfengbojiang	-@ ${TEST_TRACE} (for test in ${TEST_CASES} ; do \
99*d4a07e70Sfengbojiang	    base=`${BASENAME} $$test .c` ; \
100*d4a07e70Sfengbojiang            (for fmt in ${TEST_FORMATS}; do \
101*d4a07e70Sfengbojiang	        echo "... $$test ... $$fmt ..."; \
102*d4a07e70Sfengbojiang                xoopts=:W$$fmt ; \
103*d4a07e70Sfengbojiang	        ${TEST_JIG}; \
104*d4a07e70Sfengbojiang                true; \
105*d4a07e70Sfengbojiang            done) ; \
106*d4a07e70Sfengbojiang            (for fmt in E; do \
107*d4a07e70Sfengbojiang	        echo "... $$test ... $$fmt ..."; \
108*d4a07e70Sfengbojiang                xoopts==warn,encoder=test ; \
109*d4a07e70Sfengbojiang	        ${TEST_JIG}; \
110*d4a07e70Sfengbojiang                true; \
111*d4a07e70Sfengbojiang            done) \
112*d4a07e70Sfengbojiang	done)
113*d4a07e70Sfengbojiang	-@ (${TEST_TRACE} test=test_01.c; base=test_01; \
114*d4a07e70Sfengbojiang	    (   fmt=Ecsv1; csv=encoder=csv ; \
115*d4a07e70Sfengbojiang			${TEST_JIG2} ); \
116*d4a07e70Sfengbojiang	    (   fmt=Ecsv2; csv=encoder=csv:path=top/data/item:no-header ; \
117*d4a07e70Sfengbojiang			${TEST_JIG2} ); \
118*d4a07e70Sfengbojiang	    (   fmt=Ecsv3; csv=@csv:path=item:leafs=sku.sold:no-quotes ; \
119*d4a07e70Sfengbojiang			${TEST_JIG2} ); \
120*d4a07e70Sfengbojiang	)
121*d4a07e70Sfengbojiang
122*d4a07e70Sfengbojiang
123*d4a07e70Sfengbojiangone:
124*d4a07e70Sfengbojiang	-@(test=${TEST_CASE}; data=${TEST_DATA}; ${TEST_ONE} ; true)
125*d4a07e70Sfengbojiang
126*d4a07e70Sfengbojiangaccept:
127*d4a07e70Sfengbojiang	-@(for test in ${TEST_CASES} ; do \
128*d4a07e70Sfengbojiang	    base=`${BASENAME} $$test .c` ; \
129*d4a07e70Sfengbojiang            (for fmt in ${TEST_FORMATS} E ; do \
130*d4a07e70Sfengbojiang	        echo "... $$test ... $$fmt ..."; \
131*d4a07e70Sfengbojiang	        ${CP} out/$$base.$$fmt.out ${srcdir}/saved/$$base.$$fmt.out ; \
132*d4a07e70Sfengbojiang	        ${CP} out/$$base.$$fmt.err ${srcdir}/saved/$$base.$$fmt.err ; \
133*d4a07e70Sfengbojiang	    done) \
134*d4a07e70Sfengbojiang	done)
135*d4a07e70Sfengbojiang	-@(test=test_01.c; base=test_01; for fmt in Ecsv1 Ecsv2 Ecsv3 ; do \
136*d4a07e70Sfengbojiang	        echo "... $$test ... $$fmt ..."; \
137*d4a07e70Sfengbojiang	        ${CP} out/$$base.$$fmt.out ${srcdir}/saved/$$base.$$fmt.out ; \
138*d4a07e70Sfengbojiang	        ${CP} out/$$base.$$fmt.err ${srcdir}/saved/$$base.$$fmt.err ; \
139*d4a07e70Sfengbojiang	done)
140*d4a07e70Sfengbojiang
141*d4a07e70Sfengbojiang.c.test:
142*d4a07e70Sfengbojiang	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -o $@ $<
143*d4a07e70Sfengbojiang
144*d4a07e70SfengbojiangCLEANFILES = ${TEST_CASES:.c=.test}
145*d4a07e70SfengbojiangCLEANDIRS = out
146*d4a07e70Sfengbojiang
147*d4a07e70Sfengbojiangclean-local:
148*d4a07e70Sfengbojiang	rm -rf ${CLEANDIRS}
149