From: Felix Fietkau Date: Sun, 30 Aug 2009 13:37:22 +0000 (+0200) Subject: turn ucimap-example.c into a test case X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=commitdiff_plain;h=2be6befa78ee4b38681d23a9772434314eec3cf8 turn ucimap-example.c into a test case --- diff --git a/Makefile b/Makefile index 28053c0..57c0f0b 100644 --- a/Makefile +++ b/Makefile @@ -59,6 +59,9 @@ libuci.$(SHLIB_EXT): libuci-shared.o $(LINK) $(SHLIB_FLAGS) -o $(SHLIB_FILE) $^ $(LIBS) ln -sf $(SHLIB_FILE) $@ +ucimap-example: ucimap-example.c libuci.a libucimap.a + $(CC) $(CFLAGS) -I. -o $@ $^ + clean: rm -f uci uci-static *.[oa] *.so* *.dylib* uci_config.h @@ -77,7 +80,7 @@ install-bin: all $(MKDIR) -p $(DESTDIR)$(prefix)/bin $(INSTALL) -m0755 uci $(DESTDIR)$(prefix)/bin/ -test: all +test: all ucimap-example make -C test FORCE: ; diff --git a/test/config/network b/test/config/network new file mode 100644 index 0000000..ec57d7b --- /dev/null +++ b/test/config/network @@ -0,0 +1,19 @@ +config 'alias' 'a' + option 'interface' 'lan' + +config 'alias' 'b' + option 'interface' 'lan' + +config 'interface' 'lan' + option 'proto' 'static' + option 'ifname' 'eth0' + option 'test' '123' + option 'enabled' 'on' + list 'aliases' 'a' + list 'aliases' 'b' + option 'ipaddr' '2.3.4.5' + +config 'interface' 'wan' + option 'proto' 'dhcp' + option 'ifname' 'eth1' + diff --git a/test/references/ucimap_example.result b/test/references/ucimap_example.result new file mode 100644 index 0000000..d27e49e --- /dev/null +++ b/test/references/ucimap_example.result @@ -0,0 +1,14 @@ +New network section 'lan' + type: static + ifname: eth0 + ipaddr: 2.3.4.5 + test: 123 + enabled: on +New alias: b +New alias: a +New network section 'wan' + type: dhcp + ifname: eth1 + ipaddr: 0.0.0.0 + test: -1 + enabled: off diff --git a/test/tests.d/060-ucimap_example b/test/tests.d/060-ucimap_example new file mode 100644 index 0000000..c517637 --- /dev/null +++ b/test/tests.d/060-ucimap_example @@ -0,0 +1,5 @@ +test_ucimap_example() +{ + ( cd ..; ./ucimap-example ) > "${TMP_DIR}/ucimap_example.result" + assertSameFile "${TMP_DIR}/ucimap_example.result" "${REF_DIR}/ucimap_example.result" +} diff --git a/ucimap-example.c b/ucimap-example.c index baea550..157c32f 100644 --- a/ucimap-example.c +++ b/ucimap-example.c @@ -44,9 +44,8 @@ struct uci_alias { static int network_parse_ip(void *section, struct uci_optmap *om, union ucimap_data *data, const char *str) { - struct uci_network *net = section; unsigned char *target = (unsigned char *) data->s; - unsigned int tmp[4]; + int tmp[4]; int i; if (sscanf(str, "%d.%d.%d.%d", &tmp[0], &tmp[1], &tmp[2], &tmp[3]) != 4) @@ -220,7 +219,7 @@ int main(int argc, char **argv) { struct uci_context *ctx; struct uci_package *pkg; - struct list_head *p, *p2; + struct list_head *p; struct uci_network *net; struct uci_alias *alias; int i; @@ -229,6 +228,7 @@ int main(int argc, char **argv) ctx = uci_alloc_context(); ucimap_init(&network_map); + uci_set_confdir(ctx, "./test/config"); uci_load(ctx, "network", &pkg); ucimap_parse(&network_map, pkg); @@ -262,7 +262,6 @@ int main(int argc, char **argv) } -done: ucimap_cleanup(&network_map); uci_free_context(ctx);