diff options
author | bapt <bapt@FreeBSD.org> | 2013-03-04 11:27:41 +0000 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2013-03-04 11:27:41 +0000 |
commit | 6dc03862600c95a3a8c18e50f843a082be3a078c (patch) | |
tree | 5075db86cc8d854fdcdc49d9e8ab0a25c9741312 /contrib/libyaml/tests/run-loader.c | |
parent | 9ad2265733ae27758ebf470fc60be9e94434b5ac (diff) | |
parent | d191df7e02a5d6cea2324e0b10bfed2a4e9f198c (diff) | |
download | FreeBSD-src-6dc03862600c95a3a8c18e50f843a082be3a078c.zip FreeBSD-src-6dc03862600c95a3a8c18e50f843a082be3a078c.tar.gz |
Import libyaml as libbsdyml (private brand name)
LibYAML is a YAML 1.1 parser and emitter under MIT license which will
soon be used by the pkg boostrap (usr.bin/pkg) and bhyve
Reviewed by: roberto, antoine
Diffstat (limited to 'contrib/libyaml/tests/run-loader.c')
-rw-r--r-- | contrib/libyaml/tests/run-loader.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/contrib/libyaml/tests/run-loader.c b/contrib/libyaml/tests/run-loader.c new file mode 100644 index 0000000..8c36b66 --- /dev/null +++ b/contrib/libyaml/tests/run-loader.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_document_t document; + int done = 0; + int count = 0; + int error = 0; + + printf("[%d] Loading '%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_load(&parser, &document)) { + error = 1; + break; + } + + done = (!yaml_document_get_root_node(&document)); + + yaml_document_delete(&document); + + if (!done) count ++; + } + + yaml_parser_delete(&parser); + + assert(!fclose(file)); + + printf("%s (%d documents)\n", (error ? "FAILURE" : "SUCCESS"), count); + } + + return 0; +} + |