diff options
Diffstat (limited to '')
-rw-r--r-- | web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c b/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c new file mode 100644 index 000000000..2c79e7ccf --- /dev/null +++ b/web/server/h2o/libh2o/deps/yaml/tests/run-scanner.c @@ -0,0 +1,63 @@ +#include <yaml.h> + +#include <stdlib.h> +#include <stdio.h> + +#ifdef NDEBUG +#undef NDEBUG +#endif +#include <assert.h> + +int +main(int argc, char *argv[]) +{ + int number; + + if (argc < 2) { + printf("Usage: %s file1.yaml ...\n", argv[0]); + return 0; + } + + 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; + + printf("[%d] Scanning '%s': ", number, argv[number]); + fflush(stdout); + + file = fopen(argv[number], "rb"); + assert(file); + + assert(yaml_parser_initialize(&parser)); + + yaml_parser_set_input_file(&parser, file); + + while (!done) + { + if (!yaml_parser_scan(&parser, &token)) { + error = 1; + break; + } + + done = (token.type == YAML_STREAM_END_TOKEN); + + yaml_token_delete(&token); + + count ++; + } + + yaml_parser_delete(&parser); + + assert(!fclose(file)); + + printf("%s (%d tokens)\n", (error ? "FAILURE" : "SUCCESS"), count); + } + + return 0; +} + |