[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
cron2 has submitted this change. ( http://gerrit.openvpn.net/c/openvpn/+/446?usp=email ) Change subject: Turn dead list test code into unit test .. Turn dead list test code into unit test Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Signed-off-by: Arne Schwabe Acked-by: Frank Lichtenheld Message-Id: <20240209105902.14506-1-fr...@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg28201.html Signed-off-by: Gert Doering --- M CMakeLists.txt M src/openvpn/init.c M src/openvpn/list.c M src/openvpn/list.h M tests/unit_tests/openvpn/Makefile.am M tests/unit_tests/openvpn/test_misc.c 6 files changed, 210 insertions(+), 193 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fdd2b01..3127611 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -747,6 +747,7 @@ tests/unit_tests/openvpn/mock_get_random.c src/openvpn/options_util.c src/openvpn/ssl_util.c +src/openvpn/list.c ) target_sources(test_ncp PRIVATE diff --git a/src/openvpn/init.c b/src/openvpn/init.c index c5cc154..52b4308 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -865,11 +865,6 @@ return false; #endif -#ifdef LIST_TEST -list_test(); -return false; -#endif - #ifdef IFCONFIG_POOL_TEST ifconfig_pool_test(0x0A010004, 0x0A0100FF); return false; diff --git a/src/openvpn/list.c b/src/openvpn/list.c index 480f39d..dc4b1df 100644 --- a/src/openvpn/list.c +++ b/src/openvpn/list.c @@ -326,185 +326,6 @@ } -#ifdef LIST_TEST - -/* - * Test the hash code by implementing a simple - * word frequency algorithm. - */ - -struct word -{ -const char *word; -int n; -}; - -static uint32_t -word_hash_function(const void *key, uint32_t iv) -{ -const char *str = (const char *) key; -const int len = strlen(str); -return hash_func((const uint8_t *)str, len, iv); -} - -static bool -word_compare_function(const void *key1, const void *key2) -{ -return strcmp((const char *)key1, (const char *)key2) == 0; -} - -static void -print_nhash(struct hash *hash) -{ -struct hash_iterator hi; -struct hash_element *he; -int count = 0; - -hash_iterator_init(hash, , true); - -while ((he = hash_iterator_next())) -{ -printf("%d ", (int) he->value); -++count; -} -printf("\n"); - -hash_iterator_free(); -ASSERT(count == hash_n_elements(hash)); -} - -static void -rmhash(struct hash *hash, const char *word) -{ -hash_remove(hash, word); -} - -void -list_test(void) -{ -openvpn_thread_init(); - -{ -struct gc_arena gc = gc_new(); -struct hash *hash = hash_init(1, get_random(), word_hash_function, word_compare_function); -struct hash *nhash = hash_init(256, get_random(), word_hash_function, word_compare_function); - -printf("hash_init n_buckets=%d mask=0x%08x\n", hash->n_buckets, hash->mask); - -/* parse words from stdin */ -while (true) -{ -char buf[256]; -char wordbuf[256]; -int wbi; -int bi; -char c; - -if (!fgets(buf, sizeof(buf), stdin)) -{ -break; -} - -bi = wbi = 0; -do -{ -c = buf[bi++]; -if (isalnum(c) || c == '_') -{ -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = c; -} -else -{ -if (wbi) -{ -struct word *w; -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = '\0'; - -/* word is parsed from stdin */ - -/* does it already exist in table? */ -w = (struct word *) hash_lookup(hash, wordbuf); - -if (w) -{ -/* yes, increment count */ -++w->n; -} -else -{ -/* no, make a new object */ -ALLOC_OBJ_GC(w, struct word, ); -w->word = string_alloc(wordbuf, ); -w->n = 1; -ASSERT(hash_add(hash, w->word, w, false)); -ASSERT(hash_add(nhash, w->word, (void *) ((random() & 0x0F) + 1), false)); -} -} -wbi = 0; -} -} while (c); -} - -#if 1 -/* remove some words from the table */ -{ -rmhash(hash, "true"); -rmhash(hash, "false"); -} -#endif - -/* output contents of hash table */ -
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
cron2 has uploaded a new patch set (#6) to the change originally created by plaisthos. ( http://gerrit.openvpn.net/c/openvpn/+/446?usp=email ) The following approvals got outdated and were removed: Code-Review+2 by flichtenheld Change subject: Turn dead list test code into unit test .. Turn dead list test code into unit test Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Signed-off-by: Arne Schwabe Acked-by: Frank Lichtenheld Message-Id: <20240209105902.14506-1-fr...@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg28201.html Signed-off-by: Gert Doering --- M CMakeLists.txt M src/openvpn/init.c M src/openvpn/list.c M src/openvpn/list.h M tests/unit_tests/openvpn/Makefile.am M tests/unit_tests/openvpn/test_misc.c 6 files changed, 210 insertions(+), 193 deletions(-) git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/46/446/6 diff --git a/CMakeLists.txt b/CMakeLists.txt index fdd2b01..3127611 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -747,6 +747,7 @@ tests/unit_tests/openvpn/mock_get_random.c src/openvpn/options_util.c src/openvpn/ssl_util.c +src/openvpn/list.c ) target_sources(test_ncp PRIVATE diff --git a/src/openvpn/init.c b/src/openvpn/init.c index c5cc154..52b4308 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -865,11 +865,6 @@ return false; #endif -#ifdef LIST_TEST -list_test(); -return false; -#endif - #ifdef IFCONFIG_POOL_TEST ifconfig_pool_test(0x0A010004, 0x0A0100FF); return false; diff --git a/src/openvpn/list.c b/src/openvpn/list.c index 480f39d..dc4b1df 100644 --- a/src/openvpn/list.c +++ b/src/openvpn/list.c @@ -326,185 +326,6 @@ } -#ifdef LIST_TEST - -/* - * Test the hash code by implementing a simple - * word frequency algorithm. - */ - -struct word -{ -const char *word; -int n; -}; - -static uint32_t -word_hash_function(const void *key, uint32_t iv) -{ -const char *str = (const char *) key; -const int len = strlen(str); -return hash_func((const uint8_t *)str, len, iv); -} - -static bool -word_compare_function(const void *key1, const void *key2) -{ -return strcmp((const char *)key1, (const char *)key2) == 0; -} - -static void -print_nhash(struct hash *hash) -{ -struct hash_iterator hi; -struct hash_element *he; -int count = 0; - -hash_iterator_init(hash, , true); - -while ((he = hash_iterator_next())) -{ -printf("%d ", (int) he->value); -++count; -} -printf("\n"); - -hash_iterator_free(); -ASSERT(count == hash_n_elements(hash)); -} - -static void -rmhash(struct hash *hash, const char *word) -{ -hash_remove(hash, word); -} - -void -list_test(void) -{ -openvpn_thread_init(); - -{ -struct gc_arena gc = gc_new(); -struct hash *hash = hash_init(1, get_random(), word_hash_function, word_compare_function); -struct hash *nhash = hash_init(256, get_random(), word_hash_function, word_compare_function); - -printf("hash_init n_buckets=%d mask=0x%08x\n", hash->n_buckets, hash->mask); - -/* parse words from stdin */ -while (true) -{ -char buf[256]; -char wordbuf[256]; -int wbi; -int bi; -char c; - -if (!fgets(buf, sizeof(buf), stdin)) -{ -break; -} - -bi = wbi = 0; -do -{ -c = buf[bi++]; -if (isalnum(c) || c == '_') -{ -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = c; -} -else -{ -if (wbi) -{ -struct word *w; -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = '\0'; - -/* word is parsed from stdin */ - -/* does it already exist in table? */ -w = (struct word *) hash_lookup(hash, wordbuf); - -if (w) -{ -/* yes, increment count */ -++w->n; -} -else -{ -/* no, make a new object */ -ALLOC_OBJ_GC(w, struct word, ); -w->word = string_alloc(wordbuf, ); -w->n = 1; -ASSERT(hash_add(hash, w->word, w, false)); -ASSERT(hash_add(nhash, w->word, (void *) ((random() & 0x0F) + 1), false)); -} -} -wbi = 0; -} -} while (c); -}
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: plaisthos. flichtenheld has posted comments on this change. ( http://gerrit.openvpn.net/c/openvpn/+/446?usp=email ) Change subject: Turn dead list test code into unit test .. Patch Set 5: Code-Review+2 -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Gerrit-Change-Number: 446 Gerrit-PatchSet: 5 Gerrit-Owner: plaisthos Gerrit-Reviewer: flichtenheld Gerrit-CC: openvpn-devel Gerrit-Attention: plaisthos Gerrit-Comment-Date: Fri, 09 Feb 2024 10:56:16 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment ___ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: flichtenheld. Hello flichtenheld, I'd like you to reexamine a change. Please visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email to look at the new patch set (#5). Change subject: Turn dead list test code into unit test .. Turn dead list test code into unit test Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Signed-off-by: Arne Schwabe --- M CMakeLists.txt M src/openvpn/init.c M src/openvpn/list.c M src/openvpn/list.h M tests/unit_tests/openvpn/Makefile.am M tests/unit_tests/openvpn/test_misc.c 6 files changed, 211 insertions(+), 193 deletions(-) git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/46/446/5 diff --git a/CMakeLists.txt b/CMakeLists.txt index fdd2b01..3127611 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -747,6 +747,7 @@ tests/unit_tests/openvpn/mock_get_random.c src/openvpn/options_util.c src/openvpn/ssl_util.c +src/openvpn/list.c ) target_sources(test_ncp PRIVATE diff --git a/src/openvpn/init.c b/src/openvpn/init.c index c5cc154..52b4308 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -865,11 +865,6 @@ return false; #endif -#ifdef LIST_TEST -list_test(); -return false; -#endif - #ifdef IFCONFIG_POOL_TEST ifconfig_pool_test(0x0A010004, 0x0A0100FF); return false; diff --git a/src/openvpn/list.c b/src/openvpn/list.c index 480f39d..dc4b1df 100644 --- a/src/openvpn/list.c +++ b/src/openvpn/list.c @@ -326,185 +326,6 @@ } -#ifdef LIST_TEST - -/* - * Test the hash code by implementing a simple - * word frequency algorithm. - */ - -struct word -{ -const char *word; -int n; -}; - -static uint32_t -word_hash_function(const void *key, uint32_t iv) -{ -const char *str = (const char *) key; -const int len = strlen(str); -return hash_func((const uint8_t *)str, len, iv); -} - -static bool -word_compare_function(const void *key1, const void *key2) -{ -return strcmp((const char *)key1, (const char *)key2) == 0; -} - -static void -print_nhash(struct hash *hash) -{ -struct hash_iterator hi; -struct hash_element *he; -int count = 0; - -hash_iterator_init(hash, , true); - -while ((he = hash_iterator_next())) -{ -printf("%d ", (int) he->value); -++count; -} -printf("\n"); - -hash_iterator_free(); -ASSERT(count == hash_n_elements(hash)); -} - -static void -rmhash(struct hash *hash, const char *word) -{ -hash_remove(hash, word); -} - -void -list_test(void) -{ -openvpn_thread_init(); - -{ -struct gc_arena gc = gc_new(); -struct hash *hash = hash_init(1, get_random(), word_hash_function, word_compare_function); -struct hash *nhash = hash_init(256, get_random(), word_hash_function, word_compare_function); - -printf("hash_init n_buckets=%d mask=0x%08x\n", hash->n_buckets, hash->mask); - -/* parse words from stdin */ -while (true) -{ -char buf[256]; -char wordbuf[256]; -int wbi; -int bi; -char c; - -if (!fgets(buf, sizeof(buf), stdin)) -{ -break; -} - -bi = wbi = 0; -do -{ -c = buf[bi++]; -if (isalnum(c) || c == '_') -{ -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = c; -} -else -{ -if (wbi) -{ -struct word *w; -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = '\0'; - -/* word is parsed from stdin */ - -/* does it already exist in table? */ -w = (struct word *) hash_lookup(hash, wordbuf); - -if (w) -{ -/* yes, increment count */ -++w->n; -} -else -{ -/* no, make a new object */ -ALLOC_OBJ_GC(w, struct word, ); -w->word = string_alloc(wordbuf, ); -w->n = 1; -ASSERT(hash_add(hash, w->word, w, false)); -ASSERT(hash_add(nhash, w->word, (void *) ((random() & 0x0F) + 1), false)); -} -} -wbi = 0; -} -} while (c); -} - -#if 1 -/* remove some words from the table */ -{ -rmhash(hash, "true"); -rmhash(hash, "false"); -} -#endif - -/* output contents of hash table */ -
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: flichtenheld. plaisthos has posted comments on this change. ( http://gerrit.openvpn.net/c/openvpn/+/446?usp=email ) Change subject: Turn dead list test code into unit test .. Patch Set 4: (3 comments) File tests/unit_tests/openvpn/test_misc.c: http://gerrit.openvpn.net/c/openvpn/+/446/comment/7dac6168_d24ef656 : PS2, Line 203: ASSERT(hash_add(hash, w->word, w, false)); > Should probably use the cmocka assert_true here? Done http://gerrit.openvpn.net/c/openvpn/+/446/comment/e8916ca3_ce20ce1e : PS2, Line 261: ASSERT(count == hash_n_elements(hash)); > should use assert_int_equal Done http://gerrit.openvpn.net/c/openvpn/+/446/comment/1c366976_7d353c43 : PS2, Line 268: hash_remove_by_value(nhash, (void *) i); > can we test that this was successful? Done -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Gerrit-Change-Number: 446 Gerrit-PatchSet: 4 Gerrit-Owner: plaisthos Gerrit-Reviewer: flichtenheld Gerrit-CC: openvpn-devel Gerrit-Attention: flichtenheld Gerrit-Comment-Date: Mon, 05 Feb 2024 13:43:11 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: flichtenheld Gerrit-MessageType: comment ___ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: flichtenheld. plaisthos has posted comments on this change. ( http://gerrit.openvpn.net/c/openvpn/+/446?usp=email ) Change subject: Turn dead list test code into unit test .. Patch Set 4: (2 comments) Commit Message: http://gerrit.openvpn.net/c/openvpn/+/446/comment/4169cbdc_e4c58b8c : PS2, Line 7: Remove dead list test code > commit message needs update for the new version of the patch Done File CMakeLists.txt: http://gerrit.openvpn.net/c/openvpn/+/446/comment/afbc220f_9d790a94 : PS3, Line 753: target_compile_definitions(test_misc PRIVATE "-DSOURCEDIR=\"${CMAKE_SOURCE_DIR}\"") > Shouldn't be required anymore due to #509 Done -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Gerrit-Change-Number: 446 Gerrit-PatchSet: 4 Gerrit-Owner: plaisthos Gerrit-Reviewer: flichtenheld Gerrit-CC: openvpn-devel Gerrit-Attention: flichtenheld Gerrit-Comment-Date: Fri, 02 Feb 2024 12:36:13 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: flichtenheld Gerrit-MessageType: comment ___ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: flichtenheld, plaisthos. Hello flichtenheld, I'd like you to reexamine a change. Please visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email to look at the new patch set (#4). The following approvals got outdated and were removed: Code-Review-1 by flichtenheld Change subject: Turn dead list test code into unit test .. Turn dead list test code into unit test Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Signed-off-by: Arne Schwabe --- M CMakeLists.txt M src/openvpn/init.c M src/openvpn/list.c M src/openvpn/list.h M tests/unit_tests/openvpn/Makefile.am M tests/unit_tests/openvpn/test_misc.c 6 files changed, 186 insertions(+), 193 deletions(-) git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/46/446/4 diff --git a/CMakeLists.txt b/CMakeLists.txt index fdd2b01..3127611 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -747,6 +747,7 @@ tests/unit_tests/openvpn/mock_get_random.c src/openvpn/options_util.c src/openvpn/ssl_util.c +src/openvpn/list.c ) target_sources(test_ncp PRIVATE diff --git a/src/openvpn/init.c b/src/openvpn/init.c index c5cc154..52b4308 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -865,11 +865,6 @@ return false; #endif -#ifdef LIST_TEST -list_test(); -return false; -#endif - #ifdef IFCONFIG_POOL_TEST ifconfig_pool_test(0x0A010004, 0x0A0100FF); return false; diff --git a/src/openvpn/list.c b/src/openvpn/list.c index 480f39d..dc4b1df 100644 --- a/src/openvpn/list.c +++ b/src/openvpn/list.c @@ -326,185 +326,6 @@ } -#ifdef LIST_TEST - -/* - * Test the hash code by implementing a simple - * word frequency algorithm. - */ - -struct word -{ -const char *word; -int n; -}; - -static uint32_t -word_hash_function(const void *key, uint32_t iv) -{ -const char *str = (const char *) key; -const int len = strlen(str); -return hash_func((const uint8_t *)str, len, iv); -} - -static bool -word_compare_function(const void *key1, const void *key2) -{ -return strcmp((const char *)key1, (const char *)key2) == 0; -} - -static void -print_nhash(struct hash *hash) -{ -struct hash_iterator hi; -struct hash_element *he; -int count = 0; - -hash_iterator_init(hash, , true); - -while ((he = hash_iterator_next())) -{ -printf("%d ", (int) he->value); -++count; -} -printf("\n"); - -hash_iterator_free(); -ASSERT(count == hash_n_elements(hash)); -} - -static void -rmhash(struct hash *hash, const char *word) -{ -hash_remove(hash, word); -} - -void -list_test(void) -{ -openvpn_thread_init(); - -{ -struct gc_arena gc = gc_new(); -struct hash *hash = hash_init(1, get_random(), word_hash_function, word_compare_function); -struct hash *nhash = hash_init(256, get_random(), word_hash_function, word_compare_function); - -printf("hash_init n_buckets=%d mask=0x%08x\n", hash->n_buckets, hash->mask); - -/* parse words from stdin */ -while (true) -{ -char buf[256]; -char wordbuf[256]; -int wbi; -int bi; -char c; - -if (!fgets(buf, sizeof(buf), stdin)) -{ -break; -} - -bi = wbi = 0; -do -{ -c = buf[bi++]; -if (isalnum(c) || c == '_') -{ -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = c; -} -else -{ -if (wbi) -{ -struct word *w; -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = '\0'; - -/* word is parsed from stdin */ - -/* does it already exist in table? */ -w = (struct word *) hash_lookup(hash, wordbuf); - -if (w) -{ -/* yes, increment count */ -++w->n; -} -else -{ -/* no, make a new object */ -ALLOC_OBJ_GC(w, struct word, ); -w->word = string_alloc(wordbuf, ); -w->n = 1; -ASSERT(hash_add(hash, w->word, w, false)); -ASSERT(hash_add(nhash, w->word, (void *) ((random() & 0x0F) + 1), false)); -} -} -wbi = 0; -} -} while (c); -} - -#if 1 -/* remove some words from the table */ -{ -rmhash(hash, "true"); -
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: plaisthos. flichtenheld has posted comments on this change. ( http://gerrit.openvpn.net/c/openvpn/+/446?usp=email ) Change subject: Turn dead list test code into unit test .. Patch Set 3: Code-Review-1 (2 comments) Patchset: PS3: Still open comments and questions File CMakeLists.txt: http://gerrit.openvpn.net/c/openvpn/+/446/comment/65c92932_e39b460b : PS3, Line 753: target_compile_definitions(test_misc PRIVATE "-DSOURCEDIR=\"${CMAKE_SOURCE_DIR}\"") Shouldn't be required anymore due to #509 -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Gerrit-Change-Number: 446 Gerrit-PatchSet: 3 Gerrit-Owner: plaisthos Gerrit-Reviewer: flichtenheld Gerrit-CC: openvpn-devel Gerrit-Attention: plaisthos Gerrit-Comment-Date: Fri, 02 Feb 2024 11:18:30 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment ___ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel
[Openvpn-devel] [L] Change in openvpn[master]: Turn dead list test code into unit test
Attention is currently required from: plaisthos. Hello flichtenheld, I'd like you to reexamine a change. Please visit http://gerrit.openvpn.net/c/openvpn/+/446?usp=email to look at the new patch set (#3). Change subject: Turn dead list test code into unit test .. Turn dead list test code into unit test Change-Id: I7511bc43cd6a0bcb89476f27d5822ab4a78d0d21 Signed-off-by: Arne Schwabe --- M CMakeLists.txt M src/openvpn/init.c M src/openvpn/list.c M src/openvpn/list.h M tests/unit_tests/openvpn/Makefile.am M tests/unit_tests/openvpn/test_misc.c 6 files changed, 188 insertions(+), 193 deletions(-) git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/46/446/3 diff --git a/CMakeLists.txt b/CMakeLists.txt index fdd2b01..3252a2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -747,8 +747,11 @@ tests/unit_tests/openvpn/mock_get_random.c src/openvpn/options_util.c src/openvpn/ssl_util.c +src/openvpn/list.c ) +target_compile_definitions(test_misc PRIVATE "-DSOURCEDIR=\"${CMAKE_SOURCE_DIR}\"") + target_sources(test_ncp PRIVATE src/openvpn/crypto_mbedtls.c src/openvpn/crypto_openssl.c diff --git a/src/openvpn/init.c b/src/openvpn/init.c index c5cc154..52b4308 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -865,11 +865,6 @@ return false; #endif -#ifdef LIST_TEST -list_test(); -return false; -#endif - #ifdef IFCONFIG_POOL_TEST ifconfig_pool_test(0x0A010004, 0x0A0100FF); return false; diff --git a/src/openvpn/list.c b/src/openvpn/list.c index 480f39d..dc4b1df 100644 --- a/src/openvpn/list.c +++ b/src/openvpn/list.c @@ -326,185 +326,6 @@ } -#ifdef LIST_TEST - -/* - * Test the hash code by implementing a simple - * word frequency algorithm. - */ - -struct word -{ -const char *word; -int n; -}; - -static uint32_t -word_hash_function(const void *key, uint32_t iv) -{ -const char *str = (const char *) key; -const int len = strlen(str); -return hash_func((const uint8_t *)str, len, iv); -} - -static bool -word_compare_function(const void *key1, const void *key2) -{ -return strcmp((const char *)key1, (const char *)key2) == 0; -} - -static void -print_nhash(struct hash *hash) -{ -struct hash_iterator hi; -struct hash_element *he; -int count = 0; - -hash_iterator_init(hash, , true); - -while ((he = hash_iterator_next())) -{ -printf("%d ", (int) he->value); -++count; -} -printf("\n"); - -hash_iterator_free(); -ASSERT(count == hash_n_elements(hash)); -} - -static void -rmhash(struct hash *hash, const char *word) -{ -hash_remove(hash, word); -} - -void -list_test(void) -{ -openvpn_thread_init(); - -{ -struct gc_arena gc = gc_new(); -struct hash *hash = hash_init(1, get_random(), word_hash_function, word_compare_function); -struct hash *nhash = hash_init(256, get_random(), word_hash_function, word_compare_function); - -printf("hash_init n_buckets=%d mask=0x%08x\n", hash->n_buckets, hash->mask); - -/* parse words from stdin */ -while (true) -{ -char buf[256]; -char wordbuf[256]; -int wbi; -int bi; -char c; - -if (!fgets(buf, sizeof(buf), stdin)) -{ -break; -} - -bi = wbi = 0; -do -{ -c = buf[bi++]; -if (isalnum(c) || c == '_') -{ -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = c; -} -else -{ -if (wbi) -{ -struct word *w; -ASSERT(wbi < (int) sizeof(wordbuf)); -wordbuf[wbi++] = '\0'; - -/* word is parsed from stdin */ - -/* does it already exist in table? */ -w = (struct word *) hash_lookup(hash, wordbuf); - -if (w) -{ -/* yes, increment count */ -++w->n; -} -else -{ -/* no, make a new object */ -ALLOC_OBJ_GC(w, struct word, ); -w->word = string_alloc(wordbuf, ); -w->n = 1; -ASSERT(hash_add(hash, w->word, w, false)); -ASSERT(hash_add(nhash, w->word, (void *) ((random() & 0x0F) + 1), false)); -} -} -wbi = 0; -} -} while (c); -} - -#if 1 -/* remove some words from the