[apparmor] [patch 02/18] parser: remove unneeded vars/allocations in regex unit tests [resend]

Steve Beattie steve at nxnw.org
Thu Jan 16 22:06:10 UTC 2014


Based on feedback from Seth Arnold, the convert_aaregex_to_pcre()'s
first argument is const char *, and thus the unit test macros don't need
to pass a copy of the input string to it, as it's guaranteed to be
unmodified by the function.

Signed-off-by: Steve Beattie <steve at nxnw.org>
---
 parser/parser_regex.c |   15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

Index: b/parser/parser_regex.c
===================================================================
--- a/parser/parser_regex.c
+++ b/parser/parser_regex.c
@@ -1255,41 +1255,36 @@ static int test_filter_slashes(void)
 	do {												\
 		std::string tbuf;									\
 		std::string tbuf2 = "testprefix";							\
-		char *test_string;									\
 		char *output_string = NULL;								\
 		std::string expected_str2;								\
 		pattern_t ptype;									\
 		int pos;										\
 													\
-		test_string = strdup((input)); 								\
-		ptype = convert_aaregex_to_pcre(test_string, 0, tbuf, &pos);				\
+		ptype = convert_aaregex_to_pcre((input), 0, tbuf, &pos);				\
 		asprintf(&output_string, "simple regex conversion for '%s'\texpected = '%s'\tresult = '%s'", \
-				(input), expected_str, tbuf.c_str());					\
+				(input), (expected_str), tbuf.c_str());					\
 		MY_TEST(strcmp(tbuf.c_str(), (expected_str)) == 0, output_string);			\
 		MY_TEST(ptype == (expected_type), "simple regex conversion type check for '" input "'"); \
 		free(output_string);									\
 		/* ensure convert_aaregex_to_pcre appends only to passed ref string */			\
 		expected_str2 = tbuf2;									\
 		expected_str2.append((expected_str));							\
-		ptype = convert_aaregex_to_pcre(test_string, 0, tbuf2, &pos);				\
+		ptype = convert_aaregex_to_pcre((input), 0, tbuf2, &pos);				\
 		asprintf(&output_string, "simple regex conversion for '%s'\texpected = '%s'\tresult = '%s'", \
 				(input), expected_str2.c_str(), tbuf2.c_str());				\
 		MY_TEST((tbuf2 == expected_str2), output_string);					\
-		free(test_string); free(output_string);							\
+		free(output_string);									\
 	}												\
 	while (0)
 
 #define MY_REGEX_FAIL_TEST(input)						\
 	do {												\
 		std::string tbuf;									\
-		char *test_string;									\
 		pattern_t ptype;									\
 		int pos;										\
 													\
-		test_string = strdup((input)); 								\
-		ptype = convert_aaregex_to_pcre(test_string, 0, tbuf, &pos);				\
+		ptype = convert_aaregex_to_pcre((input), 0, tbuf, &pos);				\
 		MY_TEST(ptype == ePatternInvalid, "simple regex conversion invalid type check for '" input "'"); \
-		free(test_string); 									\
 	}												\
 	while (0)
 




More information about the AppArmor mailing list