commit 2420c8c9366e498dfaf3b4b6389ece9dc27ca537
Author: teor <teor(a)torproject.org>
Date: Mon Sep 30 14:54:56 2019 +1000
test: Avoid a map_anon_nofork test failure on SunOS
This test failure happened due to a signed/unsigned integer
comparison.
This bug occurred on SunOS, it may also occur on other systems that
use signed char as the default. (And cast 1-byte integer constants
to an unsigned integer.)
Fixes bug 31897; bugfix on 0.4.1.1-alpha.
---
changes/bug31897 | 3 +++
src/test/test_util.c | 5 +++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/changes/bug31897 b/changes/bug31897
new file mode 100644
index 000000000..81c63e704
--- /dev/null
+++ b/changes/bug31897
@@ -0,0 +1,3 @@
+ o Minor bugfixes (tests, SunOS):
+ - Avoid a map_anon_nofork test failure due to a signed/unsigned integer
+ comparison. Fixes bug 31897; bugfix on 0.4.1.1-alpha.
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 2faadd4e1..6ecff6f1c 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -6182,6 +6182,7 @@ test_util_map_anon_nofork(void *arg)
* crash, or send zero. */
char *ptr = NULL;
+ const char TEST_VALUE = 0xd0;
size_t sz = 16384;
int pipefd[2] = {-1, -1};
unsigned inherit=0;
@@ -6189,7 +6190,7 @@ test_util_map_anon_nofork(void *arg)
tor_munmap_anonymous(ptr, sz);
ptr = tor_mmap_anonymous(sz, ANONMAP_NOINHERIT, &inherit);
tt_ptr_op(ptr, OP_NE, 0);
- memset(ptr, 0xd0, sz);
+ memset(ptr, TEST_VALUE, sz);
tt_int_op(0, OP_EQ, pipe(pipefd));
pid_t child = fork();
@@ -6220,7 +6221,7 @@ test_util_map_anon_nofork(void *arg)
// noinherit isn't implemented.
tt_int_op(inherit, OP_EQ, INHERIT_RES_KEEP);
tt_int_op((int)r, OP_EQ, 1); // child should send us a byte.
- tt_int_op(buf[0], OP_EQ, 0xd0); // that byte should what we set it to.
+ tt_int_op(buf[0], OP_EQ, TEST_VALUE); // that byte should be TEST_VALUE.
}
int ws;