1515static unsigned failed ;
1616
1717static void
18- test_err (const char * fmt , size_t groupc , const char * groupv [], const char * ne ,
18+ test_err (const char * fmt , enum re_interpolate_flags flags ,
19+ size_t groupc , const char * groupv [], const char * ne ,
1920 unsigned expected_start , unsigned expected_end )
2021{
2122 struct re_pos start , end ;
@@ -27,7 +28,7 @@ test_err(const char *fmt, size_t groupc, const char *groupv[], const char *ne,
2728 outs [0 ] = 'x' ;
2829
2930 /* for these tests we're expecting to error */
30- if (re_interpolate (fmt , '$' , 0 , "<g0>" , groupc , groupv , ne , outs , sizeof outs , & start , & end )) {
31+ if (re_interpolate (fmt , '$' , flags , "<g0>" , groupc , groupv , ne , outs , sizeof outs , & start , & end )) {
3132 printf ("%s/%zu XXX\n" , fmt , groupc );
3233 failed ++ ;
3334 return ;
@@ -53,22 +54,31 @@ int main(void) {
5354 const char * gn [] = { "one" , "two" , "three" , "four" };
5455 const char * * g0 = NULL ;
5556
56- test_err ("$" , 0 , g0 , ne , 0 , 1 );
57- test_err ("$x" , 0 , g0 , ne , 0 , 1 );
58- test_err ("$ " , 4 , gn , ne , 0 , 1 );
59- test_err ("$\\01" , 0 , g0 , ne , 0 , 1 );
57+ test_err ("$" , 0 , 0 , g0 , ne , 0 , 1 );
58+ test_err ("$x" , 0 , 0 , g0 , ne , 0 , 1 );
59+ test_err ("$ " , 0 , 4 , gn , ne , 0 , 1 );
60+ test_err ("$\\01" , 0 , 0 , g0 , ne , 0 , 1 );
6061
61- test_err ("$0$" , 0 , g0 , ne , 2 , 3 );
62- test_err ("$$$x" , 4 , gn , ne , 2 , 3 );
62+ test_err ("$0$" , 0 , 0 , g0 , ne , 2 , 3 );
63+ test_err ("$$$x" , 0 , 4 , gn , ne , 2 , 3 );
6364
64- test_err ("xyz$1" , 0 , gn , NULL , 3 , 5 );
65- test_err ("xyz$2" , 1 , gn , NULL , 3 , 5 );
65+ test_err ("xyz$1" , 0 , 0 , gn , NULL , 3 , 5 );
66+ test_err ("xyz$2" , 0 , 1 , gn , NULL , 3 , 5 );
6667
67- test_err ("01234567890" , 1 , gn , ne , 0 , 10 );
68- test_err ("$$$$$$$$$$$$$$$$$$$$" , 1 , gn , ne , 0 , 20 );
69- test_err ("$1$1$1$$" , 1 , gn , ne , 0 , 8 );
70- test_err ("$1$1$1x" , 1 , gn , ne , 0 , 7 );
71- test_err ("xxxyyyzzz$$" , 1 , gn , ne , 0 , 11 );
68+ test_err ("01234567890" , 0 , 1 , gn , ne , 0 , 10 );
69+ test_err ("$$$$$$$$$$$$$$$$$$$$" , 0 , 1 , gn , ne , 0 , 20 );
70+ test_err ("$1$1$1$$" , 0 , 1 , gn , ne , 0 , 8 );
71+ test_err ("$1$1$1x" , 0 , 1 , gn , ne , 0 , 7 );
72+ test_err ("xxxyyyzzz$$" , 0 , 1 , gn , ne , 0 , 11 );
73+
74+ test_err ("${" , 0 , 4 , gn , ne , 0 , 1 );
75+ test_err ("${}" , 0 , 4 , gn , ne , 0 , 1 );
76+ test_err ("${}x" , 0 , 4 , gn , ne , 0 , 1 );
77+ test_err ("${1}x" , 0 , 4 , gn , ne , 0 , 1 );
78+
79+ test_err ("${" , RE_INTERPOLATE_BRACES , 4 , gn , ne , 1 , 2 );
80+ test_err ("${}" , RE_INTERPOLATE_BRACES , 4 , gn , ne , 1 , 2 );
81+ test_err ("${}x" , RE_INTERPOLATE_BRACES , 4 , gn , ne , 1 , 2 );
7282
7383 return failed ;
7484}
0 commit comments