Skip to content

Commit

Permalink
Merge pull request #10754 from basoundr/SupportTestsProvidingScenarios
Browse files Browse the repository at this point in the history
This change enables the test csx files to provide the scenarios that needs to be monitored within a test execution
  • Loading branch information
basoundr committed Apr 22, 2016
2 parents 583c674 + 9680b52 commit 9e4efe9
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 7 deletions.
21 changes: 15 additions & 6 deletions src/Test/Perf/runner.csx
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,22 @@ foreach (dynamic test in testInstances)

for (int i = 0; i < iterations; i++)
{
traceManager.StartScenarios();
traceManager.Start();
traceManager.StartScenario(test.Name + i, test.MeasuredProc);
traceManager.StartEvent();
test.Test();
traceManager.EndEvent();
traceManager.EndScenario();
traceManager.StartScenarios();

if (test.ProvidesScenarios)
{
traceManager.WriteScenarios(test.GetScenarios());
test.Test();
}
else
{
traceManager.StartScenario(test.Name + i, test.MeasuredProc);
traceManager.StartEvent();
test.Test();
traceManager.EndEvent();
traceManager.EndScenario();
}

traceManager.EndScenarios();
traceManager.WriteScenariosFileToDisk();
Expand Down
5 changes: 5 additions & 0 deletions src/Test/Perf/tests/csharp/csharp_compiler.csx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ class CSharpCompilerTest: PerfTest
public override int Iterations => 2;
public override string Name => "csharp " + _rspFile;
public override string MeasuredProc => "csc";
public override bool ProvidesScenarios => false;
public override string[] GetScenarios()
{
throw new System.NotImplementedException();
}
}

TestThisPlease(
Expand Down
5 changes: 5 additions & 0 deletions src/Test/Perf/tests/helloworld/hello_world.csx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ class HelloWorldTest: PerfTest
public override int Iterations => 2;
public override string Name => "hello world";
public override string MeasuredProc => "csc";
public override bool ProvidesScenarios => false;
public override string[] GetScenarios()
{
throw new System.NotImplementedException();
}
}

TestThisPlease(new HelloWorldTest());
7 changes: 6 additions & 1 deletion src/Test/Perf/util/scenario_generator_util.csx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public class ScenarioGenerator

public void AddStartEvent(int absoluteInstance)
{
WriteToBuffer($@"<from providerGuid=""{KernelProviderGuid}"" absoluteInstance=""{absoluteInstance}"" process=""csc"" eventName = ""Process/Start""/>");
WriteToBuffer($@"<from providerGuid=""{KernelProviderGuid}"" absoluteInstance=""{absoluteInstance}"" process=""csc"" eventName=""Process/Start""/>");
}

public void AddEndEvent()
Expand All @@ -63,6 +63,11 @@ public class ScenarioGenerator
{
WriteToBuffer($@"<!-- {comment} -->");
}

public void AddLine(string line)
{
WriteToBuffer(line);
}

public void WriteToDisk()
{
Expand Down
2 changes: 2 additions & 0 deletions src/Test/Perf/util/test_util.csx
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,8 @@ abstract class PerfTest: RelativeDirectory {
Log(description + ": " + value.ToString());
}

public abstract bool ProvidesScenarios { get; }
public abstract string[] GetScenarios();
public abstract void Setup();
public abstract void Test();
public abstract int Iterations { get; }
Expand Down
13 changes: 13 additions & 0 deletions src/Test/Perf/util/trace_manager_util.csx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ interface ITraceManager
void StartScenario(string scenarioName, string processName);
void StartScenarios();
void Stop();
void WriteScenarios(string[] scenarios);
void WriteScenariosFileToDisk();
}

Expand Down Expand Up @@ -106,6 +107,10 @@ class NoOpTraceManager : ITraceManager
{
}

public void WriteScenarios(string[] scenarios)
{
}

public void WriteScenariosFileToDisk()
{
}
Expand Down Expand Up @@ -209,6 +214,14 @@ class TraceManager: ITraceManager
{
_scenarioGenerator.AddScenariosFileEnd();
}

public void WriteScenarios(string[] scenarios)
{
foreach (var line in scenarios)
{
_scenarioGenerator.AddLine(line);
}
}

public void WriteScenariosFileToDisk()
{
Expand Down

0 comments on commit 9e4efe9

Please sign in to comment.