From d440d0442d4e31ca6acd37c7557e234fd8014427 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 22 Feb 2026 09:38:42 -0500 Subject: [PATCH] Expand token_user_fields unit test --- spec/propane_spec.rb | 6 +++--- spec/test_token_user_fields.c | 16 ++++++++++++++++ spec/test_token_user_fields.d | 6 ++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/spec/propane_spec.rb b/spec/propane_spec.rb index 0d9b3c4..61ee298 100644 --- a/spec/propane_spec.rb +++ b/spec/propane_spec.rb @@ -1623,7 +1623,7 @@ drop /#(.*)\\n/ << token id /\\w+/; Start -> IDs; IDs -> ; -IDs -> id IDs; +IDs -> id:id IDs; EOF elsif language == "c" write_grammar < IDs; IDs -> ; -IDs -> id IDs; +IDs -> id:id IDs; EOF else # C++ write_grammar < IDs; IDs -> ; -IDs -> id IDs; +IDs -> id:id IDs; EOF end run_propane(language: language) diff --git a/spec/test_token_user_fields.c b/spec/test_token_user_fields.c index e27e490..8226d03 100644 --- a/spec/test_token_user_fields.c +++ b/spec/test_token_user_fields.c @@ -19,6 +19,22 @@ int main() context = p_context_new((uint8_t const *)input, strlen(input)); assert(p_parse(context) == P_SUCCESS); Start * start = p_result(context); + assert(start->pIDs); + assert(start->pIDs->id); +#ifdef __cplusplus + assert(start->pIDs->id->comments == "# c1\n# c2\n"); +#else + assert(start->pIDs->id->comments); + assert(strcmp(start->pIDs->id->comments, "# c1\n# c2\n") == 0); +#endif + assert(start->pIDs->pIDs); + assert(start->pIDs->pIDs->id); +#ifdef __cplusplus + assert(start->pIDs->pIDs->id->comments == "# s1\n# s2\n"); +#else + assert(start->pIDs->pIDs->id->comments); + assert(strcmp(start->pIDs->pIDs->id->comments, "# s1\n# s2\n") == 0); +#endif #ifndef __cplusplus free(context->comments); diff --git a/spec/test_token_user_fields.d b/spec/test_token_user_fields.d index e8b8d63..a05b3bf 100644 --- a/spec/test_token_user_fields.d +++ b/spec/test_token_user_fields.d @@ -21,4 +21,10 @@ unittest context = p_context_new(input); assert(p_parse(context) == P_SUCCESS); Start * start = p_result(context); + assert(start.pIDs); + assert(start.pIDs.id); + assert(start.pIDs.id.comments == "# c1\n# c2\n"); + assert(start.pIDs.pIDs); + assert(start.pIDs.pIDs.id); + assert(start.pIDs.pIDs.id.comments == "# s1\n# s2\n"); }