From 5946fd91240724a255d1189a1fc7afa13407ddfc Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Sat, 11 Jul 2009 15:29:30 +0000
Subject: [PATCH] - Added further coverage tests for Base64
---
tests/suites/test_suite_base64.data | 43 +++++++++++++++++--------
tests/suites/test_suite_base64.function | 20 ++++++++----
2 files changed, 42 insertions(+), 21 deletions(-)
diff --git a/tests/suites/test_suite_base64.data b/tests/suites/test_suite_base64.data
index 2f4a4da3e2..c12ba28e3a 100644
--- a/tests/suites/test_suite_base64.data
+++ b/tests/suites/test_suite_base64.data
@@ -1,44 +1,59 @@
Test case base64_encode #1
-base64_encode:"":""
+base64_encode:"":"":1000:0
Test case base64_encode #2
-base64_encode:"f":"Zg=="
+base64_encode:"f":"Zg==":1000:0
Test case base64_encode #3
-base64_encode:"fo":"Zm8="
+base64_encode:"fo":"Zm8=":1000:0
Test case base64_encode #4
-base64_encode:"foo":"Zm9v"
+base64_encode:"foo":"Zm9v":1000:0
Test case base64_encode #5
-base64_encode:"foob":"Zm9vYg=="
+base64_encode:"foob":"Zm9vYg==":1000:0
Test case base64_encode #6
-base64_encode:"fooba":"Zm9vYmE="
+base64_encode:"fooba":"Zm9vYmE=":1000:0
Test case base64_encode #7
-base64_encode:"foobar":"Zm9vYmFy"
+base64_encode:"foobar":"Zm9vYmFy":1000:0
Test case base64_decode #1
-base64_decode:"":""
+base64_decode:"":"":0
Test case base64_decode #2
-base64_decode:"Zg==":"f"
+base64_decode:"Zg==":"f":0
Test case base64_decode #3
-base64_decode:"Zm8=":"fo"
+base64_decode:"Zm8=":"fo":0
Test case base64_decode #4
-base64_decode:"Zm9v":"foo"
+base64_decode:"Zm9v":"foo":0
Test case base64_decode #5
-base64_decode:"Zm9vYg==":"foob"
+base64_decode:"Zm9vYg==":"foob":0
Test case base64_decode #6
-base64_decode:"Zm9vYmE=":"fooba"
+base64_decode:"Zm9vYmE=":"fooba":0
Test case base64_decode #7
-base64_decode:"Zm9vYmFy":"foobar"
+base64_decode:"Zm9vYmFy":"foobar":0
+
+Base64 encode (buffer size just right)
+base64_encode:"foobar":"Zm9vYmFy":9:0
+
+Base64 encode (buffer size too small)
+base64_encode:"foobar":"":8:POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL
+
+Base64 decode (Illegal character)
+base64_decode:"zm#=":"":POLARSSL_ERR_BASE64_INVALID_CHARACTER
+
+Base64 decode (Too much equal signs)
+base64_decode:"zm===":"":POLARSSL_ERR_BASE64_INVALID_CHARACTER
+
+Base64 decode (Invalid char after equal signs)
+base64_decode:"zm=masd":"":POLARSSL_ERR_BASE64_INVALID_CHARACTER
Base64 Selftest
base64_selftest:
diff --git a/tests/suites/test_suite_base64.function b/tests/suites/test_suite_base64.function
index 6278ac2668..9c61ef8772 100644
--- a/tests/suites/test_suite_base64.function
+++ b/tests/suites/test_suite_base64.function
@@ -3,23 +3,26 @@ BEGIN_HEADER
END_HEADER
BEGIN_CASE
-base64_encode:src_string:dst_string
+base64_encode:src_string:dst_string:dst_buf_size:result
{
unsigned char src_str[1000];
unsigned char dst_str[1000];
- int len = 1000;
+ int len = {dst_buf_size};
memset(src_str, 0x00, 1000);
memset(dst_str, 0x00, 1000);
strcpy( (char *) src_str, {src_string} );
- TEST_ASSERT( base64_encode( dst_str, &len, src_str, strlen( (char *) src_str ) ) == 0 );
- TEST_ASSERT( strcmp( (char *) dst_str, {dst_string} ) == 0 );
+ TEST_ASSERT( base64_encode( dst_str, &len, src_str, strlen( (char *) src_str ) ) == {result} );
+ if( {result} == 0 )
+ {
+ TEST_ASSERT( strcmp( (char *) dst_str, {dst_string} ) == 0 );
+ }
}
END_CASE
BEGIN_CASE
-base64_decode:src_string:dst_string
+base64_decode:src_string:dst_string:result
{
unsigned char src_str[1000];
unsigned char dst_str[1000];
@@ -30,8 +33,11 @@ base64_decode:src_string:dst_string
memset(dst_str, 0x00, 1000);
strcpy( (char *) src_str, {src_string} );
- TEST_ASSERT( res = base64_decode( dst_str, &len, src_str, strlen( (char *) src_str ) ) == 0 );
- TEST_ASSERT( strcmp( (char *) dst_str, {dst_string} ) == 0 );
+ TEST_ASSERT( res = base64_decode( dst_str, &len, src_str, strlen( (char *) src_str ) ) == {result} );
+ if( {result} == 0 )
+ {
+ TEST_ASSERT( strcmp( (char *) dst_str, {dst_string} ) == 0 );
+ }
}
END_CASE