[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnurl] 158/205: tests: added test for Curl_splaygetbest to
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnurl] 158/205: tests: added test for Curl_splaygetbest to unit1309 |
Date: |
Thu, 20 Apr 2017 16:21:38 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to annotated tag gnurl-7.54.0
in repository gnurl.
commit 6193770ee1f6771758a653730e7a1ecaf2cf9dc8
Author: Dániel Bakai <address@hidden>
AuthorDate: Mon Apr 3 09:16:21 2017 +0200
tests: added test for Curl_splaygetbest to unit1309
This checks the new behavior of Curl_splaygetbest, so that the smallest
node not larger than the key is removed, and FIFO behavior is kept even
when there are multiple nodes with the same key.
Closes #1358
---
tests/data/test1309 | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++
tests/unit/unit1309.c | 38 +++++++++++++++--
2 files changed, 146 insertions(+), 3 deletions(-)
diff --git a/tests/data/test1309 b/tests/data/test1309
index c2f67ff10..0e0cad1e8 100644
--- a/tests/data/test1309
+++ b/tests/data/test1309
@@ -1451,6 +1451,117 @@ remove pointer 5, payload 659
Tree look:
0.177[0]
remove pointer 6, payload 177
+Removing nodes not larger than 0
+removed payload 0[0]
+Removing nodes not larger than 100
+removed payload 39[0]
+removed payload 49[0]
+removed payload 49[1]
+removed payload 59[0]
+removed payload 59[1]
+removed payload 59[2]
+removed payload 98[0]
+removed payload 98[1]
+removed payload 98[2]
+Removing nodes not larger than 200
+removed payload 108[0]
+removed payload 118[0]
+removed payload 118[1]
+removed payload 157[0]
+removed payload 157[1]
+removed payload 167[0]
+removed payload 167[1]
+removed payload 167[2]
+removed payload 177[0]
+Removing nodes not larger than 300
+removed payload 216[0]
+removed payload 226[0]
+removed payload 226[1]
+removed payload 236[0]
+removed payload 236[1]
+removed payload 236[2]
+removed payload 275[0]
+removed payload 275[1]
+removed payload 275[2]
+removed payload 285[0]
+removed payload 295[0]
+removed payload 295[1]
+Removing nodes not larger than 400
+removed payload 334[0]
+removed payload 334[1]
+removed payload 344[0]
+removed payload 344[1]
+removed payload 344[2]
+removed payload 354[0]
+removed payload 393[0]
+Removing nodes not larger than 500
+removed payload 403[0]
+removed payload 403[1]
+removed payload 413[0]
+removed payload 413[1]
+removed payload 413[2]
+removed payload 462[0]
+removed payload 472[0]
+removed payload 472[1]
+Removing nodes not larger than 600
+removed payload 521[0]
+removed payload 521[1]
+removed payload 521[2]
+removed payload 531[0]
+removed payload 541[0]
+removed payload 541[1]
+removed payload 580[0]
+removed payload 580[1]
+removed payload 590[0]
+removed payload 590[1]
+removed payload 590[2]
+removed payload 600[0]
+Removing nodes not larger than 700
+removed payload 639[0]
+removed payload 649[0]
+removed payload 649[1]
+removed payload 659[0]
+removed payload 659[1]
+removed payload 659[2]
+removed payload 698[0]
+removed payload 698[1]
+removed payload 698[2]
+Removing nodes not larger than 800
+removed payload 708[0]
+removed payload 718[0]
+removed payload 718[1]
+removed payload 757[0]
+removed payload 757[1]
+removed payload 767[0]
+removed payload 767[1]
+removed payload 767[2]
+removed payload 777[0]
+Removing nodes not larger than 900
+removed payload 816[0]
+removed payload 826[0]
+removed payload 826[1]
+removed payload 836[0]
+removed payload 836[1]
+removed payload 836[2]
+removed payload 875[0]
+removed payload 875[1]
+removed payload 875[2]
+removed payload 885[0]
+removed payload 895[0]
+removed payload 895[1]
+Removing nodes not larger than 1000
+removed payload 934[0]
+removed payload 934[1]
+removed payload 944[0]
+removed payload 944[1]
+removed payload 944[2]
+removed payload 954[0]
+Removing nodes not larger than 1100
+removed payload 1003[0]
+removed payload 1003[1]
+removed payload 1013[0]
+removed payload 1013[1]
+removed payload 1013[2]
</stdout>
</verify>
diff --git a/tests/unit/unit1309.c b/tests/unit/unit1309.c
index b75b1d74b..6cf886e9e 100644
--- a/tests/unit/unit1309.c
+++ b/tests/unit/unit1309.c
@@ -70,12 +70,14 @@ UNITTEST_START
/* number of nodes to add to the splay tree */
#define NUM_NODES 50
- struct Curl_tree *root;
- struct Curl_tree nodes[NUM_NODES];
+ struct Curl_tree *root, *removed;
+ struct Curl_tree nodes[NUM_NODES*3];
int rc;
- int i;
+ int i, j;
+ struct timeval tv_now = {0, 0};
root = NULL; /* the empty tree */
+ /* add nodes */
for(i = 0; i < NUM_NODES; i++) {
struct timeval key;
@@ -103,6 +105,36 @@ UNITTEST_START
}
}
+ fail_unless(root == NULL, "tree not empty after removing all nodes");
+
+ /* rebuild tree */
+ for(i = 0; i < NUM_NODES; i++) {
+ struct timeval key;
+
+ key.tv_sec = 0;
+ key.tv_usec = (541*i)%1023;
+
+ /* add some nodes with the same key */
+ for(j = 0; j <= i % 3; j++) {
+ nodes[i*3+j].payload = (void *)(key.tv_usec*10 + j); /* for simplicity */
+ root = Curl_splayinsert(key, root, &nodes[i*3+j]);
+ }
+ }
+
+ removed = NULL;
+ for(i = 0; i <= 1100; i+= 100) {
+ printf("Removing nodes not larger than %d\n", i);
+ tv_now.tv_usec = i;
+ root = Curl_splaygetbest(tv_now, root, &removed);
+ while(removed != NULL) {
+ printf("removed payload %ld[%ld]\n", (long)(removed->payload) / 10,
+ (long)(removed->payload) % 10);
+ root = Curl_splaygetbest(tv_now, root, &removed);
+ }
+ }
+
+ fail_unless(root == NULL, "tree not empty when it should be");
+
UNITTEST_STOP
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnurl] 134/205: curl: fix callback functions to match prototype, (continued)
- [GNUnet-SVN] [gnurl] 134/205: curl: fix callback functions to match prototype, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 175/205: INSTALL.md: fix secure transport configure arguments, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 168/205: test1606: verify speedcheck, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 128/205: cmake: add more missing files to the dist, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 97/205: cmake: build manual pages (including curl.1), gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 106/205: openssl: fall back on SSL_ERROR_* string when no error detail, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 136/205: ssh: fix narrowing conversion warning, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 141/205: CTestConfig.cmake: removed, unused, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 139/205: docs/index.html: removed, was not shipped anyway, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 173/205: BUGS: "Bugs in old versions", gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 158/205: tests: added test for Curl_splaygetbest to unit1309,
gnunet <=
- [GNUnet-SVN] [gnurl] 146/205: tests/server/util: remove in6addr_any for recent MinGW, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 165/205: nss: fix build after e60fe20fdf94e829ba5fce33f7a9d6c281149f7d, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 187/205: tests/server/util: prefer <poll.h> over <sys/poll.h>, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 153/205: RELEASE-NOTES: synced with 4f2e348f9b42c69c480, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 190/205: mbedtls: fix memory leak in error path, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 189/205: curl-compilers.m4: turn implicit function declarations into errors, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 172/205: system.h: add section for tcc, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 200/205: openssl: don't try to print nonexistant peer private keys, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 188/205: test1541: also test for CURL_PULL_WS2TCPIP_H, gnunet, 2017/04/20
- [GNUnet-SVN] [gnurl] 205/205: Patchset for gnURL microfork: * Patches to rename libcurl to libgnurl by Christian * Updated for latest curl using git cherry-pick by Jeff, Florian, ng0 * Patches to fix the testsuite (deleted tests/data/test1139, renamed reference from libcurl.* to libgnurl.*) by ng0 * Added guix-gnurl.scm which can be used to build this with guix prior to installing it. (author: ng0), gnunet, 2017/04/20