]> andersk Git - libyaml.git/blobdiff - tests/run-parser.c
Fix Emitter bugs and leaks.
[libyaml.git] / tests / run-parser.c
index 16f4ce15cc73a482306a0af7b6dc75ba12d05ce0..8c1a5dbc395cbc9713957282a28315089279a665 100644 (file)
@@ -7,39 +7,52 @@
 int
 main(int argc, char *argv[])
 {
-    FILE *file;
-    yaml_parser_t parser;
-    yaml_event_t event;
-    int done = 0;
-    int count = 0;
-
-    if (argc != 2) {
-        printf("Usage: %s file.yaml\n", argv[0]);
+    int number;
+
+    if (argc < 2) {
+        printf("Usage: %s file1.yaml ...\n", argv[0]);
         return 0;
     }
-    file = fopen(argv[1], "rb");
-    assert(file);
 
-    assert(yaml_parser_initialize(&parser));
+    for (number = 1; number < argc; number ++)
+    {
+        FILE *file;
+        yaml_parser_t parser;
+        yaml_event_t event;
+        int done = 0;
+        int count = 0;
+        int error = 0;
 
-    yaml_parser_set_input_file(&parser, file);
+        printf("[%d] Parsing '%s': ", number, argv[number]);
+        fflush(stdout);
 
-    while (!done)
-    {
-        assert(yaml_parser_parse(&parser, &event));
+        file = fopen(argv[number], "rb");
+        assert(file);
 
-        done = (event.type == YAML_STREAM_END_EVENT);
+        assert(yaml_parser_initialize(&parser));
 
-        yaml_event_delete(&event);
+        yaml_parser_set_input_file(&parser, file);
 
-        count ++;
-    }
+        while (!done)
+        {
+            if (!yaml_parser_parse(&parser, &event)) {
+                error = 1;
+                break;
+            }
 
-    yaml_parser_delete(&parser);
+            done = (event.type == YAML_STREAM_END_EVENT);
 
-    fclose(file);
+            yaml_event_delete(&event);
 
-    printf("Parsing the file '%s': %d events\n", argv[1], count);
+            count ++;
+        }
+
+        yaml_parser_delete(&parser);
+
+        assert(!fclose(file));
+
+        printf("%s (%d events)\n", (error ? "FAILURE" : "SUCCESS"), count);
+    }
 
     return 0;
 }
This page took 0.050319 seconds and 4 git commands to generate.