#include #include #include #include #include <9p.h> #include #include "common.h" #include "debug.h" #include "collection.h" #include "function.h" #include "array.h" #include "rule.h" #include "namerule.h" #include "qidgenerator.h" #include "holemanager.h" #include "filehandle.h" #include "fiddata.h" #include "matcher.h" #include "string.h" #include "unittest.h" typedef struct TestConfig { char *settingstring; char *escapedsettingstring; char *singleescaped; } TestConfig; static void *testconfig_setup(void) { TestConfig *data = (TestConfig *)emalloc_fs(sizeof(*data)); data->settingstring = estrdup_fs("a normal setting"); data->escapedsettingstring = estrdup_fs("an escaped \\) setting\\nand newline\\tand tabs\\r"); data->singleescaped = estrdup_fs( "an escaped \\nstring that will only\\\\convert single \\) right paren"); return data; } static void testconfig_teardown(void *data) { TestConfig *testconfig = (TestConfig *)data; assert_valid(testconfig); free(testconfig->settingstring); free(testconfig->escapedsettingstring); free(testconfig->singleescaped); } static bool testconfig_convert_escaped(void *data) { TestConfig *testconfig = (TestConfig *)data; assert_valid(testconfig); test_assert(strcmp( testconfig->settingstring, string_convert_escaped(testconfig->settingstring)) == 0); test_assert(strcmp( "an escaped ) setting\nand newline\tand tabs\r", string_convert_escaped(testconfig->escapedsettingstring)) == 0); return true; } bool testconfig_single_convert(void *data) { TestConfig *testconfig = (TestConfig *)data; assert_valid(testconfig); test_assert(strcmp( "an escaped \\nstring that will only\\\\convert single ) right paren", string_convert_single_escaped(testconfig->singleescaped, ')', ')')) == 0); return true; } static TestFixure testconfig_fixure = { .setup = testconfig_setup, .teardown = testconfig_teardown }; static TestCaseNamePair testconfig_testcases[] = { testcasenamepair_make(testconfig_convert_escaped) }; AbstractTest *testconfig_testsuite(void) { return (AbstractTest *) testsuite_make("testconfig", testconfig_testcases, static_array_length(testconfig_testcases), &testconfig_fixure); }