aboutsummaryrefslogtreecommitdiff
path: root/test/src
diff options
context:
space:
mode:
authorJ08nY2017-08-31 21:13:00 +0200
committerJ08nY2017-08-31 21:13:50 +0200
commit390046e05d5f14f07c6adbe879b51c48bbe27733 (patch)
tree8095406d7c4dfbcfbeb7812890fbe67e9037c85b /test/src
parent98672b5bc2c2897e372892d16124612cd0b1c96a (diff)
downloadecgen-390046e05d5f14f07c6adbe879b51c48bbe27733.tar.gz
ecgen-390046e05d5f14f07c6adbe879b51c48bbe27733.tar.zst
ecgen-390046e05d5f14f07c6adbe879b51c48bbe27733.zip
Diffstat (limited to 'test/src')
-rw-r--r--test/src/util/test_binascii.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/src/util/test_binascii.c b/test/src/util/test_binascii.c
new file mode 100644
index 0000000..47f3f61
--- /dev/null
+++ b/test/src/util/test_binascii.c
@@ -0,0 +1,54 @@
+/*
+ * ecgen, tool for generating Elliptic curve domain parameters
+ * Copyright (C) 2017 J08nY
+ */
+
+#include <criterion/criterion.h>
+#include "test/default.h"
+#include "util/binascii.h"
+#include "util/memory.h"
+
+TestSuite(binascii, .init = default_setup, .fini = default_teardown);
+
+Test(binascii, test_itob_big) {
+ GEN i = stoi((5 << 8) | 4);
+ char *bytes = binascii_itob(i, ENDIAN_BIG);
+ size_t len = binascii_blen(i);
+ cr_assert_eq(len, 2, );
+ cr_assert_eq(bytes[0], 5, );
+ cr_assert_eq(bytes[1], 4, );
+ try_free(bytes);
+}
+
+Test(binascii, test_itob_little) {
+ GEN i = stoi((5 << 8) | 4);
+ char *bytes = binascii_itob(i, ENDIAN_LITTLE);
+ size_t len = binascii_blen(i);
+ cr_assert_eq(len, 2, );
+ cr_assert_eq(bytes[0], 4, );
+ cr_assert_eq(bytes[1], 5, );
+ try_free(bytes);
+}
+
+Test(binascii, test_btoi_big) {
+ char bytes[] = {5, 4};
+ GEN i = binascii_btoi(bytes, 2, ENDIAN_BIG);
+ GEN expected = stoi((5 << 8) | 4);
+ cr_assert(equalii(expected, i), );
+}
+
+Test(binascii, test_btoi_little) {
+ char bytes[] = {5, 4};
+ GEN i = binascii_btoi(bytes, 2, ENDIAN_LITTLE);
+ GEN expected = stoi((4 << 8) | 5);
+ cr_assert(equalii(expected, i), );
+}
+
+Test(binascii, test_both) {
+ GEN expected = stoi((5 << 8) | 4);
+ char *bytes = binascii_itob(expected, ENDIAN_BIG);
+ size_t len = binascii_blen(expected);
+ GEN i = binascii_btoi(bytes, len, ENDIAN_BIG);
+ cr_assert(equalii(expected, i), );
+ try_free(bytes);
+} \ No newline at end of file