mirror of
https://github.com/fumiama/base16384.git
synced 2026-06-10 13:40:26 +08:00
feat(coder): add safe encode/decode
This commit is contained in:
@@ -43,24 +43,31 @@ char tstbuf[TEST_SIZE+16];
|
||||
return 1; \
|
||||
}
|
||||
|
||||
#define test_batch(encode, decode) \
|
||||
fputs("testing base16384_"#encode"/base16384_"#decode"...\n", stderr); \
|
||||
for(i = 0; i <= TEST_SIZE; i++) { \
|
||||
n = base16384_##encode(encbuf, i, decbuf); \
|
||||
n = base16384_##decode(decbuf, n, tstbuf); \
|
||||
if (memcmp(encbuf, tstbuf, n)) return_error(i, n); \
|
||||
}
|
||||
|
||||
int main() {
|
||||
srand(time(NULL));
|
||||
int i, n;
|
||||
for(i = 0; i <= TEST_SIZE; i += sizeof(int)) {
|
||||
*(int*)(&encbuf[i]) = rand();
|
||||
}
|
||||
fputs("testing base16384_en/decode...\n", stderr);
|
||||
for(i = 0; i <= TEST_SIZE; i++) {
|
||||
n = base16384_encode(encbuf, i, decbuf);
|
||||
n = base16384_decode(decbuf, n, tstbuf);
|
||||
int decn = n;
|
||||
if (memcmp(encbuf, tstbuf, n)) return_error(i, n);
|
||||
}
|
||||
fputs("testing base16384_en/ecode_unsafe...\n", stderr);
|
||||
for(i = 0; i <= TEST_SIZE; i++) {
|
||||
n = base16384_encode_unsafe(encbuf, i, decbuf);
|
||||
n = base16384_decode_unsafe(decbuf, n, tstbuf);
|
||||
if ((n = memcmp(encbuf, tstbuf, n))) return_error(i, n);
|
||||
}
|
||||
|
||||
test_batch(encode, decode);
|
||||
test_batch(encode, decode_unsafe);
|
||||
test_batch(encode, decode_safe);
|
||||
|
||||
test_batch(encode_unsafe, decode);
|
||||
test_batch(encode_unsafe, decode_unsafe);
|
||||
test_batch(encode_unsafe, decode_safe);
|
||||
|
||||
test_batch(encode_safe, decode);
|
||||
test_batch(encode_safe, decode_unsafe);
|
||||
test_batch(encode_safe, decode_safe);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -98,18 +98,16 @@ int main() {
|
||||
fputs("testing base16384_en/decode_file...\n", stderr);
|
||||
init_input_file();
|
||||
for(i = TEST_SIZE; i > 0; i--) {
|
||||
fprintf(stderr, "loop@%d\n", i);
|
||||
reset_and_truncate(fd, i);
|
||||
loop_ok(close(fd), i, "close");
|
||||
fputs("base16384_encode_file\n", stderr);
|
||||
|
||||
err = base16384_encode_file(TEST_INPUT_FILENAME, TEST_OUTPUT_FILENAME, encbuf, decbuf);
|
||||
base16384_loop_ok(err);
|
||||
fputs("base16384_decode_file\n", stderr);
|
||||
|
||||
err = base16384_decode_file(TEST_OUTPUT_FILENAME, TEST_VALIDATE_FILENAME, encbuf, decbuf);
|
||||
base16384_loop_ok(err);
|
||||
fputs("validate_result\n", stderr);
|
||||
|
||||
validate_result();
|
||||
fputs("fin\n\n", stderr);
|
||||
}
|
||||
|
||||
fputs("testing base16384_en/decode_fp...\n", stderr);
|
||||
|
||||
Reference in New Issue
Block a user