private static Job CreateJob(string id, int launchCount, int warmupCount, int targetCount, RunStrategy? runStrategy) { var job = new Job(id); if (launchCount != DefaultValue) job.Run.LaunchCount = launchCount; if (warmupCount != DefaultValue) job.Run.WarmupCount = warmupCount; if (targetCount != DefaultValue) job.Run.TargetCount = targetCount; if (runStrategy != null) job.Run.RunStrategy = runStrategy.Value; return job.Freeze(); }
public static void Test02Modify() { var j = new Job("SomeId"); Equal(j.Id, "SomeId"); Equal(j.Env.Platform, Platform.AnyCpu); Equal(j.Run.LaunchCount, 0); False(j.HasValue(EnvMode.PlatformCharacteristic)); False(j.Env.HasValue(EnvMode.PlatformCharacteristic)); False(j.HasValue(RunMode.LaunchCountCharacteristic)); False(j.Run.HasValue(RunMode.LaunchCountCharacteristic)); AssertProperties(j, "Default"); AssertProperties(j.Env, "Default"); // 1. change values j.Env.Platform = Platform.X64; j.Run.LaunchCount = 1; Equal(j.Id, "SomeId"); Equal(j.Env.Platform, Platform.X64); Equal(j.Run.LaunchCount, 1); True(j.HasValue(EnvMode.PlatformCharacteristic)); True(j.Env.HasValue(EnvMode.PlatformCharacteristic)); True(j.HasValue(RunMode.LaunchCountCharacteristic)); True(j.Run.HasValue(RunMode.LaunchCountCharacteristic)); AssertProperties(j, "Platform=X64, LaunchCount=1"); AssertProperties(j.Env, "Platform=X64"); AssertProperties(j.Run, "LaunchCount=1"); // 2. reset Env mode (hack via Characteristic setting) var oldEnv = j.Env; Job.EnvCharacteristic[j] = new EnvMode(); Equal(j.Id, "SomeId"); Equal(j.Env.Platform, Platform.AnyCpu); Equal(j.Run.LaunchCount, 1); False(j.HasValue(EnvMode.PlatformCharacteristic)); False(j.Env.HasValue(EnvMode.PlatformCharacteristic)); True(j.HasValue(RunMode.LaunchCountCharacteristic)); True(j.Run.HasValue(RunMode.LaunchCountCharacteristic)); AssertProperties(j, "LaunchCount=1"); AssertProperties(j.Env, "Default"); AssertProperties(j.Run, "LaunchCount=1"); // 2.1 proof that oldEnv was the same Equal(j.Id, "SomeId"); Equal(oldEnv.Platform, Platform.X64); True(oldEnv.HasValue(EnvMode.PlatformCharacteristic)); Equal(oldEnv.Id, "Platform=X64"); // 3. update Env mode (hack via Characteristic setting) Job.EnvCharacteristic[j] = new EnvMode() { Platform = Platform.X86 }; Equal(j.Id, "SomeId"); Equal(j.Env.Platform, Platform.X86); Equal(j.Run.LaunchCount, 1); True(j.HasValue(EnvMode.PlatformCharacteristic)); True(j.Env.HasValue(EnvMode.PlatformCharacteristic)); True(j.HasValue(RunMode.LaunchCountCharacteristic)); True(j.Run.HasValue(RunMode.LaunchCountCharacteristic)); AssertProperties(j, "Platform=X86, LaunchCount=1"); AssertProperties(j.Env, "Platform=X86"); AssertProperties(j.Run, "LaunchCount=1"); // 4. Freeze-unfreeze: j = j.Freeze().UnfreezeCopy(); Equal(j.Id, "Platform=X86, LaunchCount=1"); Equal(j.Env.Platform, Platform.X86); Equal(j.Run.LaunchCount, 1); True(j.HasValue(EnvMode.PlatformCharacteristic)); True(j.Env.HasValue(EnvMode.PlatformCharacteristic)); True(j.HasValue(RunMode.LaunchCountCharacteristic)); True(j.Run.HasValue(RunMode.LaunchCountCharacteristic)); AssertProperties(j, "Platform=X86, LaunchCount=1"); AssertProperties(j.Env, "Platform=X86"); AssertProperties(j.Run, "LaunchCount=1"); // 5. Test .With extensions j = j.Freeze() .WithId("NewId"); Equal(j.Id, "NewId"); // id set j = j.Freeze() .With(Platform.X64) .WithLaunchCount(2); Equal(j.Id, "Platform=X64, LaunchCount=2"); // id lost Equal(j.Env.Platform, Platform.X64); Equal(j.Run.LaunchCount, 2); True(j.HasValue(EnvMode.PlatformCharacteristic)); True(j.Env.HasValue(EnvMode.PlatformCharacteristic)); True(j.HasValue(RunMode.LaunchCountCharacteristic)); True(j.Run.HasValue(RunMode.LaunchCountCharacteristic)); AssertProperties(j, "Platform=X64, LaunchCount=2"); AssertProperties(j.Env, "Platform=X64"); AssertProperties(j.Run, "LaunchCount=2"); }
public static void Test01Create() { var j = new Job("CustomId"); Equal(j.Frozen, false); Equal(j.Env.Frozen, false); Equal(j.Run.Frozen, false); Equal(j.Env.Gc.AllowVeryLargeObjects, false); Equal(j.Env.Platform, Platform.AnyCpu); Equal(j.Run.RunStrategy, RunStrategy.Throughput); // set by default Equal(j.Id, "CustomId"); Equal(j.DisplayInfo, "CustomId"); Equal(j.ResolvedId, "CustomId"); Equal(j.ResolvedId, j.FolderInfo); Equal(j.Env.Id, "CustomId"); // freeze var old = j; j = j.Freeze(); Same(old, j); j = j.Freeze(); Same(old, j); Equal(j.Frozen, true); Equal(j.Env.Frozen, true); Equal(j.Run.Frozen, true); Equal(j.Env.Gc.AllowVeryLargeObjects, false); Equal(j.Env.Platform, Platform.AnyCpu); Equal(j.Run.RunStrategy, RunStrategy.Throughput); // set by default Equal(j.Id, "CustomId"); Equal(j.DisplayInfo, "CustomId"); Equal(j.ResolvedId, "CustomId"); Equal(j.ResolvedId, j.FolderInfo); Equal(j.Env.Id, "CustomId"); // unfreeze old = j; j = j.UnfreezeCopy(); NotSame(old, j); Equal(j.Frozen, false); Equal(j.Env.Frozen, false); Equal(j.Run.Frozen, false); Equal(j.Env.Gc.AllowVeryLargeObjects, false); Equal(j.Env.Platform, Platform.AnyCpu); Equal(j.Run.RunStrategy, RunStrategy.Throughput); // set by default Equal(j.Id, "Default"); // id reset True(j.DisplayInfo == "DefaultJob", "DisplayInfo = " + j.DisplayInfo); True(j.ResolvedId == "DefaultJob", "ResolvedId = " + j.ResolvedId); Equal(j.ResolvedId, j.FolderInfo); Equal(j.Env.Id, "Default"); // new job j = new Job(j.Freeze()); Equal(j.Frozen, false); Equal(j.Env.Frozen, false); Equal(j.Run.Frozen, false); Equal(j.Env.Gc.AllowVeryLargeObjects, false); Equal(j.Env.Platform, Platform.AnyCpu); Equal(j.Run.RunStrategy, RunStrategy.Throughput); // set by default Equal(j.Id, "Default"); // id reset True(j.DisplayInfo == "DefaultJob", "DisplayInfo = " + j.DisplayInfo); True(j.ResolvedId == "DefaultJob", "ResolvedId = " + j.ResolvedId); Equal(j.ResolvedId, j.FolderInfo); Equal(j.Env.Id, "Default"); }