OpenVPN
tests
unit_tests
plugins
auth-pam
test_search_and_replace.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <unistd.h>
3
#include <stdlib.h>
4
#include <stdarg.h>
5
#include <stdint.h>
6
#include <string.h>
7
#include <setjmp.h>
8
#include <cmocka.h>
9
10
#include "
utils.h
"
11
12
static
void
13
pass_any_null_param__returns_null
(
void
**state)
14
{
15
char
DUMMY[] =
"DUMMY"
;
16
17
assert_null(
searchandreplace
(NULL, DUMMY, DUMMY));
18
assert_null(
searchandreplace
(DUMMY, NULL, DUMMY));
19
assert_null(
searchandreplace
(DUMMY, DUMMY, NULL));
20
}
21
22
static
void
23
pass_any_empty_string__returns_null
(
void
**state)
24
{
25
char
DUMMY[] =
"DUMMY"
;
26
char
EMPTY[] =
""
;
27
28
assert_null(
searchandreplace
(EMPTY, DUMMY, DUMMY));
29
assert_null(
searchandreplace
(DUMMY, EMPTY, DUMMY));
30
assert_null(
searchandreplace
(DUMMY, DUMMY, EMPTY));
31
}
32
33
static
void
34
replace_single_char__one_time__match_is_replaced
(
void
**state)
35
{
36
char
*replaced =
searchandreplace
(
"X"
,
"X"
,
"Y"
);
37
38
assert_non_null(replaced);
39
assert_string_equal(
"Y"
, replaced);
40
41
free(replaced);
42
}
43
44
static
void
45
replace_single_char__multiple_times__match_all_matches_are_replaced
(
void
**state)
46
{
47
char
*replaced =
searchandreplace
(
"XaX"
,
"X"
,
"Y"
);
48
49
assert_non_null(replaced);
50
assert_string_equal(
"YaY"
, replaced);
51
52
free(replaced);
53
}
54
55
static
void
56
replace_longer_text__multiple_times__match_all_matches_are_replaced
(
void
**state)
57
{
58
char
*replaced =
searchandreplace
(
"XXaXX"
,
"XX"
,
"YY"
);
59
60
assert_non_null(replaced);
61
assert_string_equal(
"YYaYY"
, replaced);
62
63
free(replaced);
64
}
65
66
static
void
67
pattern_not_found__returns_original
(
void
**state)
68
{
69
char
*replaced =
searchandreplace
(
"abc"
,
"X"
,
"Y"
);
70
71
assert_non_null(replaced);
72
assert_string_equal(
"abc"
, replaced);
73
74
free(replaced);
75
}
76
77
78
int
79
main
(
void
)
80
{
81
const
struct
CMUnitTest tests[] = {
82
cmocka_unit_test(
pass_any_null_param__returns_null
),
83
cmocka_unit_test(
pass_any_empty_string__returns_null
),
84
cmocka_unit_test(
replace_single_char__one_time__match_is_replaced
),
85
cmocka_unit_test(
replace_single_char__multiple_times__match_all_matches_are_replaced
),
86
cmocka_unit_test(
replace_longer_text__multiple_times__match_all_matches_are_replaced
),
87
cmocka_unit_test(
pattern_not_found__returns_original
),
88
};
89
90
return
cmocka_run_group_tests_name(
"searchandreplace"
, tests, NULL, NULL);
91
}
pattern_not_found__returns_original
static void pattern_not_found__returns_original(void **state)
Definition
test_search_and_replace.c:67
pass_any_null_param__returns_null
static void pass_any_null_param__returns_null(void **state)
Definition
test_search_and_replace.c:13
pass_any_empty_string__returns_null
static void pass_any_empty_string__returns_null(void **state)
Definition
test_search_and_replace.c:23
replace_single_char__one_time__match_is_replaced
static void replace_single_char__one_time__match_is_replaced(void **state)
Definition
test_search_and_replace.c:34
replace_longer_text__multiple_times__match_all_matches_are_replaced
static void replace_longer_text__multiple_times__match_all_matches_are_replaced(void **state)
Definition
test_search_and_replace.c:56
main
int main(void)
Definition
test_search_and_replace.c:79
replace_single_char__multiple_times__match_all_matches_are_replaced
static void replace_single_char__multiple_times__match_all_matches_are_replaced(void **state)
Definition
test_search_and_replace.c:45
searchandreplace
char * searchandreplace(const char *tosearch, const char *searchfor, const char *replacewith)
Read 'tosearch', replace all occurrences of 'searchfor' with 'replacewith' and return a pointer to th...
Definition
utils.c:42
utils.h
Generated by
1.9.8