public void TestMaxWorkingSet() { using (Process p = Process.GetCurrentProcess()) { Assert.True((long)p.MaxWorkingSet > 0); Assert.True((long)p.MinWorkingSet >= 0); } if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { return; // doesn't support getting/setting working set for other processes } long curValue = (long)_process.MaxWorkingSet; Assert.True(curValue >= 0); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { try { _process.MaxWorkingSet = (IntPtr)((int)curValue + 1024); IntPtr min, max; uint flags; Interop.GetProcessWorkingSetSizeEx(_process.SafeHandle, out min, out max, out flags); curValue = (int)max; _process.Refresh(); Assert.Equal(curValue, (int)_process.MaxWorkingSet); } finally { _process.MaxWorkingSet = (IntPtr)curValue; } } }