diff --git a/src/utils/utils_module_tests.c b/src/utils/utils_module_tests.c index 2611c42a6..206bc9d6c 100644 --- a/src/utils/utils_module_tests.c +++ b/src/utils/utils_module_tests.c @@ -9,6 +9,7 @@ #include "utils/includes.h" #include "utils/common.h" +#include "utils/bitfield.h" struct printf_test_data { @@ -73,6 +74,89 @@ static int printf_encode_decode_tests(void) } +static int bitfield_tests(void) +{ + struct bitfield *bf; + int i; + int errors = 0; + + wpa_printf(MSG_INFO, "bitfield tests"); + + bf = bitfield_alloc(123); + if (bf == NULL) + return -1; + + for (i = 0; i < 123; i++) { + if (bitfield_is_set(bf, i) || bitfield_is_set(bf, i + 1)) + errors++; + if (i > 0 && bitfield_is_set(bf, i - 1)) + errors++; + bitfield_set(bf, i); + if (!bitfield_is_set(bf, i)) + errors++; + bitfield_clear(bf, i); + if (bitfield_is_set(bf, i)) + errors++; + } + + for (i = 123; i < 200; i++) { + if (bitfield_is_set(bf, i) || bitfield_is_set(bf, i + 1)) + errors++; + if (i > 0 && bitfield_is_set(bf, i - 1)) + errors++; + bitfield_set(bf, i); + if (bitfield_is_set(bf, i)) + errors++; + bitfield_clear(bf, i); + if (bitfield_is_set(bf, i)) + errors++; + } + + for (i = 0; i < 123; i++) { + if (bitfield_is_set(bf, i) || bitfield_is_set(bf, i + 1)) + errors++; + bitfield_set(bf, i); + if (!bitfield_is_set(bf, i)) + errors++; + } + + for (i = 0; i < 123; i++) { + if (!bitfield_is_set(bf, i)) + errors++; + bitfield_clear(bf, i); + if (bitfield_is_set(bf, i)) + errors++; + } + + for (i = 0; i < 123; i++) { + if (bitfield_get_first_zero(bf) != i) + errors++; + bitfield_set(bf, i); + } + if (bitfield_get_first_zero(bf) != -1) + errors++; + for (i = 0; i < 123; i++) { + if (!bitfield_is_set(bf, i)) + errors++; + bitfield_clear(bf, i); + if (bitfield_get_first_zero(bf) != i) + errors++; + bitfield_set(bf, i); + } + if (bitfield_get_first_zero(bf) != -1) + errors++; + + bitfield_free(bf); + + if (errors) { + wpa_printf(MSG_ERROR, "%d bitfield test(s) failed", errors); + return -1; + } + + return 0; +} + + int utils_module_tests(void) { int ret = 0; @@ -81,6 +165,8 @@ int utils_module_tests(void) if (printf_encode_decode_tests() < 0) ret = -1; + if (bitfield_tests() < 0) + ret = -1; return ret; } diff --git a/tests/Makefile b/tests/Makefile index 6fed9fe48..9877bb01c 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,4 @@ TESTS=test-base64 test-md4 test-md5 test-milenage test-ms_funcs \ - test-bitfield \ test-rsa-sig-ver \ test-sha1 \ test-sha256 test-aes test-asn1 test-x509 test-x509v3 test-list test-rc4 @@ -51,9 +50,6 @@ test-asn1: test-asn1.o $(LIBS) test-base64: test-base64.o $(LIBS) $(LDO) $(LDFLAGS) -o $@ $^ $(LLIBS) -test-bitfield: test-bitfield.o $(LIBS) - $(LDO) $(LDFLAGS) -o $@ $^ $(LLIBS) - test-https: test-https.o $(LIBS) $(LDO) $(LDFLAGS) -o $@ $< $(LLIBS) @@ -93,7 +89,6 @@ test-x509v3: test-x509v3.o $(LIBS) run-tests: $(TESTS) ./test-aes - ./test-bitfield ./test-list ./test-md4 ./test-md5 diff --git a/tests/test-bitfield.c b/tests/test-bitfield.c deleted file mode 100644 index aff1790c0..000000000 --- a/tests/test-bitfield.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * bitfield unit tests - * Copyright (c) 2013, Jouni Malinen - * - * This software may be distributed under the terms of the BSD license. - * See README for more details. - */ - -#include "utils/includes.h" -#include "utils/bitfield.h" - -int main(int argc, char *argv[]) -{ - struct bitfield *bf; - int i; - int errors = 0; - - bf = bitfield_alloc(123); - if (bf == NULL) - return -1; - - for (i = 0; i < 123; i++) { - if (bitfield_is_set(bf, i) || bitfield_is_set(bf, i + 1)) - errors++; - if (i > 0 && bitfield_is_set(bf, i - 1)) - errors++; - bitfield_set(bf, i); - if (!bitfield_is_set(bf, i)) - errors++; - bitfield_clear(bf, i); - if (bitfield_is_set(bf, i)) - errors++; - } - - for (i = 123; i < 200; i++) { - if (bitfield_is_set(bf, i) || bitfield_is_set(bf, i + 1)) - errors++; - if (i > 0 && bitfield_is_set(bf, i - 1)) - errors++; - bitfield_set(bf, i); - if (bitfield_is_set(bf, i)) - errors++; - bitfield_clear(bf, i); - if (bitfield_is_set(bf, i)) - errors++; - } - - for (i = 0; i < 123; i++) { - if (bitfield_is_set(bf, i) || bitfield_is_set(bf, i + 1)) - errors++; - bitfield_set(bf, i); - if (!bitfield_is_set(bf, i)) - errors++; - } - - for (i = 0; i < 123; i++) { - if (!bitfield_is_set(bf, i)) - errors++; - bitfield_clear(bf, i); - if (bitfield_is_set(bf, i)) - errors++; - } - - for (i = 0; i < 123; i++) { - if (bitfield_get_first_zero(bf) != i) - errors++; - bitfield_set(bf, i); - } - if (bitfield_get_first_zero(bf) != -1) - errors++; - for (i = 0; i < 123; i++) { - if (!bitfield_is_set(bf, i)) - errors++; - bitfield_clear(bf, i); - if (bitfield_get_first_zero(bf) != i) - errors++; - bitfield_set(bf, i); - } - if (bitfield_get_first_zero(bf) != -1) - errors++; - - bitfield_free(bf); - - if (errors) { - printf("%d test(s) failed\n", errors); - return -1; - } - - return 0; -}