public void ClipboardIsDisabledForReads() { var clipboardText = "Text From Test"; IFTestHelper.Execute("write-clipboard", clipboardText).WaitForExit(); var proc = IFTestHelper.Execute("read-clipboard"); proc.WaitForExit(); Assert.Equal(clipboardText, proc.StandardOutput.ReadToEnd().Trim()); proc = IFTestHelper.ExecuteInJob(jobObject, "read-clipboard"); proc.WaitForExit(); Assert.DoesNotContain(clipboardText, proc.StandardOutput.ReadToEnd().Trim()); }
public void CanGetMemoryPeak() { jobObject.SetJobMemoryLimit(DefaultMemoryLimit); ulong allocateBytes = DefaultMemoryLimit * 2; var process = IFTestHelper.ExecuteInJob(jobObject, "allocate-memory", "--bytes", allocateBytes); if (IFTestHelper.Succeeded(process)) { Assert.True(DefaultMemoryLimit <= jobObject.GetPeakJobMemoryUsed()); } else { Assert.NotEqual(0UL, jobObject.GetPeakJobMemoryUsed()); } }
public void GetQueuedCompletionStatus_CanLimitMemory() { using (var jobObject = new JobObject()) { const ulong limitInBytes = 1024 * 1024 * 25; // 25MB const ulong allocateBytes = limitInBytes * 2; jobObject.SetJobMemoryLimit(limitInBytes); var process = IFTestHelper.ExecuteInJob(jobObject, "allocate-memory", "--bytes", allocateBytes); process.WaitForExit(1000); var msgs = jobObject.GetQueuedCompletionStatus(); Assert.Contains(msgs, x => x == JobObject.CompletionMsg.JobMemoryLimit); } }
public void CanSetPriority() { jobObject.SetPriorityClass(ProcessPriorityClass.Idle); jobObject2.SetPriorityClass(ProcessPriorityClass.AboveNormal); var thread1 = new Thread(() => { IFTestHelper.ExecuteInJob(jobObject, "consume-cpu", "--duration", "4000").WaitForExit(); }); var thread2 = new Thread(() => { IFTestHelper.ExecuteInJob(jobObject2, "consume-cpu", "--duration", "4000").WaitForExit(); }); thread1.Start(); thread2.Start(); thread1.Join(); thread2.Join(); var ratio = (float)jobObject.GetCpuStatistics().TotalUserTime.Ticks / jobObject2.GetCpuStatistics().TotalUserTime.Ticks; Assert.InRange(ratio, 0.01, 0.5); }
public void CanLimitCpu() { jobObject.SetJobCpuLimit(1); jobObject2.SetJobCpuLimit(9); var thread1 = new Thread(() => { IFTestHelper.ExecuteInJob(jobObject, "consume-cpu", "--duration", "2000").WaitForExit(); }); var thread2 = new Thread(() => { IFTestHelper.ExecuteInJob(jobObject2, "consume-cpu", "--duration", "2000").WaitForExit(); }); thread1.Start(); thread2.Start(); thread1.Join(); thread2.Join(); var ratio = (float)jobObject.GetCpuStatistics().TotalUserTime.Ticks / jobObject2.GetCpuStatistics().TotalUserTime.Ticks; Assert.InRange(ratio, 0.01, 0.4); }