diff options
Diffstat (limited to '')
| -rw-r--r-- | libtest/config.mk | 8 | ||||
| -rw-r--r-- | libtest/libtest.h | 20 | ||||
| -rw-r--r-- | libtest/random.c | 20 |
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 |
