[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Extra tests for tor_memeq and memcmp
commit 5126bc2ebd9ae67449e3c4f18828acb895d86308
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Wed Sep 10 23:58:02 2014 -0400
Extra tests for tor_memeq and memcmp
(Patch from teor; part of 13104)
---
src/test/test_util.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 16a2927..f091fc9 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -3251,6 +3251,25 @@ test_util_di_ops(void)
test_eq(neq1, !eq1);
}
+ /* exhaustively white-box test tor_memeq
+ * against each possible (single-byte) bit difference
+ * some arithmetic bugs only appear with certain bit patterns */
+ const uint8_t z = 0;
+ uint8_t ii = 0;
+ for (i = 0; i < 256; i++) {
+ ii = (uint8_t)i;
+ test_eq(tor_memeq(&z, &ii, 1), z == ii);
+ }
+
+ /* exhaustively white-box test tor_memcmp
+ * against each possible single-byte numeric difference
+ * some arithmetic bugs only appear with certain bit patterns */
+ for (i = 0; i < 256; i++) {
+ ii = (uint8_t)i;
+ test_eq(tor_memcmp(&z, &ii, 1) > 0 ? GT : EQ, z > ii ? GT : EQ);
+ test_eq(tor_memcmp(&ii, &z, 1) < 0 ? LT : EQ, ii < z ? LT : EQ);
+ }
+
tt_int_op(1, ==, safe_mem_is_zero("", 0));
tt_int_op(1, ==, safe_mem_is_zero("", 1));
tt_int_op(0, ==, safe_mem_is_zero("a", 1));
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits