[acceptance-tests] Don't pass a zero sampling/heapshot frequency in the profiler...
authorAlex Rønne Petersen <alexrp@xamarin.com>
Wed, 28 Jun 2017 12:07:39 +0000 (14:07 +0200)
committerAlex Rønne Petersen <alexrp@xamarin.com>
Wed, 28 Jun 2017 12:07:39 +0000 (14:07 +0200)
Also change the code to make it more likely that we actually do some runs
without sampling or heapshot enabled.

acceptance-tests/profiler-stress/runner.cs

index 51c9d91f5e5f0ddbc42c89a85680c8dbe5f751a7..302e43e639228c097c5a13eb74053c25662646b6 100644 (file)
@@ -95,16 +95,22 @@ namespace Mono.Profiling.Tests.Stress {
                        for (var i = 0; i < benchmarks.Length; i++) {
                                var bench = benchmarks [i];
 
-                               var sampleFreq = rand.Next (0, 1001);
+                               var sampleFreq = rand.Next (-1000, 1001);
                                var sampleMode = rand.Next (0, 2) == 1 ? "real" : "process";
                                var maxSamples = rand.Next (0, cpus * 2000 + 1);
-                               var heapShotFreq = rand.Next (0, 11);
+                               var heapShotFreq = rand.Next (-10, 11);
                                var maxFrames = rand.Next (0, 33);
                                var options = _options.ToDictionary (x => x, _ => rand.Next (0, 2) == 1)
                                                      .Select (x => (x.Value ? string.Empty : "no") + x.Key)
                                                      .ToArray ();
 
-                               var profOptions = $"sample={sampleFreq},sampling-{sampleMode},maxsamples={maxSamples},heapshot={heapShotFreq}gc,maxframes={maxFrames},{string.Join (",", options)},output=/dev/null";
+                               var profOptions = $"maxframes={maxFrames},{string.Join (",", options)},output=/dev/null";
+
+                               if (sampleFreq > 0)
+                                       profOptions += $",sample={sampleFreq},sampling-{sampleMode},maxsamples={maxSamples}";
+
+                               if (heapShotFreq > 0)
+                                       profOptions += $",heapshot={heapShotFreq}gc";
 
                                var info = new ProcessStartInfo {
                                        UseShellExecute = false,