private void TestDisableCoreDumpGlobally() { Skip.If(libc == null); Debug.WriteLine("LibcProtectedMemoryAllocatorTest.TestDisableCoreDumpGlobally"); // Mac allocator has global core dumps disabled on init if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Assert.False(libcProtectedMemoryAllocator.AreCoreDumpsGloballyDisabled()); libc.getrlimit(libcProtectedMemoryAllocator.GetRlimitCoreResource(), out var rlim); // Initial values here system dependent, assumes docker container spun up w/ unlimited Assert.Equal(rlimit.UNLIMITED, rlim.rlim_max); Assert.Equal(rlimit.UNLIMITED, rlim.rlim_cur); } libcProtectedMemoryAllocator.DisableCoreDumpGlobally(); Assert.True(libcProtectedMemoryAllocator.AreCoreDumpsGloballyDisabled()); rlimit zeroRlimit = rlimit.Zero(); libc.getrlimit(libcProtectedMemoryAllocator.GetRlimitCoreResource(), out var newRlimit); Assert.Equal(zeroRlimit.rlim_cur, newRlimit.rlim_cur); Assert.Equal(zeroRlimit.rlim_max, newRlimit.rlim_max); }
private void TestDisableCoreDumpGlobally() { // Don't run libc tests on platforms that don't match libc/posix behaviors if (libc == null) { return; } // Mac allocator has global core dumps disabled on init if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Assert.False(libcProtectedMemoryAllocator.AreCoreDumpsGloballyDisabled()); libc.getrlimit(libcProtectedMemoryAllocator.GetRlimitCoreResource(), out var rlim); // Initial values here system dependent, assumes docker container spun up w/ unlimited Assert.Equal(rlimit.UNLIMITED, rlim.rlim_max); Assert.Equal(rlimit.UNLIMITED, rlim.rlim_cur); } libcProtectedMemoryAllocator.DisableCoreDumpGlobally(); Assert.True(libcProtectedMemoryAllocator.AreCoreDumpsGloballyDisabled()); rlimit zeroRlimit = rlimit.Zero(); libc.getrlimit(libcProtectedMemoryAllocator.GetRlimitCoreResource(), out var newRlimit); Assert.Equal(zeroRlimit.rlim_cur, newRlimit.rlim_cur); Assert.Equal(zeroRlimit.rlim_max, newRlimit.rlim_max); }