2019-09-24 08:56:19 +08:00
|
|
|
#include "test/jemalloc_test.h"
|
|
|
|
|
|
|
|
#include <signal.h>
|
|
|
|
|
|
|
|
static bool abort_called = false;
|
|
|
|
|
2023-07-06 04:33:34 +08:00
|
|
|
void set_abort_called(const char *message) {
|
|
|
|
(void)message;
|
2019-09-24 08:56:19 +08:00
|
|
|
abort_called = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
TEST_BEGIN(test_realloc_abort) {
|
|
|
|
abort_called = false;
|
|
|
|
safety_check_set_abort(&set_abort_called);
|
|
|
|
void *ptr = mallocx(42, 0);
|
2020-02-19 06:39:06 +08:00
|
|
|
expect_ptr_not_null(ptr, "Unexpected mallocx error");
|
2019-09-24 08:56:19 +08:00
|
|
|
ptr = realloc(ptr, 0);
|
2020-02-19 06:39:06 +08:00
|
|
|
expect_true(abort_called, "Realloc with zero size didn't abort");
|
2019-09-24 08:56:19 +08:00
|
|
|
}
|
|
|
|
TEST_END
|
|
|
|
|
|
|
|
int
|
|
|
|
main(void) {
|
|
|
|
return test(
|
|
|
|
test_realloc_abort);
|
|
|
|
}
|
|
|
|
|