Example #1
0
            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());
            }
Example #2
0
            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());
                }
            }
Example #3
0
            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);
                }
            }
Example #4
0
            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);
            }
Example #5
0
            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);
            }