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