diff options
author | ylavic <ylavic@13f79535-47bb-0310-9956-ffa450edef68> | 2022-06-27 16:12:24 +0000 |
---|---|---|
committer | ylavic <ylavic@13f79535-47bb-0310-9956-ffa450edef68> | 2022-06-27 16:12:24 +0000 |
commit | e8e96292d13b649da5dede5cf0a0a460982e3d67 (patch) | |
tree | 6a0c50a41da3d526d1ca4d003510e01a315d0e82 | |
parent | 770279f5bd9fd0c49a889a99a1ac5ff21b550bd7 (diff) | |
download | libapr-e8e96292d13b649da5dede5cf0a0a460982e3d67.tar.gz |
testencode: Follow up to r1902281: error tests for apr_decode_base16_binary.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1902282 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | test/testencode.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/test/testencode.c b/test/testencode.c index 28d5b07f5..0ffc706b0 100644 --- a/test/testencode.c +++ b/test/testencode.c @@ -909,7 +909,7 @@ typedef apr_status_t (*encdec_fn)(char*, const char*, apr_ssize_t, int, apr_size static void test_encode_errors(abts_case * tc, void *data) { - char dest[1]; + char dest[64]; apr_size_t len; apr_status_t rv; @@ -947,9 +947,9 @@ static void test_encode_errors(abts_case * tc, void *data) static void test_decode_errors(abts_case * tc, void *data) { char dest[64]; - unsigned char *udest = (unsigned char *)dest; apr_size_t len; apr_status_t rv; + unsigned char *udest = (unsigned char *)dest; const encdec_fn *dec, decs[] = { (encdec_fn)apr_decode_base64, @@ -1059,6 +1059,32 @@ static void test_decode_errors(abts_case * tc, void *data) APR_ENCODE_COLON|APR_ENCODE_RELAXED, &len); ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); ABTS_SIZE_EQUAL(tc, 2, len); + + /* base16_binary */ + rv = apr_decode_base16_binary(NULL, NULL, 3, 0, &len); + ABTS_INT_EQUAL(tc, APR_EINCOMPLETE, rv); + rv = apr_decode_base16_binary(udest, "ABC", APR_ENCODE_STRING, 0, &len); + ABTS_INT_EQUAL(tc, APR_EINCOMPLETE, rv); + rv = apr_decode_base16_binary(udest, "ABCD*EF", APR_ENCODE_STRING, 0, &len); + ABTS_INT_EQUAL(tc, APR_BADCH, rv); + rv = apr_decode_base16_binary(udest, "ABCD*EF", APR_ENCODE_STRING, + APR_ENCODE_RELAXED, &len); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + ABTS_SIZE_EQUAL(tc, 2, len); + /* base16_binary with colon */ + rv = apr_decode_base16_binary(udest, "AB:", APR_ENCODE_STRING, + APR_ENCODE_COLON, &len); + ABTS_INT_EQUAL(tc, APR_EINCOMPLETE, rv); + rv = apr_decode_base16_binary(udest, "AB:C", APR_ENCODE_STRING, + APR_ENCODE_COLON, &len); + ABTS_INT_EQUAL(tc, APR_EINCOMPLETE, rv); + rv = apr_decode_base16_binary(udest, "AB:CD*EF", APR_ENCODE_STRING, + APR_ENCODE_COLON, &len); + ABTS_INT_EQUAL(tc, APR_BADCH, rv); + rv = apr_decode_base16_binary(udest, "AB:CD*EF", APR_ENCODE_STRING, + APR_ENCODE_COLON|APR_ENCODE_RELAXED, &len); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + ABTS_SIZE_EQUAL(tc, 2, len); } abts_suite *testencode(abts_suite * suite) |