1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
/** \file PathsTest.c
* Unit tests for the paths module
*/
#include <stdarg.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <setjmp.h>
#include <cmocka.h>
#include <dynstring.h>
#include "../paths.h"
#ifdef WINDOWS
#define TESTPATH "C:\\Test\\Path"
#define TESTFILENAME "file.test"
#define TESTFILE TESTPATH "\\" TESTFILENAME
#define TESTPATH2 "D:\\Root"
#define TESTFILE2 TESTPATH2 "\\file2."
#define TESTRELATIVEPATH "Test\\Path"
#define DEFAULTPATH "C:\\Default\\Path"
#else
#define TESTPATH "/Test/Path"
#define TESTFILENAME "file.test"
#define TESTFILE TESTPATH "/" TESTFILENAME
#define TESTPATH2 "/Root"
#define TESTFILE2 TESTPATH2 "/file2."
#define TESTRELATIVEPATH "Test/Path"
#define DEFAULTPATH "/Default/Path"
#endif //WINDOWS
void
wPrefSetString(const char *section, const char *key, const char *value)
{}
char *wPrefGetStringExt(const char *section, const char *key)
{
return(NULL);
}
const char *wGetUserHomeDir(void)
{
return(DEFAULTPATH);
}
#include "../paths.c"
static void SetGetPath(void **state)
{
char *string;
(void)state;
string = GetCurrentPath("Test");
assert_string_equal(string, DEFAULTPATH);
SetCurrentPath("Test", TESTFILE );
string = GetCurrentPath("Test");
assert_string_equal(string, TESTPATH);
SetCurrentPath("Test", TESTFILE2);
string = GetCurrentPath("Test");
assert_string_equal(string, TESTPATH2);
}
static void Makepath(void **state)
{
(void)state;
char *path;
#ifdef WINDOWS
MakeFullpath(&path,
"C:",
TESTRELATIVEPATH,
TESTFILENAME,
NULL);
assert_string_equal(path, "C:" TESTRELATIVEPATH "\\" TESTFILENAME);
#else
MakeFullpath(&path,
TESTRELATIVEPATH,
TESTFILENAME,
NULL);
assert_string_equal(path, TESTRELATIVEPATH "/" TESTFILENAME);
#endif // WINDOWS
free(path);
#ifdef WINDOWS
MakeFullpath(&path,
"C:",
"test",
"\\subdir",
TESTFILENAME,
NULL);
assert_string_equal(path, "C:test\\subdir\\" TESTFILENAME);
#else
MakeFullpath(&path,
"test",
"/subdir",
TESTFILENAME,
NULL);
assert_string_equal(path, "test/subdir/" TESTFILENAME);
#endif // WINDOWS
free(path);
}
int main(void)
{
const struct CMUnitTest tests[] = {
cmocka_unit_test(SetGetPath),
cmocka_unit_test(Makepath),
};
return cmocka_run_group_tests(tests, NULL, NULL);
}
|