Ticket #2119 (new bug) — at Initial Version

Opened 11 years ago

Last modified 11 years ago

t/tools/dev/headerizer/01_functions.t failure

Reported by: mikehh Owned by:
Priority: normal Milestone:
Component: none Version: master
Severity: medium Keywords:
Cc: petdance, kid51 Language:
Patch status: Platform:

Description

t/tools/dev/headerizer/01_functions.t - Failed test: 51

...
not ok 51 - Got expected assert

#   Failed test 'Got expected assert'
#   at t/tools/dev/headerizer/01_functions.t line 471.
...

this appears to be the result of a change in an re in lib/Parrot/Headerizer/Functions.pm in commit b3b76526480e75fac566 by petdance on 2011-05-18 (currently line 455):

...
-        if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\((.+)\)} ) {
+        if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\((.+?)\)} ) {
...

from the test line 459-471

@args = (
    'ARGFREE_NOTNULL(( _abcDEF123 )())',
    'PARROT_INTERP',
    'ARGIN(Linked_List *list)',
    'ARGIN(List_Item_Header *item)',
    'SHIM_INTERP',
);
%asserts = map { $_ => 1 } asserts_from_args( @args );
is( keys %asserts, 4, "Got expected number of asserts" );
ok( exists $asserts{'PARROT_ASSERT_ARG(list)'}, "Got expected assert" );
ok( exists $asserts{'PARROT_ASSERT_ARG(item)'}, "Got expected assert" );
ok( exists $asserts{'PARROT_ASSERT_ARG(interp)'}, "Got expected assert" );
ok( exists $asserts{'PARROT_ASSERT_ARG(( _abcDEF123 )'}, "Got expected assert" );

the 'ARGFREE_NOTNULL(( _abcDEF123 )())' on line 460 gets returned as:

'PARROT_ASSERT_ARG(( _abcDEF123 )'

not 'PARROT_ASSERT_ARG(_abcDEF123)' as expected.

Note two parens and a space'(( ' not '(' and a space and single parens ' )' not ')'

Note: See TracTickets for help on using tickets.