@@ -249,6 +249,48 @@ FOSSIL_TEST_CASE(cpp_wrapper_argument_types) {
249
249
parser.free (palette);
250
250
} // end case
251
251
252
+ FOSSIL_TEST_CASE (cpp_wrapper_null_palette) {
253
+ fossil::io::Parser parser;
254
+ fossil_io_parser_palette_t *palette = NULL ;
255
+ FOSSIL_TEST_ASSUME (parser.add_command (palette, " test_command" , " Test Command Description" ) == NULL , " Adding command to NULL palette should return NULL" );
256
+ parser.parse (palette, 0 , NULL );
257
+ } // end case
258
+
259
+ FOSSIL_TEST_CASE (cpp_wrapper_empty_command_name) {
260
+ fossil::io::Parser parser;
261
+ fossil_io_parser_palette_t *palette = parser.create_palette (" wrapper_palette" , " Wrapper Test Description" );
262
+ fossil_io_parser_command_t *command = parser.add_command (palette, " " , " Empty Command Name Description" );
263
+ FOSSIL_TEST_ASSUME (command == NULL , " Command with empty name should not be added" );
264
+ parser.free (palette);
265
+ } // end case
266
+
267
+ FOSSIL_TEST_CASE (cpp_wrapper_duplicate_command_name) {
268
+ fossil::io::Parser parser;
269
+ fossil_io_parser_palette_t *palette = parser.create_palette (" wrapper_palette" , " Wrapper Test Description" );
270
+ parser.add_command (palette, " wrapper_command" , " Wrapper Command Description" );
271
+ fossil_io_parser_command_t *duplicate = parser.add_command (palette, " wrapper_command" , " Duplicate Command Description" );
272
+ FOSSIL_TEST_ASSUME (duplicate == NULL , " Duplicate command name should not be allowed" );
273
+ parser.free (palette);
274
+ } // end case
275
+
276
+ FOSSIL_TEST_CASE (cpp_wrapper_null_argument_name) {
277
+ fossil::io::Parser parser;
278
+ fossil_io_parser_palette_t *palette = parser.create_palette (" wrapper_palette" , " Wrapper Test Description" );
279
+ fossil_io_parser_command_t *command = parser.add_command (palette, " wrapper_command" , " Wrapper Command Description" );
280
+ fossil_io_parser_argument_t *argument = parser.add_argument (command, NULL , FOSSIL_IO_PARSER_STRING, NULL , 0 );
281
+ FOSSIL_TEST_ASSUME (argument == NULL , " Argument with NULL name should not be added" );
282
+ parser.free (palette);
283
+ } // end case
284
+
285
+ FOSSIL_TEST_CASE (cpp_wrapper_invalid_argument_type) {
286
+ fossil::io::Parser parser;
287
+ fossil_io_parser_palette_t *palette = parser.create_palette (" wrapper_palette" , " Wrapper Test Description" );
288
+ fossil_io_parser_command_t *command = parser.add_command (palette, " wrapper_command" , " Wrapper Command Description" );
289
+ fossil_io_parser_argument_t *argument = parser.add_argument (command, " invalid_arg" , FOSSIL_IO_PARSER_INVALID, NULL , 0 );
290
+ FOSSIL_TEST_ASSUME (argument == NULL , " Argument with invalid type should not be added" );
291
+ parser.free (palette);
292
+ } // end case
293
+
252
294
// * * * * * * * * * * * * * * * * * * * * * * * *
253
295
// * Fossil Logic Test Pool
254
296
// * * * * * * * * * * * * * * * * * * * * * * * *
@@ -267,6 +309,11 @@ FOSSIL_TEST_GROUP(cpp_parser_test_cases) {
267
309
FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_parse_command);
268
310
FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_free_palette);
269
311
FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_argument_types);
312
+ FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_null_palette);
313
+ FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_empty_command_name);
314
+ FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_duplicate_command_name);
315
+ FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_null_argument_name);
316
+ FOSSIL_TEST_ADD (cpp_parser_suite, cpp_wrapper_invalid_argument_type);
270
317
271
318
FOSSIL_TEST_REGISTER (cpp_parser_suite);
272
319
} // end of group
0 commit comments