diff options
Diffstat (limited to 'src/tests/common/base64_tests.c')
-rw-r--r-- | src/tests/common/base64_tests.c | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/src/tests/common/base64_tests.c b/src/tests/common/base64_tests.c index 9453c98..0893c09 100644 --- a/src/tests/common/base64_tests.c +++ b/src/tests/common/base64_tests.c @@ -14,12 +14,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <config.h> #include "tests/common/base64_tests.h" #include <stdlib.h> #include <stdint.h> #include <string.h> +#include "common/errcode.h" #include "common/base64.h" #define BUF_LEN 256 @@ -51,10 +53,14 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "1. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "1. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "1. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "1. test vector - DEC output content"); + endskip; // 2. test vector -> ENC -> DEC strcpy((char *)in, "f"); @@ -63,10 +69,14 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "2. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "2. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "2. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "2. test vector - DEC output content"); + endskip; // 3. test vector -> ENC -> DEC strcpy((char *)in, "fo"); @@ -75,10 +85,14 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "3. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "3. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "3. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "3. test vector - DEC output content"); + endskip; // 4. test vector -> ENC -> DEC strcpy((char *)in, "foo"); @@ -87,10 +101,14 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "4. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "4. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "4. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "4. test vector - DEC output content"); + endskip; // 5. test vector -> ENC -> DEC strcpy((char *)in, "foob"); @@ -99,10 +117,14 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "5. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "5. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "5. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "5. test vector - DEC output content"); + endskip; // 6. test vector -> ENC -> DEC strcpy((char *)in, "fooba"); @@ -111,10 +133,14 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "6. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "6. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "6. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "6. test vector - DEC output content"); + endskip; // 7. test vector -> ENC -> DEC strcpy((char *)in, "foobar"); @@ -123,32 +149,36 @@ static int base64_tests_run(int argc, char *argv[]) ref_len = strlen((char *)ref); ret = base64_encode(in, in_len, out, BUF_LEN); cmp_ok(ret, "==", ref_len, "7. test vector - ENC output length"); + skip(ret < 0, 1); ok(memcmp(out, ref, ret) == 0, "7. test vector - ENC output content"); + endskip; ret = base64_decode(out, ret, out2, BUF_LEN); cmp_ok(ret, "==", in_len, "7. test vector - DEC output length"); + skip(ret < 0, 1); ok(memcmp(out2, in, ret) == 0, "7. test vector - DEC output content"); + endskip; // Bad paddings ret = base64_decode((uint8_t *)"A===", 4, out, BUF_LEN); - cmp_ok(ret, "==", -2, "Bad padding length 3"); + cmp_ok(ret, "==", KNOT_BASE64_ECHAR, "Bad padding length 3"); ret = base64_decode((uint8_t *)"====", 4, out, BUF_LEN); - cmp_ok(ret, "==", -2, "Bad padding length 4"); + cmp_ok(ret, "==", KNOT_BASE64_ECHAR, "Bad padding length 4"); // Bad data length ret = base64_decode((uint8_t *)"A", 1, out, BUF_LEN); - cmp_ok(ret, "==", -1, "Bad data length 1"); + cmp_ok(ret, "==", KNOT_BASE64_ESIZE, "Bad data length 1"); ret = base64_decode((uint8_t *)"AA", 2, out, BUF_LEN); - cmp_ok(ret, "==", -1, "Bad data length 2"); + cmp_ok(ret, "==", KNOT_BASE64_ESIZE, "Bad data length 2"); ret = base64_decode((uint8_t *)"AAA", 3, out, BUF_LEN); - cmp_ok(ret, "==", -1, "Bad data length 3"); + cmp_ok(ret, "==", KNOT_BASE64_ESIZE, "Bad data length 3"); ret = base64_decode((uint8_t *)"AAAAA", 5, out, BUF_LEN); - cmp_ok(ret, "==", -1, "Bad data length 5"); + cmp_ok(ret, "==", KNOT_BASE64_ESIZE, "Bad data length 5"); // Bad data character ret = base64_decode((uint8_t *)"AAA$", 4, out, BUF_LEN); - cmp_ok(ret, "==", -2, "Bad data character dollar"); + cmp_ok(ret, "==", KNOT_BASE64_ECHAR, "Bad data character dollar"); ret = base64_decode((uint8_t *)"AAA ", 4, out, BUF_LEN); - cmp_ok(ret, "==", -2, "Bad data character space"); + cmp_ok(ret, "==", KNOT_BASE64_ECHAR, "Bad data character space"); return 0; } |