summaryrefslogtreecommitdiffstats
path: root/test/ctype_internal_test.c
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2017-08-23 08:10:31 +1000
committerPauli <paul.dale@oracle.com>2017-08-25 07:56:35 +1000
commitda9b249fd994124e954d871ff220cc2c0ddf9e6a (patch)
tree0f4dd9e2e5762ea12705fdaba83f90abe10e7112 /test/ctype_internal_test.c
parent0f3ffbd1581fad58095fedcc32b0da42a486b8b7 (diff)
Check range of test values using isascii before diving into the full
range of ctype functions. Revert "Don't try to compare the ctype functions on values > 127" This reverts commit 6ac589081b53a62bff5f0abe62c1c109c419c7a0. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4225)
Diffstat (limited to 'test/ctype_internal_test.c')
-rw-r--r--test/ctype_internal_test.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/test/ctype_internal_test.c b/test/ctype_internal_test.c
index 04ab14d73f..ce3cbfee0a 100644
--- a/test/ctype_internal_test.c
+++ b/test/ctype_internal_test.c
@@ -27,9 +27,14 @@ static int isblank(int c)
static int test_ctype_chars(int n)
{
- return TEST_int_eq(isalnum(n) != 0, ossl_isalnum(n) != 0)
- && TEST_int_eq(isalpha(n) != 0, ossl_isalpha(n) != 0)
- && TEST_int_eq(isascii(n) != 0, ossl_isascii(n) != 0)
+ if (!TEST_int_eq(isascii((unsigned char)n) != 0, ossl_isascii(n) != 0))
+ return 0;
+
+ if (!ossl_isascii(n))
+ return 1;
+
+ return TEST_int_eq(isalpha(n) != 0, ossl_isalpha(n) != 0)
+ && TEST_int_eq(isalnum(n) != 0, ossl_isalnum(n) != 0)
&& TEST_int_eq(isblank(n) != 0, ossl_isblank(n) != 0)
&& TEST_int_eq(iscntrl(n) != 0, ossl_iscntrl(n) != 0)
&& TEST_int_eq(isdigit(n) != 0, ossl_isdigit(n) != 0)
@@ -75,7 +80,7 @@ static int test_ctype_eof(void)
int setup_tests(void)
{
- ADD_ALL_TESTS(test_ctype_chars, 128);
+ ADD_ALL_TESTS(test_ctype_chars, 256);
ADD_ALL_TESTS(test_ctype_toupper, OSSL_NELEM(case_change));
ADD_ALL_TESTS(test_ctype_tolower, OSSL_NELEM(case_change));
ADD_TEST(test_ctype_eof);