mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-06-07 06:36:52 +02:00
test-base-64 was not updated after the following commits:93cc810f29
bbf5c1655a
This leads to errors like: In file included from /usr/include/c++/15.1.1/cassert:46, from /build/i2pd/src/i2pd-2.57.0/tests/test-base-64.cpp:1: /build/i2pd/src/i2pd-2.57.0/tests/test-base-64.cpp: In function ‘int main()’: /build/i2pd/src/i2pd-2.57.0/tests/test-base-64.cpp:14:28: error: too many arguments to function ‘std::string i2p::data::ByteStreamToBase64(const uint8_t*, size_t)’ 14 | assert(ByteStreamToBase64(NULL, 0, NULL, 0) == 0); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ and: In file included from /build/i2pd/src/i2pd-2.57.0/tests/test-base-64.cpp:4: /build/i2pd/src/i2pd-2.57.0/build/../libi2pd/Base.h:21:21: note: declared here 21 | std::string ByteStreamToBase64 (const uint8_t * InBuffer, size_t InCount); | ^~~~~~~~~~~~~~~~~~ /build/i2pd/src/i2pd-2.57.0/tests/test-base-64.cpp:14:47: error: no match for ‘operator==’ (operand types are ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} and ‘int’) 14 | assert(ByteStreamToBase64(NULL, 0, NULL, 0) == 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~ ~ | | | | | int | std::string {aka std::__cxx11::basic_string<char>} among others.
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#include <cassert>
|
|
#include <string.h>
|
|
|
|
#include "Base.h"
|
|
|
|
using namespace i2p::data;
|
|
|
|
int main() {
|
|
const char *in = "test";
|
|
size_t in_len = strlen(in);
|
|
char out[16];
|
|
|
|
/* bytes -> b64 */
|
|
assert(ByteStreamToBase64(NULL, 0) == "");
|
|
|
|
assert(Base64EncodingBufferSize(2) == 4);
|
|
assert(Base64EncodingBufferSize(4) == 8);
|
|
assert(Base64EncodingBufferSize(6) == 8);
|
|
assert(Base64EncodingBufferSize(7) == 12);
|
|
assert(Base64EncodingBufferSize(9) == 12);
|
|
assert(Base64EncodingBufferSize(10) == 16);
|
|
assert(Base64EncodingBufferSize(12) == 16);
|
|
assert(Base64EncodingBufferSize(13) == 20);
|
|
|
|
const std::string out_str(ByteStreamToBase64((uint8_t *) in, in_len));
|
|
assert(out_str.size() == 8);
|
|
assert(out_str == "dGVzdA==");
|
|
|
|
/* b64 -> bytes */
|
|
assert(Base64ToByteStream("", NULL, 0) == 0);
|
|
assert(Base64ToByteStream("", (uint8_t *) out, sizeof(out)) == 0);
|
|
|
|
in = "dGVzdA=="; /* valid b64 */
|
|
assert(Base64ToByteStream(in, (uint8_t *) out, sizeof(out)) == 4);
|
|
assert(memcmp(out, "test", 4) == 0);
|
|
|
|
in = "dGVzdA="; /* invalid b64 : not padded */
|
|
assert(Base64ToByteStream(in, (uint8_t *) out, sizeof(out)) == 0);
|
|
|
|
in = "dG/z.A=="; /* invalid b64 : char not from alphabet */
|
|
// assert(Base64ToByteStream(in, strlen(in), (uint8_t *) out, sizeof(out)) == 0);
|
|
// ^^^ fails, current implementation not checks acceptable symbols
|
|
|
|
return 0;
|
|
}
|