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
[email protected]
https://lists.sourceforge.net/lists/listinfo/autogen-users