diff --git a/tests/sys/sys/Makefile b/tests/sys/sys/Makefile index eed87935e6e7..95739c127632 100644 --- a/tests/sys/sys/Makefile +++ b/tests/sys/sys/Makefile @@ -1,15 +1,13 @@ # $FreeBSD$ .include TESTSDIR= ${TESTSBASE}/sys/sys ATF_TESTS_C= arb_test bitstring_test qmath_test rb_test splay_test -WARNS?= 5 - .if ${COMPILER_TYPE} == "gcc" CFLAGS.bitstring_test= -fno-strict-overflow .endif .include diff --git a/tests/sys/sys/arb_test.c b/tests/sys/sys/arb_test.c index 9cf3f2052688..adbd7794e6f8 100644 --- a/tests/sys/sys/arb_test.c +++ b/tests/sys/sys/arb_test.c @@ -1,115 +1,115 @@ /* $OpenBSD: rb-test.c,v 1.4 2008/04/13 00:22:17 djm Exp $ */ /* * Copyright 2019 Edward Tomasz Napierala * Copyright 2002 Niels Provos * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD$ */ #include #include #include #include #include struct node { ARB32_ENTRY() next; int key; }; -ARB32_HEAD(tree, node) *root; +static ARB32_HEAD(tree, node) *root; static int compare(const struct node *a, const struct node *b) { if (a->key < b->key) return (-1); else if (a->key > b->key) return (1); return (0); } ARB_PROTOTYPE(tree, node, next, compare); ARB_GENERATE(tree, node, next, compare); #define ITER 150 #define MIN 5 #define MAX 5000 ATF_TC_WITHOUT_HEAD(arb_test); ATF_TC_BODY(arb_test, tc) { struct node *tmp, *ins; int i, max, min; max = min = 42; /* pacify gcc */ root = (struct tree *)calloc(1, ARB_ALLOCSIZE(root, ITER, tmp)); ARB_INIT(tmp, next, root, ITER); for (i = 0; i < ITER; i++) { tmp = ARB_GETFREE(root, next); ATF_REQUIRE_MSG(tmp != NULL, "ARB_GETFREE failed"); do { tmp->key = arc4random_uniform(MAX-MIN); tmp->key += MIN; } while (ARB_FIND(tree, root, tmp) != NULL); if (i == 0) max = min = tmp->key; else { if (tmp->key > max) max = tmp->key; if (tmp->key < min) min = tmp->key; } ATF_REQUIRE_EQ(NULL, ARB_INSERT(tree, root, tmp)); } ins = ARB_MIN(tree, root); ATF_REQUIRE_MSG(ins != NULL, "ARB_MIN error"); ATF_CHECK_EQ(min, ins->key); tmp = ins; ins = ARB_MAX(tree, root); ATF_REQUIRE_MSG(ins != NULL, "ARB_MAX error"); ATF_CHECK_EQ(max, ins->key); ATF_CHECK_EQ(tmp, ARB_REMOVE(tree, root, tmp)); for (i = 0; i < ITER - 1; i++) { tmp = ARB_ROOT(root); ATF_REQUIRE_MSG(tmp != NULL, "ARB_ROOT error"); ATF_CHECK_EQ(tmp, ARB_REMOVE(tree, root, tmp)); } } ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, arb_test); return (atf_no_error()); } diff --git a/tests/sys/sys/rb_test.c b/tests/sys/sys/rb_test.c index 287422ccf902..c558ad6098cf 100644 --- a/tests/sys/sys/rb_test.c +++ b/tests/sys/sys/rb_test.c @@ -1,112 +1,112 @@ /* $OpenBSD: rb-test.c,v 1.4 2008/04/13 00:22:17 djm Exp $ */ /* * Copyright 2002 Niels Provos * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD$ */ #include #include #include #include struct node { RB_ENTRY(node) node; int key; }; -RB_HEAD(tree, node) root; +static RB_HEAD(tree, node) root; static int compare(struct node *a, struct node *b) { if (a->key < b->key) return (-1); else if (a->key > b->key) return (1); return (0); } RB_PROTOTYPE(tree, node, node, compare); RB_GENERATE(tree, node, node, compare); #define ITER 150 #define MIN 5 #define MAX 5000 ATF_TC_WITHOUT_HEAD(rb_test); ATF_TC_BODY(rb_test, tc) { struct node *tmp, *ins; int i, max, min; max = min = 42; /* pacify gcc */ RB_INIT(&root); for (i = 0; i < ITER; i++) { tmp = malloc(sizeof(struct node)); ATF_REQUIRE_MSG(tmp != NULL, "malloc failed"); do { tmp->key = arc4random_uniform(MAX-MIN); tmp->key += MIN; } while (RB_FIND(tree, &root, tmp) != NULL); if (i == 0) max = min = tmp->key; else { if (tmp->key > max) max = tmp->key; if (tmp->key < min) min = tmp->key; } ATF_REQUIRE_EQ(NULL, RB_INSERT(tree, &root, tmp)); } ins = RB_MIN(tree, &root); ATF_REQUIRE_MSG(ins != NULL, "RB_MIN error"); ATF_CHECK_EQ(min, ins->key); tmp = ins; ins = RB_MAX(tree, &root); ATF_REQUIRE_MSG(ins != NULL, "RB_MAX error"); ATF_CHECK_EQ(max, ins->key); ATF_CHECK_EQ(tmp, RB_REMOVE(tree, &root, tmp)); for (i = 0; i < ITER - 1; i++) { tmp = RB_ROOT(&root); ATF_REQUIRE_MSG(tmp != NULL, "RB_ROOT error"); ATF_CHECK_EQ(tmp, RB_REMOVE(tree, &root, tmp)); free(tmp); } } ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, rb_test); return (atf_no_error()); } diff --git a/tests/sys/sys/splay_test.c b/tests/sys/sys/splay_test.c index 9b14c7c855cf..f0cf4ecd5eb6 100644 --- a/tests/sys/sys/splay_test.c +++ b/tests/sys/sys/splay_test.c @@ -1,112 +1,112 @@ /* $OpenBSD: splay-test.c,v 1.4 2008/04/13 00:22:17 djm Exp $ */ /* * Copyright 2002 Niels Provos * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD$ */ #include #include #include #include struct node { SPLAY_ENTRY(node) node; int key; }; -SPLAY_HEAD(tree, node) root; +static SPLAY_HEAD(tree, node) root; static int compare(struct node *a, struct node *b) { if (a->key < b->key) return (-1); else if (a->key > b->key) return (1); return (0); } SPLAY_PROTOTYPE(tree, node, node, compare); SPLAY_GENERATE(tree, node, node, compare); #define ITER 150 #define MIN 5 #define MAX 5000 ATF_TC_WITHOUT_HEAD(splay_test); ATF_TC_BODY(splay_test, tc) { struct node *tmp, *ins; int i, max, min; SPLAY_INIT(&root); max = min = 42; /* pacify gcc */ for (i = 0; i < ITER; i++) { tmp = malloc(sizeof(struct node)); ATF_REQUIRE_MSG(tmp != NULL, "malloc failed"); do { tmp->key = arc4random_uniform(MAX-MIN); tmp->key += MIN; } while (SPLAY_FIND(tree, &root, tmp) != NULL); if (i == 0) max = min = tmp->key; else { if (tmp->key > max) max = tmp->key; if (tmp->key < min) min = tmp->key; } ATF_REQUIRE_EQ(NULL, SPLAY_INSERT(tree, &root, tmp)); } ins = SPLAY_MIN(tree, &root); ATF_REQUIRE_MSG(ins != NULL, "SPLAY_MIN error"); ATF_CHECK_EQ(min, ins->key); tmp = ins; ins = SPLAY_MAX(tree, &root); ATF_REQUIRE_MSG(ins != NULL, "SPLAY_MAX error"); ATF_CHECK_EQ(max, ins->key); ATF_CHECK_EQ(tmp, SPLAY_REMOVE(tree, &root, tmp)); for (i = 0; i < ITER - 1; i++) { tmp = SPLAY_ROOT(&root); ATF_REQUIRE_MSG(tmp != NULL, "SPLAY_ROOT error"); ATF_CHECK_EQ(tmp, SPLAY_REMOVE(tree, &root, tmp)); free(tmp); } } ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, splay_test); return (atf_no_error()); }