xref: /netbsd-src/external/mit/isl/dist/check_reparse_test_templ.c (revision 5971e316fdea024efff6be8f03536623db06833e)
1*5971e316Smrg #define xCAT(A,B) A ## B
2*5971e316Smrg #define CAT(A,B) xCAT(A,B)
3*5971e316Smrg #undef TYPE
4*5971e316Smrg #define TYPE CAT(isl_,BASE)
5*5971e316Smrg #define xFN(TYPE,NAME) TYPE ## _ ## NAME
6*5971e316Smrg #define FN(TYPE,NAME) xFN(TYPE,NAME)
7*5971e316Smrg 
8*5971e316Smrg #undef TESTS
9*5971e316Smrg #define TESTS CAT(reparse_,CAT(BASE,_tests))
10*5971e316Smrg 
11*5971e316Smrg /* Test parsing of objects of type TYPE by printing
12*5971e316Smrg  * the expressions and checking that parsing the output results
13*5971e316Smrg  * in the same expression.
14*5971e316Smrg  * Do this for a set of expressions parsed from strings.
15*5971e316Smrg  */
FN(check,TESTS)16*5971e316Smrg static isl_stat FN(check,TESTS)(isl_ctx *ctx)
17*5971e316Smrg {
18*5971e316Smrg 	int i;
19*5971e316Smrg 
20*5971e316Smrg 	for (i = 0; i < ARRAY_SIZE(TESTS); ++i) {
21*5971e316Smrg 		TYPE *obj;
22*5971e316Smrg 
23*5971e316Smrg 		obj = FN(TYPE,read_from_str)(ctx, TESTS[i]);
24*5971e316Smrg 		if (FN(check_reparse,BASE)(ctx, obj) < 0)
25*5971e316Smrg 			return isl_stat_error;
26*5971e316Smrg 	}
27*5971e316Smrg 
28*5971e316Smrg 	return isl_stat_ok;
29*5971e316Smrg }
30