aboutsummaryrefslogtreecommitdiffstats
path: root/libtest
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-05-14 10:47:23 +0200
committerMattias Andrée <m@maandree.se>2026-05-14 10:47:23 +0200
commitb1d4927aa3d1d1b31034ede3eeb374efcdcfed0d (patch)
tree088d55cefd7673ce2e9741aaa5b20cb0fc5603bd /libtest
parentTests and fixes (diff)
downloadlibrecrypt-b1d4927aa3d1d1b31034ede3eeb374efcdcfed0d.tar.gz
librecrypt-b1d4927aa3d1d1b31034ede3eeb374efcdcfed0d.tar.bz2
librecrypt-b1d4927aa3d1d1b31034ede3eeb374efcdcfed0d.tar.xz
Tests and fixes
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
-rw-r--r--libtest/config.mk8
-rw-r--r--libtest/libtest.h20
-rw-r--r--libtest/random.c20
3 files changed, 28 insertions, 20 deletions
diff --git a/libtest/config.mk b/libtest/config.mk
index 6dff8a9..3b81c3f 100644
--- a/libtest/config.mk
+++ b/libtest/config.mk
@@ -3,3 +3,11 @@ IMPLEMENT_MMAP = true
TEST_CONFIGFILE = config_backtraces=$(WITH_BACKTRACE).mk
include $(TEST_INCLUDE_PREFIX)$(TEST_CONFIGFILE)
+
+# If IMPLEMENT_MMAP is false, it is assumed that libc provides __mmap,
+# __munmap, and __mremap as aliases for mmap, mumap, and mremap. If
+# this isn't the case for your libc, but it provides other aliases,
+# you can add e.g. "-D__mmap=_mmap -D__munmap=_munmap -D__mremap=_mremap"
+# to specify the alises libc provides (in this example _mmap, _munmap,
+# and _mremap). NB! "-D__mmap=mmap -D__munmap=munmap -D__mremap=mremap"
+# is not allowed as libtest overrides mmap(3), munmap(3), and mremap(3).
diff --git a/libtest/libtest.h b/libtest/libtest.h
index 9fa7e56..8f44114 100644
--- a/libtest/libtest.h
+++ b/libtest/libtest.h
@@ -424,18 +424,18 @@ size_t libtest_get_alloc_failure_in(void);
void libtest_set_alloc_failure_in(size_t n);
-extern unsigned char *libtest_random_pattern;
-extern size_t libtest_random_pattern_length;
-extern size_t libtest_random_pattern_offset;
+extern const unsigned char *volatile libtest_random_pattern;
+extern volatile size_t libtest_random_pattern_length;
+extern volatile size_t libtest_random_pattern_offset;
#if defined(__linux__)
-extern int libtest_getrandom_real;
-extern int libtest_getrandom_error;
-extern size_t libtest_getrandom_max_return;
+extern volatile int libtest_getrandom_real;
+extern volatile int libtest_getrandom_error;
+extern volatile size_t libtest_getrandom_max_return;
#endif
-extern int libtest_getentropy_real;
-extern int libtest_getentropy_error;
-extern size_t libtest_getentropy_calls;
-extern int libtest_getentropy_jmp_val;
+extern volatile int libtest_getentropy_real;
+extern volatile int libtest_getentropy_error;
+extern volatile size_t libtest_getentropy_calls;
+extern volatile int libtest_getentropy_jmp_val;
extern jmp_buf libtest_getentropy_jmp;
diff --git a/libtest/random.c b/libtest/random.c
index 2eb22e6..8f0b398 100644
--- a/libtest/random.c
+++ b/libtest/random.c
@@ -3,9 +3,9 @@
#ifndef TEST
-unsigned char *libtest_random_pattern = NULL;
-size_t libtest_random_pattern_length = 0u;
-size_t libtest_random_pattern_offset = 0u;
+const unsigned char *volatile libtest_random_pattern = NULL;
+volatile size_t libtest_random_pattern_length = 0u;
+volatile size_t libtest_random_pattern_offset = 0u;
static ssize_t
genpattern(void *buf, size_t size)
@@ -41,9 +41,9 @@ genpattern(void *buf, size_t size)
#if defined(__linux__)
-int libtest_getrandom_real = 1;
-int libtest_getrandom_error = 0;
-size_t libtest_getrandom_max_return = SIZE_MAX;
+volatile int libtest_getrandom_real = 1;
+volatile int libtest_getrandom_error = 0;
+volatile size_t libtest_getrandom_max_return = SIZE_MAX;
ssize_t
(getrandom)(void *buf, size_t size, unsigned int flags)
@@ -71,10 +71,10 @@ ssize_t
#endif
-int libtest_getentropy_real = 1;
-int libtest_getentropy_error = 0;
-size_t libtest_getentropy_calls = 0u;
-int libtest_getentropy_jmp_val = 0;
+volatile int libtest_getentropy_real = 1;
+volatile int libtest_getentropy_error = 0;
+volatile size_t libtest_getentropy_calls = 0u;
+volatile int libtest_getentropy_jmp_val = 0;
jmp_buf libtest_getentropy_jmp;
int