static int test_parser(const struct test* t) {
struct pakfire_parser* parser = NULL;
struct pakfire_parser* subparser = NULL;
- char* value = NULL;
int r = EXIT_FAILURE;
+ char* s = NULL;
// Create a new parser
ASSERT_SUCCESS(pakfire_parser_create(&parser, t->pakfire, NULL, NULL, 0));
// Retrieve a value that does not exist
- value = pakfire_parser_get(parser, NULL, "null");
- ASSERT(!value);
+ ASSERT_NULL(pakfire_parser_get(parser, NULL, "null"));
// Set a value
ASSERT_SUCCESS(pakfire_parser_set(parser, NULL, "a", "a", 0));
// Retrieve the value again
- value = pakfire_parser_get(parser, NULL, "a");
- ASSERT_STRING_EQUALS(value, "a");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, NULL, "a"), "a");
// Append something to the value
ASSERT_SUCCESS(pakfire_parser_append(parser, NULL, "a", "b"));
// Retrieve the value again
- value = pakfire_parser_get(parser, NULL, "a");
- ASSERT_STRING_EQUALS(value, "a b");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, NULL, "a"), "a b");
// Make a child parser
subparser = pakfire_parser_create_child(parser, "child");
ASSERT(subparser);
// Try to get a again
- value = pakfire_parser_get(subparser, NULL, "a");
- ASSERT_STRING_EQUALS(value, "a b");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(subparser, NULL, "a"), "a b");
// Append something to the subparser
ASSERT_SUCCESS(pakfire_parser_append(subparser, NULL, "a", "c"));
// The subparser should return "a b c"
- value = pakfire_parser_get(subparser, NULL, "a");
- ASSERT_STRING_EQUALS(value, "a b c");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(subparser, NULL, "a"), "a b c");
// The original parser should remain unchanged
- value = pakfire_parser_get(parser, NULL, "a");
- ASSERT_STRING_EQUALS(value, "a b");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, NULL, "a"), "a b");
// Set another value
ASSERT_SUCCESS(pakfire_parser_append(subparser, NULL, "b", "1"));
ASSERT_SUCCESS(pakfire_parser_set(parser, NULL, "c", "%{b}", 0));
// Get the value of c
- value = pakfire_parser_get(parser, NULL, "c");
- ASSERT_STRING_EQUALS(value, "");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, NULL, "c"), "");
// Dump the parser
- char* s = pakfire_parser_dump(parser);
+ s = pakfire_parser_dump(parser);
printf("%s\n", s);
// Everything passed
pakfire_parser_unref(subparser);
if (parser)
pakfire_parser_unref(parser);
- if (value)
- free(value);
+ if (s)
+ free(s);
return r;
}
static int test_append(const struct test* t) {
struct pakfire_parser* parser = NULL;
int r = EXIT_FAILURE;
+ char* s = NULL;
// Create a new parser
ASSERT_SUCCESS(pakfire_parser_create(&parser, t->pakfire, NULL, NULL, 0));
ASSERT_SUCCESS(pakfire_parser_parse(parser, str2, strlen(str2), NULL));
- ASSERT_STRING_EQUALS(pakfire_parser_get(parser, "build", "a"), "1 2 3");
- ASSERT_STRING_EQUALS(pakfire_parser_get(parser, "build", "b"), "1 2 3");
- ASSERT_STRING_EQUALS(pakfire_parser_get(parser, "build", "c"), "10 20");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, "build", "a"), "1 2 3");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, "build", "b"), "1 2 3");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, "build", "c"), "10 20");
// Dump the parser
- char* s = pakfire_parser_dump(parser);
+ s = pakfire_parser_dump(parser);
printf("%s\n", s);
// Everything passed
FAIL:
if (parser)
pakfire_parser_unref(parser);
+ if (s)
+ free(s);
return r;
}
ASSERT_SUCCESS(pakfire_parser_set(parser, NULL, "command", command, 0));
// Retrieve the expanded value
- char* value = pakfire_parser_get(parser, NULL, "command");
- ASSERT_STRING_EQUALS(value, "ABC");
+ ASSERT_STRING_EQUALS_FREE(pakfire_parser_get(parser, NULL, "command"), "ABC");
// Everything passed
r = EXIT_SUCCESS;