1 /***************************************************************************
2 begin : Mon Feb 10 2020
3 copyright : (C) 2020 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * *
8 * This library is free software; you can redistribute it and/or *
9 * modify it under the terms of the GNU Lesser General Public *
10 * License as published by the Free Software Foundation; either *
11 * version 2.1 of the License, or (at your option) any later version. *
12 * *
13 * This library is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16 * Lesser General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU Lesser General Public *
19 * License along with this library; if not, write to the Free Software *
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
21 * MA 02111-1307 USA *
22 * *
23 ***************************************************************************/
24
25
26 /* This file is included by "buffer.c" */
27
28
29 #include <gwenhywfar/testframework.h>
30 #include "buffer-t.h"
31
32
33 #ifdef GWENHYWFAR_ENABLE_TESTCODE
34
35
36
37 /* ------------------------------------------------------------------------------------------------
38 * forward declarations
39 * ------------------------------------------------------------------------------------------------
40 */
41
42 static int GWENHYWFAR_CB test1(GWEN_TEST_MODULE *mod);
43 static int GWENHYWFAR_CB test2(GWEN_TEST_MODULE *mod);
44
45
46
47
48
49 /* ------------------------------------------------------------------------------------------------
50 * implementations
51 * ------------------------------------------------------------------------------------------------
52 */
53
54
GWEN_Buffer_AddTests(GWEN_TEST_MODULE * mod)55 int GWEN_Buffer_AddTests(GWEN_TEST_MODULE *mod)
56 {
57 GWEN_TEST_MODULE *newMod;
58
59 newMod=GWEN_Test_Module_AddModule(mod, "GWEN_Buffer", NULL);
60
61 GWEN_Test_Module_AddTest(newMod, "append args (simple)", test1, NULL);
62 GWEN_Test_Module_AddTest(newMod, "append args (long string)", test2, NULL);
63
64 return 0;
65 }
66
67
68
test1(GWEN_UNUSED GWEN_TEST_MODULE * mod)69 int test1(GWEN_UNUSED GWEN_TEST_MODULE *mod)
70 {
71 GWEN_BUFFER *buf;
72 int rv;
73
74 buf=GWEN_Buffer_new(0, 16, 0, 1);
75 rv=GWEN_Buffer_AppendArgs(buf, "%s-%d", "TESTSTRING", 1234);
76 if (rv<0) {
77 DBG_ERROR(GWEN_LOGDOMAIN, "Could not append args");
78 GWEN_Buffer_free(buf);
79 return GWEN_ERROR_GENERIC;
80 }
81
82 if (strcmp(GWEN_Buffer_GetStart(buf), "TESTSTRING-1234")!=0) {
83 DBG_ERROR(GWEN_LOGDOMAIN, "Unexpected string in buffer (%s)", GWEN_Buffer_GetStart(buf));
84 GWEN_Buffer_free(buf);
85 return GWEN_ERROR_GENERIC;
86 }
87 GWEN_Buffer_free(buf);
88
89 return 0;
90 }
91
92
93
test2(GWEN_UNUSED GWEN_TEST_MODULE * mod)94 int test2(GWEN_UNUSED GWEN_TEST_MODULE *mod)
95 {
96 GWEN_BUFFER *buf;
97 int rv;
98 static const char *testString=
99 "0123456789"
100 "0123456789"
101 "0123456789"
102 "0123456789"
103 "0123456789"
104 "0123456789"
105 "0123456789"
106 "0123456789"
107 "0123456789"
108 "0123456789"
109 "0123456789"
110 "0123456789"
111 "0123456789"
112 "0123456789";
113
114 buf=GWEN_Buffer_new(0, 16, 0, 1);
115 rv=GWEN_Buffer_AppendArgs(buf, "%s", testString);
116 if (rv<0) {
117 DBG_ERROR(GWEN_LOGDOMAIN, "Could not append args");
118 GWEN_Buffer_free(buf);
119 return GWEN_ERROR_GENERIC;
120 }
121
122 if (strcmp(GWEN_Buffer_GetStart(buf), testString)!=0) {
123 DBG_ERROR(GWEN_LOGDOMAIN, "Unexpected string in buffer (%s)", GWEN_Buffer_GetStart(buf));
124 GWEN_Buffer_free(buf);
125 return GWEN_ERROR_GENERIC;
126 }
127 GWEN_Buffer_free(buf);
128
129 return 0;
130 }
131
132
133
134
135
136
137
138 #else
139
GWEN_Buffer_AddTests(GWEN_UNUSED GWEN_TEST_MODULE * mod)140 int GWEN_Buffer_AddTests(GWEN_UNUSED GWEN_TEST_MODULE *mod)
141 {
142 DBG_ERROR(GWEN_LOGDOMAIN, "Gwenhywfar was compiled without test code enabled.");
143 return GWEN_ERROR_GENERIC;
144 }
145
146
147 #endif
148
149