diff options
Diffstat (limited to 't')
| -rw-r--r-- | t/test_1.c | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/t/test_1.c b/t/test_1.c new file mode 100644 index 0000000..038f7bb --- /dev/null +++ b/t/test_1.c @@ -0,0 +1,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; +} |
