Changeset 208 for libyaml/trunk/tests/test-reader.c
- Timestamp:
- 07/21/06 09:50:32 (7 years ago)
- File:
-
- 1 edited
-
libyaml/trunk/tests/test-reader.c (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libyaml/trunk/tests/test-reader.c
r200 r208 1 1 #include <yaml.h> 2 3 YAML_DECLARE(int) 4 yaml_parser_update_buffer(yaml_parser_t *parser, size_t length); 2 5 3 6 #include <stdlib.h> … … 102 105 {"bom (utf-8)", "\xef\xbb\xbfHi is \xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82!", 13}, 103 106 {"bom (utf-16-le)", "\xff\xfeH\x00i\x00 \x00i\x00s\x00 \x00\x1f\x04@\x04""8\x04""2\x04""5\x04""B\x04!", 13}, 104 {"bom (utf-16-be)", "\xfe\xff\x00H\x00i\x00 \x00i\x00s\x00 \x04\x1f\x04@\x04""8\x04""2\x04""5\x04""B!", 13} 107 {"bom (utf-16-be)", "\xfe\xff\x00H\x00i\x00 \x00i\x00s\x00 \x04\x1f\x04@\x04""8\x04""2\x04""5\x04""B!", 13}, 108 {NULL, NULL, 0} 105 109 }; 106 110 … … 109 113 int check_utf8_sequences(void) 110 114 { 111 yaml_parser_t *parser;115 yaml_parser_t parser; 112 116 int failed = 0; 113 117 int k; … … 122 126 while(1) { 123 127 while (*end != '|' && *end != '!') end++; 124 parser = yaml_parser_new(); 125 assert(parser); 126 yaml_parser_set_input_string(parser, (unsigned char *)start, end-start); 127 result = yaml_parser_update_buffer(parser, end-start); 128 yaml_parser_initialize(&parser); 129 yaml_parser_set_input_string(&parser, (unsigned char *)start, end-start); 130 result = yaml_parser_update_buffer(&parser, end-start); 128 131 if (result != check) { 129 132 printf("\t\t- "); … … 133 136 printf("\t\t+ "); 134 137 } 135 if (!parser ->error) {138 if (!parser.error) { 136 139 printf("(no error)\n"); 137 140 } 138 else if (parser ->error == YAML_READER_ERROR) {139 if (parser ->problem_value != -1) {141 else if (parser.error == YAML_READER_ERROR) { 142 if (parser.problem_value != -1) { 140 143 printf("(reader error: %s: #%X at %d)\n", 141 parser ->problem, parser->problem_value, parser->problem_offset);144 parser.problem, parser.problem_value, parser.problem_offset); 142 145 } 143 146 else { 144 147 printf("(reader error: %s at %d)\n", 145 parser ->problem, parser->problem_offset);148 parser.problem, parser.problem_offset); 146 149 } 147 150 } 148 151 if (*end == '!') break; 149 152 start = ++end; 150 yaml_parser_delete( parser);153 yaml_parser_delete(&parser); 151 154 }; 152 155 printf("\n"); … … 158 161 int check_boms(void) 159 162 { 160 yaml_parser_t *parser;163 yaml_parser_t parser; 161 164 int failed = 0; 162 165 int k; … … 170 173 while (*end != '!') end++; 171 174 printf("\t%s: ", title); 172 parser = yaml_parser_new(); 173 assert(parser); 174 yaml_parser_set_input_string(parser, (unsigned char *)start, end-start); 175 result = yaml_parser_update_buffer(parser, end-start); 175 yaml_parser_initialize(&parser); 176 yaml_parser_set_input_string(&parser, (unsigned char *)start, end-start); 177 result = yaml_parser_update_buffer(&parser, end-start); 176 178 if (!result) { 177 printf("- (reader error: %s at %d)\n", parser ->problem, parser->problem_offset);179 printf("- (reader error: %s at %d)\n", parser.problem, parser.problem_offset); 178 180 failed++; 179 181 } 180 182 else { 181 if (parser ->unread != check) {182 printf("- (length=%d while expected length=%d)\n", parser ->unread, check);183 if (parser.unread != check) { 184 printf("- (length=%d while expected length=%d)\n", parser.unread, check); 183 185 failed++; 184 186 } 185 else if (memcmp(parser ->buffer, bom_original, check) != 0) {186 printf("- (value '%s' does not equal to the original value '%s')\n", parser ->buffer, bom_original);187 else if (memcmp(parser.buffer.start, bom_original, check) != 0) { 188 printf("- (value '%s' does not equal to the original value '%s')\n", parser.buffer.start, bom_original); 187 189 failed++; 188 190 } … … 191 193 } 192 194 } 193 yaml_parser_delete( parser);195 yaml_parser_delete(&parser); 194 196 } 195 197 printf("checking boms: %d fail(s)\n", failed); … … 201 203 int check_long_utf8(void) 202 204 { 203 yaml_parser_t *parser;205 yaml_parser_t parser; 204 206 int k = 0; 205 207 int j; … … 222 224 } 223 225 } 224 parser = yaml_parser_new(); 225 assert(parser); 226 yaml_parser_set_input_string(parser, buffer, 3+LONG*2); 226 yaml_parser_initialize(&parser); 227 yaml_parser_set_input_string(&parser, buffer, 3+LONG*2); 227 228 for (k = 0; k < LONG; k++) { 228 if (!parser ->unread) {229 if (!yaml_parser_update_buffer( parser, 1)) {230 printf("\treader error: %s at %d\n", parser ->problem, parser->problem_offset);229 if (!parser.unread) { 230 if (!yaml_parser_update_buffer(&parser, 1)) { 231 printf("\treader error: %s at %d\n", parser.problem, parser.problem_offset); 231 232 failed = 1; 232 233 break; 233 234 } 234 235 } 235 if (!parser ->unread) {236 if (!parser.unread) { 236 237 printf("\tnot enough characters at %d\n", k); 237 238 failed = 1; … … 246 247 ch1 = '\xaf'; 247 248 } 248 if (parser ->pointer[0] != ch0 || parser->pointer[1] != ch1) {249 if (parser.buffer.pointer[0] != ch0 || parser.buffer.pointer[1] != ch1) { 249 250 printf("\tincorrect UTF-8 sequence: %X %X instead of %X %X\n", 250 (int)parser ->pointer[0], (int)parser->pointer[1],251 (int)parser.buffer.pointer[0], (int)parser.buffer.pointer[1], 251 252 (int)ch0, (int)ch1); 252 253 failed = 1; 253 254 break; 254 255 } 255 parser ->pointer += 2;256 parser ->unread -= 1;256 parser.buffer.pointer += 2; 257 parser.unread -= 1; 257 258 } 258 259 if (!failed) { 259 if (!yaml_parser_update_buffer( parser, 1)) {260 printf("\treader error: %s at %d\n", parser ->problem, parser->problem_offset);261 failed = 1; 262 } 263 else if (parser ->pointer[0] != '\0') {264 printf("\texpected NUL, found %X (eof=%d, unread=%d)\n", (int)parser ->pointer[0], parser->eof, parser->unread);265 failed = 1; 266 } 267 } 268 yaml_parser_delete( parser);260 if (!yaml_parser_update_buffer(&parser, 1)) { 261 printf("\treader error: %s at %d\n", parser.problem, parser.problem_offset); 262 failed = 1; 263 } 264 else if (parser.buffer.pointer[0] != '\0') { 265 printf("\texpected NUL, found %X (eof=%d, unread=%d)\n", (int)parser.buffer.pointer[0], parser.eof, parser.unread); 266 failed = 1; 267 } 268 } 269 yaml_parser_delete(&parser); 269 270 free(buffer); 270 271 printf("checking a long utf8 sequence: %d fail(s)\n", failed); … … 274 275 int check_long_utf16(void) 275 276 { 276 yaml_parser_t *parser;277 yaml_parser_t parser; 277 278 int k = 0; 278 279 int j; … … 294 295 } 295 296 } 296 parser = yaml_parser_new(); 297 assert(parser); 298 yaml_parser_set_input_string(parser, buffer, 2+LONG*2); 297 yaml_parser_initialize(&parser); 298 yaml_parser_set_input_string(&parser, buffer, 2+LONG*2); 299 299 for (k = 0; k < LONG; k++) { 300 if (!parser ->unread) {301 if (!yaml_parser_update_buffer( parser, 1)) {302 printf("\treader error: %s at %d\n", parser ->problem, parser->problem_offset);300 if (!parser.unread) { 301 if (!yaml_parser_update_buffer(&parser, 1)) { 302 printf("\treader error: %s at %d\n", parser.problem, parser.problem_offset); 303 303 failed = 1; 304 304 break; 305 305 } 306 306 } 307 if (!parser ->unread) {307 if (!parser.unread) { 308 308 printf("\tnot enough characters at %d\n", k); 309 309 failed = 1; … … 318 318 ch1 = '\xaf'; 319 319 } 320 if (parser ->pointer[0] != ch0 || parser->pointer[1] != ch1) {320 if (parser.buffer.pointer[0] != ch0 || parser.buffer.pointer[1] != ch1) { 321 321 printf("\tincorrect UTF-8 sequence: %X %X instead of %X %X\n", 322 (int)parser ->pointer[0], (int)parser->pointer[1],322 (int)parser.buffer.pointer[0], (int)parser.buffer.pointer[1], 323 323 (int)ch0, (int)ch1); 324 324 failed = 1; 325 325 break; 326 326 } 327 parser ->pointer += 2;328 parser ->unread -= 1;327 parser.buffer.pointer += 2; 328 parser.unread -= 1; 329 329 } 330 330 if (!failed) { 331 if (!yaml_parser_update_buffer( parser, 1)) {332 printf("\treader error: %s at %d\n", parser ->problem, parser->problem_offset);333 failed = 1; 334 } 335 else if (parser ->pointer[0] != '\0') {336 printf("\texpected NUL, found %X (eof=%d, unread=%d)\n", (int)parser ->pointer[0], parser->eof, parser->unread);337 failed = 1; 338 } 339 } 340 yaml_parser_delete( parser);331 if (!yaml_parser_update_buffer(&parser, 1)) { 332 printf("\treader error: %s at %d\n", parser.problem, parser.problem_offset); 333 failed = 1; 334 } 335 else if (parser.buffer.pointer[0] != '\0') { 336 printf("\texpected NUL, found %X (eof=%d, unread=%d)\n", (int)parser.buffer.pointer[0], parser.eof, parser.unread); 337 failed = 1; 338 } 339 } 340 yaml_parser_delete(&parser); 341 341 free(buffer); 342 342 printf("checking a long utf16 sequence: %d fail(s)\n", failed);
Note: See TracChangeset
for help on using the changeset viewer.
