Hi Tomaz(, Continuing:
Tomaz( Slivnik wrote: > Autogen then builds fine, but ``make check'' fails in two tests: > - case.test: diff case.test case.out gives > 4c4 > < empty: BOGUS > --- > > empty: valid The test involved is this (extracted template fragment): empty: <= CASE empty-val =><= ~* . =>WRONG<= !E =>BOGUS<= +E =>valid<= * =>REAL-BOGUS<= ESAC => In this test, "empgy-val" was defined to an empty string. The first regex will match any non-empty content. It did not match. The second "!E" entry says to take this value if "empty-val" has not been defined. This was selected and this is wrong. Please try this: cd ${top_builddir}/agen5/test gmake verbose TESTS=case.test cd testdir ../../autogen --trace=every --trace-out=case-trace.log \ -b case-trace case.def The "case-trace.log" file should contain this: > CASE ( 1) in case at line 42 > CASE no match: `' MATCH_START vs. `.' > CASE no match: `' MATCH_NONEXISTENCE vs. `' > CASE string `' MATCH_EXISTENCE matched `' > Text (11) in case at line 45 > valid > Text (11) in case at line 47 except that in your failure mode, "MATCH_NONEXISTENCE" will, apparently, match. Since the definitions file looks like this: > autogen definitions case; > grp = { > nam = first; > val = string; > }; > grp = { > nam = second; > val = String; > }; > grp = { > nam = third; > val = STRING; > }; > empty-val; I'm pretty sure "empty-val" is defined. Unfortunately, even if you rebuild autogen with CFLAGS='-DDEBUG -DDEBUG_ENABLED -g' I've apparently dropped the code that used to print out the complete definition hierarchy. I'll put up something with that code re-added, if we can't figure this out in the mean time. ============================================================ > - stress.test: with the following relevant output in stress.log: This is actually the first report ever of the stress test failing! > AutoGen aborting on signal 11 (Segmentation fault) in state > LOAD_DEFS > ./stress.test: line 43: 992 Broken pipe ( set > +x; echo "AutoGen Definitions ${testname};"; idx=1; while test $idx - > le ${ecount}; do > echo "entry = { value = 'val-${idx}'; depth = '${idx}'; > const = xx; };"; idx=`expr $idx + 1`; > done ) > 993 Abort trap | ${AGexe} -b ${testname} - Does this happen regularly? Can you get a stack trace of the seg fault? Thank you! Regards, Bruce ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Autogen-users mailing list Autogen-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/autogen-users