Ignore:
Timestamp:
12/27/07 16:11:27 (6 years ago)
Author:
xi
Message:

Fixed bugs and updated tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libyaml/trunk/tests/run-parser.c

    r242 r265  
    1212main(int argc, char *argv[]) 
    1313{ 
    14     int number; 
     14    int idx; 
    1515 
    1616    if (argc < 2) { 
     
    1919    } 
    2020 
    21     for (number = 1; number < argc; number ++) 
     21    for (idx = 1; idx < argc; idx ++) 
    2222    { 
    2323        FILE *file; 
    24         yaml_parser_t parser; 
     24        yaml_parser_t *parser; 
    2525        yaml_event_t event; 
    26         int done = 0; 
     26        int failed = 0; 
    2727        int count = 0; 
    28         int error = 0; 
    2928 
    30         printf("[%d] Parsing '%s': ", number, argv[number]); 
     29        printf("[%d] Parsing '%s': ", idx, argv[idx]); 
    3130        fflush(stdout); 
    3231 
    33         file = fopen(argv[number], "rb"); 
     32        file = fopen(argv[idx], "rb"); 
    3433        assert(file); 
    3534 
    36         assert(yaml_parser_initialize(&parser)); 
     35        parser = yaml_parser_new(); 
     36        assert(parser); 
    3737 
    38         yaml_parser_set_input_file(&parser, file); 
     38        yaml_parser_set_file_reader(parser, file); 
    3939 
    40         while (!done) 
     40        while (1) 
    4141        { 
    42             if (!yaml_parser_parse(&parser, &event)) { 
    43                 error = 1; 
     42            if (!yaml_parser_parse_event(parser, &event)) { 
     43                failed = 1; 
    4444                break; 
    4545            } 
    4646 
    47             done = (event.type == YAML_STREAM_END_EVENT); 
     47            if (event.type == YAML_NO_EVENT) 
     48                break; 
    4849 
    49             yaml_event_delete(&event); 
     50            yaml_event_destroy(&event); 
    5051 
    5152            count ++; 
    5253        } 
    5354 
    54         yaml_parser_delete(&parser); 
     55        if (!failed) { 
     56            printf("SUCCESS (%d tokens)\n", count); 
     57        } 
     58        else { 
     59            yaml_error_t error; 
     60            char message[256]; 
     61            yaml_parser_get_error(parser, &error); 
     62            yaml_error_message(&error, message, 256); 
     63            printf("FAILURE (%d events)\n -> %s\n", count, message); 
     64        } 
    5565 
    56         assert(!fclose(file)); 
     66        yaml_parser_delete(parser); 
    5767 
    58         printf("%s (%d events)\n", (error ? "FAILURE" : "SUCCESS"), count); 
     68        fclose(file); 
    5969    } 
    6070 
Note: See TracChangeset for help on using the changeset viewer.