mesa/tests
Carl Worth d476db38fe Add several tests where the defined value of a macro is (or looks like) a macro
Many of these look quite similar to existing tests that are handled
correctly, yet none of these work. For example, in test 30 we have a
simple non-function macro "foo" that is defined as "bar(baz(success))"
and obviously non-function macro expansion has been working for a long
time.  Similarly, if we had text of "bar(baz(success))" it would be
expanded correctly as well.

But when this otherwise functioning text appears as the body of a
macro, things don't work at all.

This is pointing out a fundamental problem with the current
approach. The current code does a recursive expansion of a macro
definition, but this doesn't involve the parsing machinery, so it
can't actually handle things like an arbitrary nesting of parentheses.

The fix will require the parser to stuff macro values back into the
lexer to get at all of the existing machinery when expanding macros.
2010-05-18 22:09:57 -07:00
..
001-define.c Add a very simple test for the pre-processor. 2010-05-10 16:21:10 -07:00
002-define-chain.c Add test for chained #define directives. 2010-05-11 12:29:22 -07:00
003-define-chain-reverse.c Add a couple more tests for chained #define directives. 2010-05-11 12:35:06 -07:00
004-define-recursive.c Add a couple more tests for chained #define directives. 2010-05-11 12:35:06 -07:00
005-define-composite-chain.c Add tests defining a macro to be a literal and another macro. 2010-05-11 12:39:29 -07:00
006-define-composite-chain-reverse.c Add tests defining a macro to be a literal and another macro. 2010-05-11 12:39:29 -07:00
007-define-composite-recursive.c Add tests defining a macro to be a literal and another macro. 2010-05-11 12:39:29 -07:00
008-define-empty.c Add test for an empty definition. 2010-05-12 12:49:07 -07:00
009-undef.c Add test for #undef. 2010-05-12 13:11:23 -07:00
010-undef-re-define.c Add test case to define, undef, and then again define a macro. 2010-05-12 13:14:08 -07:00
011-define-func-empty.c Add tests for the structure of function-like macros. 2010-05-13 09:35:50 -07:00
012-define-func-no-args.c Add tests for the structure of function-like macros. 2010-05-13 09:35:50 -07:00
013-define-func-1-arg-unused.c Add tests for the structure of function-like macros. 2010-05-13 09:35:50 -07:00
014-define-func-2-arg-unused.c Add tests for the structure of function-like macros. 2010-05-13 09:35:50 -07:00
015-define-object-with-parens.c Add some whitespace variations to test 15. 2010-05-14 09:20:13 -07:00
016-define-func-1-arg.c Add tests exercising substitution of arguments in function-like macros. 2010-05-14 09:53:50 -07:00
017-define-func-2-args.c Add tests exercising substitution of arguments in function-like macros. 2010-05-14 09:53:50 -07:00
018-define-func-macro-as-parameter.c Add test where a macro formal parameter is the same as an existing macro. 2010-05-14 09:53:50 -07:00
019-define-func-1-arg-multi.c Add test for function-like macro invocations with multiple-token arguments. 2010-05-14 11:50:27 -07:00
020-define-func-2-arg-multi.c Add test for function-like macro invocations with multiple-token arguments. 2010-05-14 11:50:27 -07:00
021-define-func-compose.c Add test for composed invocation of function-like macros. 2010-05-14 11:50:33 -07:00
022-define-func-arg-with-parens.c Add test invoking a macro with an argument containing (non-macro) parentheses. 2010-05-14 16:51:54 -07:00
023-define-extra-whitespace.c Add test with extra whitespace in macro defintions and invocations. 2010-05-14 17:03:43 -07:00
024-define-chain-to-self-recursion.c Add test and fix bug leading to infinite recursion. 2010-05-17 10:15:23 -07:00
025-func-macro-as-non-macro.c Fix bug (and add test) for a function-like-macro appearing as a non-macro. 2010-05-17 10:34:29 -07:00
026-define-func-extra-newlines.c Fix (and add test for) function-like macro invocation with newlines. 2010-05-17 13:21:13 -07:00
027-define-chain-obj-to-func.c Add several tests where the defined value of a macro is (or looks like) a macro 2010-05-18 22:09:57 -07:00
028-define-chain-obj-to-non-func.c Add several tests where the defined value of a macro is (or looks like) a macro 2010-05-18 22:09:57 -07:00
029-define-chain-obj-to-func-with-args.c Add several tests where the defined value of a macro is (or looks like) a macro 2010-05-18 22:09:57 -07:00
030-define-chain-obj-to-func-compose.c Add several tests where the defined value of a macro is (or looks like) a macro 2010-05-18 22:09:57 -07:00
031-define-chain-func-to-func-compose.c Add several tests where the defined value of a macro is (or looks like) a macro 2010-05-18 22:09:57 -07:00
glcpp-test Fix (and add test for) function-like macro invocation with newlines. 2010-05-17 13:21:13 -07:00