summaryrefslogtreecommitdiff
path: root/tests/run-scanner.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-scanner.c')
-rw-r--r--tests/run-scanner.c57
1 files changed, 35 insertions, 22 deletions
diff --git a/tests/run-scanner.c b/tests/run-scanner.c
index e3a67f2..2c8d33e 100644
--- a/tests/run-scanner.c
+++ b/tests/run-scanner.c
@@ -7,39 +7,52 @@
int
main(int argc, char *argv[])
{
- FILE *file;
- yaml_parser_t parser;
- yaml_token_t token;
- 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_token_t token;
+ int done = 0;
+ int count = 0;
+ int error = 0;
- yaml_parser_set_input_file(&parser, file);
+ printf("[%d] Scanning '%s': ", number, argv[number]);
+ fflush(stdout);
- while (!done)
- {
- assert(yaml_parser_scan(&parser, &token));
+ file = fopen(argv[number], "rb");
+ assert(file);
- done = (token.type == YAML_STREAM_END_TOKEN);
+ assert(yaml_parser_initialize(&parser));
- yaml_token_delete(&token);
+ yaml_parser_set_input_file(&parser, file);
- count ++;
- }
+ while (!done)
+ {
+ if (!yaml_parser_scan(&parser, &token)) {
+ error = 1;
+ break;
+ }
- yaml_parser_delete(&parser);
+ done = (token.type == YAML_STREAM_END_TOKEN);
- fclose(file);
+ yaml_token_delete(&token);
- printf("Parsing the file '%s': %d tokens\n", argv[1], count);
+ count ++;
+ }
+
+ yaml_parser_delete(&parser);
+
+ assert(!fclose(file));
+
+ printf("%s (%d tokens)\n", (error ? "FAILURE" : "SUCCESS"), count);
+ }
return 0;
}