From a9a27bd4587282e27e108b1d4f3f4cbf2b67ba57 Mon Sep 17 00:00:00 2001 From: Phil Shafer Date: Wed, 30 Jul 2014 14:54:08 -0400 Subject: [PATCH] mv files --- tests/core/test_06.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/core/test_06.c diff --git a/tests/core/test_06.c b/tests/core/test_06.c new file mode 100644 index 00000000..e511f6cb --- /dev/null +++ b/tests/core/test_06.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2014, Juniper Networks, Inc. + * All rights reserved. + * This SOFTWARE is licensed under the LICENSE provided in the + * ../Copyright file. By downloading, installing, copying, or otherwise + * using the SOFTWARE, you agree to be bound by the terms of that + * LICENSE. + * Phil Shafer, July 2014 + */ + +#include +#include +#include + +#include "libxo.h" + +xo_info_t info[] = { + { "employee", "object", "Employee data" }, + { "first-name", "string", "First name of employee" }, + { "last-name", "string", "Last name of employee" }, + { "department", "number", "Department number" }, +}; +int info_count = (sizeof(info) / sizeof(info[0])); + +int +main (int argc, char **argv) +{ + struct employee { + const char *e_first; + const char *e_last; + unsigned e_dept; + } employees[] = { + { "Terry", "Jones", 660 }, + { "Leslie", "Patterson", 341 }, + { "Ashley", "Smith", 1440 }, + { NULL, NULL } + }, *ep = employees; + + xo_set_info(NULL, info, info_count); + + xo_set_flags(NULL, XOF_DTRT); + + xo_open_container("employees"); + xo_open_list("employee"); + + for ( ; ep->e_first; ep++) { + xo_open_instance("employee"); + xo_emit("{:first-name} {:last-name} works in dept #{:department/%u}\n", + ep->e_first, ep->e_last, ep->e_dept); + xo_close_instance_d(); + } + + xo_close_list_d(); + xo_close_container_d(); + + return 0; +}