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();
        }
Ejemplo n.º 2
0
        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");

        }
Ejemplo n.º 3
0
        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");
        }