Loading...
--- libmalloc/libmalloc-374.120.1/tests/memory_pressure.c
+++ libmalloc/libmalloc-646.0.13/tests/memory_pressure.c
@@ -23,6 +23,7 @@
for (int t=0; t<100; t++) {
for (int i=0; i<cnt; i++) {
struct entry *p = calloc(1, sz);
+ T_QUIET; T_ASSERT_NOTNULL(p, "Failed to make allocation with size %zu", sz);
TAILQ_INSERT_TAIL(&head, p, next);
}
int i=0;
@@ -43,6 +44,7 @@
T_META_ENVVAR("MallocScribble=1"),
T_META_ENVVAR("MallocSpaceEfficient=1"),
T_META_ENVVAR("MallocMaxMagazines=1"),
+ T_META_TAG_VM_NOT_PREFERRED,
T_META_CHECK_LEAKS(false))
{
dispatch_queue_t q = dispatch_queue_create("pressure queue", 0); // serial
@@ -57,10 +59,21 @@
}
T_DECL(small_mem_pressure, "small memory pressure thread",
+ T_META_TAG_VM_NOT_PREFERRED,
+ T_META_RUN_CONCURRENTLY(true),
#if TARGET_OS_WATCH
T_META_TIMEOUT(TEST_TIMEOUT),
#endif // TARGET_OS_WATCH
+#if TARGET_OS_OSX
+ T_META_ALL_VALID_ARCHS(true), // test Rosetta
+ // darwintest multi-arch support relies on the first line of stderr
+ // being reserved for arch(1) complaining about a given slice being
+ // unsupported, so we can only put the malloc debug reporting on stderr
+ // when we don't need that
+ T_META_ENVVAR("MallocDebugReport=none"),
+#else // TARGET_OS_OSX
T_META_ENVVAR("MallocDebugReport=stderr"),
+#endif // TARGET_OS_OSX
T_META_ENVVAR("MallocScribble=1"),
T_META_ENVVAR("MallocSpaceEfficient=1"),
T_META_ENVVAR("MallocMaxMagazines=1"),
@@ -111,6 +124,7 @@
#if TARGET_OS_WATCH
T_META_TIMEOUT(TEST_TIMEOUT),
#endif // TARGET_OS_WATCH
+ T_META_TAG_VM_NOT_PREFERRED,
T_META_CHECK_LEAKS(false)) {
dispatch_group_t g = dispatch_group_create();
for (int i=0; i<16; i++) {
@@ -132,6 +146,8 @@
}
T_DECL(small_mem_pressure_multi, "test memory pressure in small on threads",
+ T_META_TAG_VM_NOT_PREFERRED,
+ T_META_RUN_CONCURRENTLY(true),
#if TARGET_OS_WATCH
T_META_TIMEOUT(TEST_TIMEOUT),
#endif // TARGET_OS_WATCH
@@ -159,7 +175,9 @@
#if TARGET_OS_WATCH
T_META_TIMEOUT(TEST_TIMEOUT),
#endif // TARGET_OS_WATCH
- T_META_CHECK_LEAKS(false)) {
+ T_META_CHECK_LEAKS(false),
+ T_META_TAG_VM_NOT_PREFERRED,
+ T_META_RUN_CONCURRENTLY(true)) {
dispatch_group_t g = dispatch_group_create();
for (int i=0; i<30; i++) {
dispatch_group_async(g, dispatch_get_global_queue(0, 0), ^{