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