summaryrefslogtreecommitdiffstats
path: root/contrib/libyaml/tests/run-loader.c
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2013-03-04 11:27:41 +0000
committerbapt <bapt@FreeBSD.org>2013-03-04 11:27:41 +0000
commit6dc03862600c95a3a8c18e50f843a082be3a078c (patch)
tree5075db86cc8d854fdcdc49d9e8ab0a25c9741312 /contrib/libyaml/tests/run-loader.c
parent9ad2265733ae27758ebf470fc60be9e94434b5ac (diff)
parentd191df7e02a5d6cea2324e0b10bfed2a4e9f198c (diff)
downloadFreeBSD-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.c63
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;
+}
+
OpenPOWER on IntegriCloud