[go: up one dir, main page]

Menu

[r384]: / trunk / src / test_common.c  Maximize  Restore  History

Download this file

78 lines (63 with data), 1.8 kB

 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
/* gcc -DTESTING -g -I.. -Wall -Werror test_common.c common.c && valgrind --leak-check=yes --show-reachable=yes ./a.out */
#include "common.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(
)
{
char t0[64];
char t1[64];
char *t2;
#define MATCH2(_f_, _fn_, _i0_, _i1_, _r_) \
if ((_f_(_i0_, _i1_) == 0) != _r_) { \
printf("%s fails!\n", _fn_); \
}
#define MATCH3(_f_, _fn_, _i0_, _i1_, _n_, _r_) \
if ((_f_(_i0_, _i1_, _n_) == 0) != _r_) { \
printf("%s fails!\n", _fn_); \
}
#define COMPARE(_fn_, _i0_, _i1_, _r_) \
if ((strcmp(_i0_, _i1_) == 0) != _r_) { \
printf("%s fails!\n", _fn_); \
}
sprintf(t0, "testing");
sprintf(t1, "testing");
/* "testing", "testing" */
MATCH2(xstrcmp, "xstrcmp", t0, t1, 1);
sprintf(t1, "testXXX");
/* "testing", "testXXX" */
MATCH2(xstrcmp, "xstrcmp", t0, t1, 0);
/* "testing", "testXXX" */
MATCH3(xstrncmp, "xstrncmp", t0, t1, 4, 1);
/* "testing", "testXXX" */
MATCH3(xstrncmp, "xstrncmp", t0, t1, 6, 0);
/* "testing", "testXXX" */
MATCH2(xstrcasecmp, "xstrcasecmp", t0, t1, 0);
sprintf(t1, "TeStInG");
/* "testing", "TeStInG" */
MATCH2(xstrcasecmp, "xstrcasecmp", t0, t1, 1);
sprintf(t1, "TeStIXXX");
/* "testing", "TeStIXXX" */
MATCH3(xstrncasecmp, "xstrncasecmp", t0, t1, 6, 0);
MATCH3(xstrncasecmp, "xstrncasecmp", t0, t1, 4, 1);
xstrcpy(t1, t0);
/* "testing", "testing" */
COMPARE("xstrcpy", t0, t1, 1);
xstrncpy(t1, "TESTING", 4);
/* "testing", "TESTing" */
COMPARE("xstrncpy", t1, "TESTing", 1);
t2 = xstrdup(t0);
/* "testing", "testing" */
COMPARE("xstrdup", t0, t2, 1);
/* "testing", "TESTing" */
COMPARE("xstrdup", t1, t2, 0);
xfree(t2);
t2 = xmalloc(16);
xfree(t2);
t2 = calloc(16, 16);
t2 = xrealloc(t2, 128);
xfree(t2);
return 0;
}