test/unit: add test for base64 with Arm NEON intrinsics
For in each loop, encoding with Arm NEON deals with 48 bytes and decoding deals with 64 bytes: encode: add test with src_len=48 and more than 48; decode: add test with src_len=64 and more than 64. Signed-off-by: Richael Zhuang <richael.zhuang@arm.com> Change-Id: Ie156d147165a2511eed03d212eb78300e0edc84c Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/465734 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
553bf8e430
commit
556e4d7054
@ -52,6 +52,25 @@ char text_E[] = "AbC12===";
|
||||
char text_F[] = "AbCd112";
|
||||
char text_G[] = "AbCd12";
|
||||
char text_H[] = "AbC12";
|
||||
char text_I[] = "AQu/1+cCCBUnOBFWv+HzoL3BOVUBItP2mRDdqhnxAtIT4hD1wbQ30Ylm8R+7khPS";//64 bytes
|
||||
char text_urlsafe_I[] =
|
||||
"AQu_1-cCCBUnOBFWv-HzoL3BOVUBItP2mRDdqhnxAtIT4hD1wbQ30Ylm8R-7khPS";//64 bytes
|
||||
uint8_t raw_I[] = {0x01, 0x0B, 0xBF, 0xD7, 0xE7, 0x02, 0x08, 0x15, 0x27, 0x38, 0x11, 0x56, 0xBF, 0xE1, 0xF3, 0xA0,
|
||||
0xBD, 0xC1, 0x39, 0x55, 0x01, 0x22, 0xD3, 0xF6, 0x99, 0x10, 0xDD, 0xAA, 0x19, 0xF1, 0x02, 0xD2,
|
||||
0x13, 0xE2, 0x10, 0xF5, 0xC1, 0xB4, 0x37, 0xD1, 0x89, 0x66, 0xF1, 0x1F, 0xBB, 0x92, 0x13, 0xD2
|
||||
};
|
||||
char text_J[] =
|
||||
"AQu/1+cCCBUnOBFWv+HzoL3BOVUBItP2mRDdqhnxAtIT4hD1wbQ30Ylm8R+7khPSvcE5VecCCBUZ8QLiEPVm8b3BOVUBItP2GfEC4hD1ZvE5VQEi0/aJZvEfu5LiEPUTvcE5VQEi0/YZEQ==";
|
||||
char text_urlsafe_J[] =
|
||||
"AQu_1-cCCBUnOBFWv-HzoL3BOVUBItP2mRDdqhnxAtIT4hD1wbQ30Ylm8R-7khPSvcE5VecCCBUZ8QLiEPVm8b3BOVUBItP2GfEC4hD1ZvE5VQEi0_aJZvEfu5LiEPUTvcE5VQEi0_YZEQ==";
|
||||
uint8_t raw_J[] = {0x01, 0x0B, 0xBF, 0xD7, 0xE7, 0x02, 0x08, 0x15, 0x27, 0x38, 0x11, 0x56, 0xBF, 0xE1, 0xF3, 0xA0,
|
||||
0xBD, 0xC1, 0x39, 0x55, 0x01, 0x22, 0xD3, 0xF6, 0x99, 0x10, 0xDD, 0xAA, 0x19, 0xF1, 0x02, 0xD2,
|
||||
0x13, 0xE2, 0x10, 0xF5, 0xC1, 0xB4, 0x37, 0xD1, 0x89, 0x66, 0xF1, 0x1F, 0xBB, 0x92, 0x13, 0xD2,
|
||||
0xBD, 0xC1, 0x39, 0x55, 0xE7, 0x02, 0x08, 0x15, 0x19, 0xF1, 0x02, 0xE2, 0x10, 0xF5, 0x66, 0xF1,
|
||||
0xBD, 0xC1, 0x39, 0x55, 0x01, 0x22, 0xD3, 0xF6, 0x19, 0xF1, 0x02, 0xE2, 0x10, 0xF5, 0x66, 0xF1,
|
||||
0x39, 0x55, 0x01, 0x22, 0xD3, 0xF6, 0x89, 0x66, 0xF1, 0x1F, 0xBB, 0x92, 0xE2, 0x10, 0xF5, 0x13,
|
||||
0xBD, 0xC1, 0x39, 0x55, 0x01, 0x22, 0xD3, 0xF6, 0x19, 0x11
|
||||
};
|
||||
|
||||
static void
|
||||
test_base64_get_encoded_strlen(void)
|
||||
@ -84,7 +103,7 @@ test_base64_get_decoded_len(void)
|
||||
static void
|
||||
test_base64_encode(void)
|
||||
{
|
||||
char text[100];
|
||||
char text[200];
|
||||
int ret;
|
||||
|
||||
ret = spdk_base64_encode(text, raw_A, sizeof(raw_A));
|
||||
@ -105,6 +124,14 @@ test_base64_encode(void)
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT(strcmp(text, text_D) == 0);
|
||||
|
||||
ret = spdk_base64_encode(text, raw_I, sizeof(raw_I));
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT(strcmp(text, text_I) == 0);
|
||||
|
||||
ret = spdk_base64_encode(text, raw_J, sizeof(raw_J));
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT(strcmp(text, text_J) == 0);
|
||||
|
||||
ret = spdk_base64_encode(NULL, raw_A, sizeof(raw_A));
|
||||
CU_ASSERT_EQUAL(ret, -EINVAL);
|
||||
ret = spdk_base64_encode(text, NULL, sizeof(raw_A));
|
||||
@ -116,7 +143,7 @@ test_base64_encode(void)
|
||||
static void
|
||||
test_base64_decode(void)
|
||||
{
|
||||
char raw_buf[100];
|
||||
char raw_buf[200];
|
||||
void *raw = (void *)raw_buf;
|
||||
size_t raw_len;
|
||||
int ret;
|
||||
@ -141,6 +168,16 @@ test_base64_decode(void)
|
||||
CU_ASSERT_EQUAL(raw_len, sizeof(raw_D));
|
||||
CU_ASSERT(memcmp(raw, raw_D, sizeof(raw_D)) == 0);
|
||||
|
||||
ret = spdk_base64_decode(raw, &raw_len, text_I);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT_EQUAL(raw_len, sizeof(raw_I));
|
||||
CU_ASSERT(memcmp(raw, raw_I, sizeof(raw_I)) == 0);
|
||||
|
||||
ret = spdk_base64_decode(raw, &raw_len, text_J);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT_EQUAL(raw_len, sizeof(raw_J));
|
||||
CU_ASSERT(memcmp(raw, raw_J, sizeof(raw_J)) == 0);
|
||||
|
||||
ret = spdk_base64_decode(raw, &raw_len, text_E);
|
||||
CU_ASSERT_EQUAL(ret, -EINVAL);
|
||||
ret = spdk_base64_decode(raw, &raw_len, text_F);
|
||||
@ -158,7 +195,7 @@ test_base64_decode(void)
|
||||
static void
|
||||
test_base64_urlsafe_encode(void)
|
||||
{
|
||||
char text[100];
|
||||
char text[200];
|
||||
int ret;
|
||||
|
||||
ret = spdk_base64_urlsafe_encode(text, raw_A, sizeof(raw_A));
|
||||
@ -179,6 +216,14 @@ test_base64_urlsafe_encode(void)
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT(strcmp(text, text_urlsafe_D) == 0);
|
||||
|
||||
ret = spdk_base64_urlsafe_encode(text, raw_I, sizeof(raw_I));
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT(strcmp(text, text_urlsafe_I) == 0);
|
||||
|
||||
ret = spdk_base64_urlsafe_encode(text, raw_J, sizeof(raw_J));
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT(strcmp(text, text_urlsafe_J) == 0);
|
||||
|
||||
ret = spdk_base64_urlsafe_encode(NULL, raw_A, sizeof(raw_A));
|
||||
CU_ASSERT_EQUAL(ret, -EINVAL);
|
||||
ret = spdk_base64_urlsafe_encode(text, NULL, sizeof(raw_A));
|
||||
@ -190,7 +235,7 @@ test_base64_urlsafe_encode(void)
|
||||
static void
|
||||
test_base64_urlsafe_decode(void)
|
||||
{
|
||||
char raw_buf[100];
|
||||
char raw_buf[200];
|
||||
void *raw = (void *)raw_buf;
|
||||
size_t raw_len = 0;
|
||||
int ret;
|
||||
@ -215,6 +260,16 @@ test_base64_urlsafe_decode(void)
|
||||
CU_ASSERT_EQUAL(raw_len, sizeof(raw_D));
|
||||
CU_ASSERT(memcmp(raw, raw_D, sizeof(raw_D)) == 0);
|
||||
|
||||
ret = spdk_base64_urlsafe_decode(raw, &raw_len, text_urlsafe_I);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT_EQUAL(raw_len, sizeof(raw_I));
|
||||
CU_ASSERT(memcmp(raw, raw_I, sizeof(raw_I)) == 0);
|
||||
|
||||
ret = spdk_base64_urlsafe_decode(raw, &raw_len, text_urlsafe_J);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
CU_ASSERT_EQUAL(raw_len, sizeof(raw_J));
|
||||
CU_ASSERT(memcmp(raw, raw_J, sizeof(raw_J)) == 0);
|
||||
|
||||
ret = spdk_base64_urlsafe_decode(raw, &raw_len, text_E);
|
||||
CU_ASSERT_EQUAL(ret, -EINVAL);
|
||||
ret = spdk_base64_urlsafe_decode(raw, &raw_len, text_F);
|
||||
|
Loading…
Reference in New Issue
Block a user