File: test_wzd_string.c

package info (click to toggle)
wzdftpd 0.8.1-2etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 5,440 kB
  • ctags: 3,559
  • sloc: ansic: 40,580; sh: 9,306; lex: 2,082; makefile: 528; sql: 206; perl: 18
file content (165 lines) | stat: -rw-r--r-- 3,786 bytes parent folder | download | duplicates (4)
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
#include <string.h> /* memset */

#include <libwzd-core/wzd_structs.h>
#include <libwzd-core/wzd_string.h>

#include "test_common.h"

#define C1 0x12345678
#define C2 0x9abcdef0

#if 0
struct wzd_string_t {
  char * buffer;
  size_t length;
  size_t allocated;
};
#endif


int main(int argc, char *argv[])
{
  unsigned long c1 = C1;
  wzd_string_t * str, * str2;
  wzd_string_t * token;
  unsigned long c2 = C2;
  const char in1[] = "  variable =\tvalue:val2  \r\n";
  const char in2[] = "tl";
  const char ref1[] = "text 234\0";
  const char ref2[] = "text 234 blah\0";
  const char ref3[] = "foo text 234 blah\0";
  const char ref4[] = "wzdftpd\0";
  const char ref5[] = "variable\0";
  const char ref6[] = "=\0";
  const char ref7[] = "value\0";
  const char ref8[] = "val2\0";
  const char ref9[] = "test val 9\0";
  const char ref10[] = {0x74, 0xc3, 0xa9, 0x6c, 0xc3, 0xa0, 0xc3, 0xa7, 0xc3, 0xb6, 0x0};
  const char ref11[] = "tl";

  str = str_allocate();

  str_sprintf(str,"%s %d","text",234);
  if ( strcmp(ref1,str_tochar(str)) ) {
    fprintf(stderr, "sprintf not working\n");
    return 1;
  }
  if ( !str_checklength(str,7,8) ) {
    fprintf(stderr, "str_checklength not working\n");
    return 2;
  }

  str2 = str_dup(str);
  if ( strcmp(str_tochar(str),str_tochar(str2)) ) {
    fprintf(stderr, "str_tochar not working\n");
    return 3;
  }
  str_deallocate(str2);

  str2 = str_allocate();
  str_copy(str2,str);
  if ( strcmp(ref1,str_tochar(str2)) ) {
    fprintf(stderr, "str_copy not working\n");
    return 4;
  }

  str_append(str2," blah");
  if ( strcmp(ref2,str_tochar(str2)) ) {
    fprintf(stderr, "str_append not working\n");
    return 5;
  }

  str_prepend(str2,"foo ");
  if ( strcmp(ref3,str_tochar(str2)) ) {
    fprintf(stderr, "str_prepend not working\n");
    return 6;
  }

  str_append(str2," \r\n");
  str_prepend(str2,"\t ");
  str_trim(str2);
  if ( strcmp(ref3,str_tochar(str2)) ) {
    fprintf(stderr, "str_trim not working\n");
    return 7;
  }

  str_sprintf(str2,"wZdFtPd");
  str_tolower(str2);
  if ( strcmp(ref4,str_tochar(str2)) ) {
    fprintf(stderr, "str_tolower not working\n");
    return 8;
  }

  str_deallocate(str2);
  str2 = STR(in1);
  token = str_read_token(str2);
  if ( strcmp(ref5,str_tochar(token)) ) {
    fprintf(stderr, "str_read_token not working\n");
    return 9;
  }
  str_deallocate(token);
  token = str_read_token(str2);
  if ( strcmp(ref6,str_tochar(token)) ) {
    fprintf(stderr, "str_read_token not working\n");
    return 10;
  }
  str_deallocate(token);
  token = str_tok(str2,":");
  if ( strcmp(ref7,str_tochar(token)) ) {
    fprintf(stderr, "str_tok not working\n");
    return 11;
  }
  str_deallocate(token);
  token = str_read_token(str2);
  if ( strcmp(ref8,str_tochar(token)) ) {
    fprintf(stderr, "str_read_token not working\n");
    return 12;
  }

  str_store(token, "test val 9");
  if ( strcmp(ref9,str_tochar(token)) ) {
    fprintf(stderr, "str_store not working\n");
    return 12;
  }

  str_deallocate(token);

  fake_utf8();

  str_deallocate(str2);
  str2 = STR(in2);
  if (str_local_to_utf8(str2,"latin1")) {
    fprintf(stderr, "str_local_to_utf8 not working\n");
    return 13;
  }
  if ( strcmp(ref10,str_tochar(str2)) ) {
    fprintf(stderr, "str_local_to_utf8 returned crap\n");
    return 14;
  }
  if (str_utf8_to_local(str2,"latin1")) {
    fprintf(stderr, "str_utf8_to_local not working\n");
    return 15;
  }
  if ( strcmp(ref11,str_tochar(str2)) ) {
    fprintf(stderr, "str_utf8_to_local returned crap\n");
    return 16;
  }


  str_deallocate(str);
  str_deallocate(str2);

  fake_exit();


  if (c1 != C1) {
    fprintf(stderr, "c1 nuked !\n");
    return -1;
  }
  if (c2 != C2) {
    fprintf(stderr, "c2 nuked !\n");
    return -1;
  }

  return 0;
}