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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
/* Test some good inputs
* Test 1: Basic, var
* Test 2: var w/ default value
*/
#include <stdio.h>
#include <ctemplates.h>
char t_1[] = "This is a <TMPL_VAR name=\"what\">!";
char c_1_1[] = "This is a template!";
char t_2[] = "This is a <TMPL_VAR name=\"missing\" default=\"program\">!";
char c_2_1[] = "This is a program!";
char t_3[] = "<TMPL_VAR name=\"what\"> starts with a tag.";
char c_3_1[] = "This starts with a tag.";
char t_4[] = "<TMPL_VAR name=\"missing\" default=\"That\"> starts with a tag.";
char c_4_1[] = "That starts with a tag.";
char t_5[] = "This ends with a <TMPL_VAR name=\"what\">";
char c_5_1[] = "This ends with a tag";
char t_6[] = "This ends with a <TMPL_VAR name=\"missing\" default=\"default tag\">";
char c_6_1[] = "This ends with a default tag";
char t_7[] = "Test loop<TMPL_LOOP name=\"loop\"><TMPL_VAR name=\"var\"><TMPL_END>!";
char c_7_1[] = "Test loop!";
char c_7_2[] = "Test loop one!";
char c_7_3[] = "Test loop one two three!";
char t_8[] = "Test if as check:<TMPL_IF name=\"var\" value=\"correct\"> Works!<TMPL_END>";
char c_8_1[] = "Test if as check: Works!";
char c_8_2[] = "Test if as check:";
char c_8_3[] = "Test if as check:";
char t_9[] = "Test if for existance:<TMPL_IF name=\"var\"> Exists!<TMPL_END>";
char c_9_1[] = "Test if for existance: Exists!";
char c_9_2[] = "Test if for existance:";
int main(){
struct TMPL_templates* t;
struct TMPL_varlist* vl;
char* ret;
size_t dummy;
/*Test 1*/
t = TMPL_alloc_template(t_1);
vl = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl,"what","template");
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_1_1) != 0){
fprintf(stderr,"Error in test file 1, test 1\n");
printf("Result should have been '%s'\n was '%s'\n",c_1_1,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
/*Test 2*/
t = TMPL_alloc_template(t_2);
vl = TMPL_alloc_varlist();
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_2_1) != 0){
fprintf(stderr,"Error in test file 1, test 2\n");
printf("Result should have been '%s'\n was '%s'\n",c_2_1,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
/*Test 3*/
t = TMPL_alloc_template(t_3);
vl = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl,"what","This");
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_3_1) != 0){
fprintf(stderr,"Error in test file 1, test 3\n");
printf("Result should have been '%s'\n was '%s'\n",c_3_1,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
/*Test 4*/
t = TMPL_alloc_template(t_4);
vl = TMPL_alloc_varlist();
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_4_1) != 0){
fprintf(stderr,"Error in test file 1, test 4\n");
printf("Result should have been '%s'\n was '%s'\n",c_4_1,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
/*Test 5*/
t = TMPL_alloc_template(t_5);
vl = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl,"what","tag");
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_5_1) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_5_1,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
/*Test 6*/
t = TMPL_alloc_template(t_6);
vl = TMPL_alloc_varlist();
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_6_1) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_6_1,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
/*Test 7*/
t = TMPL_alloc_template(t_7);
vl = TMPL_alloc_varlist();
{
struct TMPL_loop* l = TMPL_alloc_loop();
TMPL_add_loop_to_varlist(vl,"loop",l);
}
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_7_1) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_7_1,ret);
return -1;
}
TMPL_free_varlist(vl);
vl = TMPL_alloc_varlist();
{
struct TMPL_loop* l = TMPL_alloc_loop();
struct TMPL_varlist* vl_2 = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl_2,"var"," one");
TMPL_add_varlist_to_loop(l,vl_2);
TMPL_add_loop_to_varlist(vl,"loop",l);
}
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_7_2) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_7_1,ret);
return -1;
}
TMPL_free_varlist(vl);
vl = TMPL_alloc_varlist();
{
struct TMPL_loop* l = TMPL_alloc_loop();
struct TMPL_varlist* vl_2 = TMPL_alloc_varlist();
struct TMPL_varlist* vl_3 = TMPL_alloc_varlist();
struct TMPL_varlist* vl_4 = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl_2,"var"," one");
TMPL_add_var_to_varlist(vl_3,"var"," two");
TMPL_add_var_to_varlist(vl_4,"var"," three");
TMPL_add_varlist_to_loop(l,vl_2);
TMPL_add_varlist_to_loop(l,vl_3);
TMPL_add_varlist_to_loop(l,vl_4);
TMPL_add_loop_to_varlist(vl,"loop",l);
}
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_7_3) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_7_1,ret);
return -1;
}
TMPL_free_varlist(vl);
TMPL_free_template(t);
/*Test 8*/
t = TMPL_alloc_template(t_8);
vl = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl,"var","correct");
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_8_1) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_8_1,ret);
return -1;
}
TMPL_free_varlist(vl);
vl = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl,"var","incorrect");
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_8_2) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_8_2,ret);
return -1;
}
TMPL_free_varlist(vl);
vl = TMPL_alloc_varlist();
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_8_3) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_8_3,ret);
return -1;
}
TMPL_free_template(t);
TMPL_free_varlist(vl);
t = TMPL_alloc_template(t_9);
vl = TMPL_alloc_varlist();
TMPL_add_var_to_varlist(vl,"var","thing");
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_9_1) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_9_1,ret);
return -1;
}
TMPL_free_varlist(vl);
vl = TMPL_alloc_varlist();
ret = TMPL_render(t,vl,&dummy);
if(strcmp(ret,c_9_2) != 0){
fprintf(stderr, "Error in test file 1, test 5\n");
printf("Result should have been '%s'\n was '%s'\n",c_9_1,ret);
return -1;
}
TMPL_free_varlist(vl);
TMPL_free_template(t);
return 0;
}
|