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

Reply via email to