aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2018-01-05 20:07:03 -0500
committerAlexander Pickering <alexandermpickering@gmail.com>2018-01-05 20:07:03 -0500
commit59c84b0460418983b0e655fd9fbba34e19b10291 (patch)
tree21dce8b7a1f6c3f4e2eaab3180866f609c5d56d5 /t
parent9c7882627fd28c060f53d86e194fb864302a347c (diff)
downloadlibctemplates-59c84b0460418983b0e655fd9fbba34e19b10291.tar.gz
libctemplates-59c84b0460418983b0e655fd9fbba34e19b10291.tar.bz2
libctemplates-59c84b0460418983b0e655fd9fbba34e19b10291.zip
Started writing unit tests
Added some tests for good input. Also fixed a bug where an empty loop would crash.
Diffstat (limited to 't')
-rw-r--r--t/test_1.c228
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;
+}