From fdc3d1ab837a81d27ab10d0bf65f349263870154 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Wed, 25 Jan 2017 04:14:07 +0100 Subject: [PATCH] tests: add uninstall_element in testcli Test uninstall_element(). The commandline-specified counter allows isolating memleaks more closely, differentiating one-off vs. repeated leaks. Signed-off-by: David Lamparter --- tests/lib/cli/common_cli.c | 2 +- tests/lib/cli/common_cli.h | 2 +- tests/lib/cli/test_cli.c | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/lib/cli/common_cli.c b/tests/lib/cli/common_cli.c index 83196e04aa..104352f516 100644 --- a/tests/lib/cli/common_cli.c +++ b/tests/lib/cli/common_cli.c @@ -83,7 +83,7 @@ main (int argc, char **argv) vty_init (master); memory_init (); - test_init (); + test_init (argc, argv); vty_stdio (vty_do_exit); diff --git a/tests/lib/cli/common_cli.h b/tests/lib/cli/common_cli.h index 9c72b08e44..9e7fe99830 100644 --- a/tests/lib/cli/common_cli.h +++ b/tests/lib/cli/common_cli.h @@ -28,7 +28,7 @@ #include "command.h" /* function to be implemented by test */ -extern void test_init (void); +extern void test_init (int argc, char **argv); /* functions provided by common cli * (includes main()) diff --git a/tests/lib/cli/test_cli.c b/tests/lib/cli/test_cli.c index 1a316022e2..54b34bc799 100644 --- a/tests/lib/cli/test_cli.c +++ b/tests/lib/cli/test_cli.c @@ -38,8 +38,10 @@ DUMMY_DEFUN(cmd11, "alt a WORD"); DUMMY_DEFUN(cmd12, "alt a A.B.C.D"); DUMMY_DEFUN(cmd13, "alt a X:X::X:X"); -void test_init(void) +void test_init(int argc, char **argv) { + size_t repeat = argc > 1 ? strtoul(argv[1], NULL, 0) : 223; + install_element (ENABLE_NODE, &cmd0_cmd); install_element (ENABLE_NODE, &cmd1_cmd); install_element (ENABLE_NODE, &cmd2_cmd); @@ -53,4 +55,12 @@ void test_init(void) install_element (ENABLE_NODE, &cmd11_cmd); install_element (ENABLE_NODE, &cmd12_cmd); install_element (ENABLE_NODE, &cmd13_cmd); + for (size_t i = 0; i < repeat; i++) { + uninstall_element (ENABLE_NODE, &cmd5_cmd); + install_element (ENABLE_NODE, &cmd5_cmd); + } + for (size_t i = 0; i < repeat; i++) { + uninstall_element (ENABLE_NODE, &cmd13_cmd); + install_element (ENABLE_NODE, &cmd13_cmd); + } } -- 2.39.5