public static void Test05ApplyCharacteristicSet() { var set1 = new CharacteristicSet(); var set2 = new CharacteristicSet(); set1 .Apply( new EnvMode { Platform = Platform.X64 }) .Apply( new Job { Run = { LaunchCount = 2 }, Env = { Platform = Platform.X86 } }); AssertProperties(set1, "LaunchCount=2, Platform=X86"); Equal(Job.EnvCharacteristic[set1].Platform, Platform.X86); Equal(set1.HasValue(Job.EnvCharacteristic), true); Equal(EnvMode.PlatformCharacteristic[set1], Platform.X86); set2.Apply(EnvMode.RyuJitX64).Apply(new GcMode { Concurrent = true }); Equal(Job.RunCharacteristic[set2], null); Equal(set2.HasValue(Job.RunCharacteristic), false); AssertProperties(set2, "Concurrent=True, Jit=RyuJit, Platform=X64"); var temp = set1.UnfreezeCopy(); set1.Apply(set2); set2.Apply(temp); AssertProperties(set1, "Concurrent=True, Jit=RyuJit, LaunchCount=2, Platform=X64"); AssertProperties(set2, "Concurrent=True, Jit=RyuJit, LaunchCount=2, Platform=X86"); var j = new Job(); AssertProperties(j, "Default"); j.Env.Gc.Apply(set1); AssertProperties(j, "Concurrent=True"); j.Run.Apply(set1); AssertProperties(j, "Concurrent=True, LaunchCount=2"); j.Env.Apply(set1); AssertProperties(j, "Jit=RyuJit, Platform=X64, Concurrent=True, LaunchCount=2"); j.Apply(set1); AssertProperties(j, "Jit=RyuJit, Platform=X64, Concurrent=True, LaunchCount=2"); }
public static void Test04Apply() { var j = new Job() { Run = { TargetCount = 1 } }; AssertProperties(j, "TargetCount=1"); j.Apply( new Job { Env = { Platform = Platform.X64 }, Run = { TargetCount = 2 } }); AssertProperties(j, "Platform=X64, TargetCount=2"); // filter by properties j.Env.Apply( new Job() .With(Jit.RyuJit) .WithGcAllowVeryLargeObjects(true) .WithTargetCount(3) .WithLaunchCount(22)); AssertProperties(j, "Jit=RyuJit, Platform=X64, AllowVeryLargeObjects=True, TargetCount=2"); // apply subnode j.Apply( new GcMode() { AllowVeryLargeObjects = false }); AssertProperties(j, "Jit=RyuJit, Platform=X64, AllowVeryLargeObjects=False, TargetCount=2"); // Apply empty j.Apply(Job.Default); // does nothing AssertProperties(j, "Jit=RyuJit, Platform=X64, AllowVeryLargeObjects=False, TargetCount=2"); }