#include <u.h>
#include <libc.h>
#include <fcall.h>
#include <thread.h>
#include <9p.h>
#include <String.h>
#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);
}
|