Skip to content

Commit dd74b0e

Browse files
authored
Redesign diskspd parser to use proper parsing logic (#190)
* save * Rewrite DiskSpd Parser * fix test * fix test
1 parent 00adf15 commit dd74b0e

File tree

12 files changed

+457
-574
lines changed

12 files changed

+457
-574
lines changed

.pipelines/azure-pipelines-linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ resources:
1616
options: --entrypoint=""
1717

1818
variables:
19-
VcVersion : 1.11.3
19+
VcVersion : 1.11.5
2020
ROOT: $(Build.SourcesDirectory)
2121
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
2222
ENABLE_PRS_DELAYSIGN: 1

.pipelines/azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pool:
1818
vmImage: windows-latest
1919

2020
variables:
21-
VcVersion : 1.11.4
21+
VcVersion : 1.11.5
2222
ROOT: $(Build.SourcesDirectory)
2323
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
2424
ENABLE_PRS_DELAYSIGN: 1

src/VirtualClient/VirtualClient.Actions.FunctionalTests/DiskSpdProfileTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public async Task DiskSpdWorkloadProfileExecutesTheExpectedWorkloadsOnWindowsPla
7979
this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDir) =>
8080
{
8181
IProcessProxy process = this.mockFixture.CreateProcess(command, arguments, workingDir);
82-
if (arguments.Contains("--name=diskspd", StringComparison.OrdinalIgnoreCase))
82+
if (arguments.Contains("diskspd", StringComparison.OrdinalIgnoreCase))
8383
{
8484
process.StandardOutput.Append(TestDependencies.GetResourceFileContents("Results_DiskSpd.txt"));
8585
}

src/VirtualClient/VirtualClient.Actions.FunctionalTests/VirtualClient.Actions.FunctionalTests.csproj

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@
7777
<Content Include="..\TestResources\Results_MLPerf_Harness_Summary.json" Link="Resources\Results_MLPerf_Harness_Summary.json">
7878
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
7979
</Content>
80-
<Content Include="..\TestResources\Results_Postgresql.txt" Link="Resources\Results_Postgresql.txt">
81-
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
82-
</Content>
80+
<Content Include="..\TestResources\Results_Postgresql.txt" Link="Resources\Results_Postgresql.txt">
81+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
82+
</Content>
8383
<Content Include="..\TestResources\Results_Prime95.txt" Link="Resources\Results_Prime95.txt">
8484
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
8585
</Content>
@@ -146,7 +146,7 @@
146146
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
147147
</Content>
148148
<Content Include="..\VirtualClient.Main\profiles\PERF-CPU-HPLINPACK.json" Link="Profiles\PERF-CPU-HPLINPACK.json">
149-
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
149+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
150150
</Content>
151151
<Content Include="..\VirtualClient.Main\profiles\PERF-CPU-LAPACK.json" Link="Profiles\PERF-CPU-LAPACK.json">
152152
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
@@ -169,9 +169,9 @@
169169
<Content Include="..\VirtualClient.Main\profiles\PERF-OPENFOAM.json" Link="Profiles\PERF-OPENFOAM.json">
170170
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
171171
</Content>
172-
<Content Include="..\VirtualClient.Main\profiles\PERF-SQL-POSTGRESQL.json" Link="Profiles\PERF-SQL-POSTGRESQL.json">
173-
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
174-
</Content>
172+
<Content Include="..\VirtualClient.Main\profiles\PERF-SQL-POSTGRESQL.json" Link="Profiles\PERF-SQL-POSTGRESQL.json">
173+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
174+
</Content>
175175
<Content Include="..\VirtualClient.Main\profiles\PERF-STRESSNG.json" Link="Profiles\PERF-STRESSNG.json">
176176
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
177177
</Content>
@@ -203,8 +203,8 @@
203203
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
204204
</Content>
205205
<Content Include="..\VirtualClient.Main\profiles\PERF-MYSQL-SYSBENCH-OLTP.json" Link="Profiles\PERF-MYSQL-SYSBENCH-OLTP.json">
206-
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
207-
</Content>
206+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
207+
</Content>
208208
<Content Include="..\VirtualClient.Main\profiles\PERF-NETWORK-DEATHSTARBENCH.json" Link="Profiles\PERF-NETWORK-DEATHSTARBENCH.json">
209209
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
210210
</Content>

src/VirtualClient/VirtualClient.Actions.UnitTests/DiskSpd/DiskSpdExecutorTests.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ namespace VirtualClient.Actions.DiskPerformance
88
using System.Diagnostics;
99
using System.IO;
1010
using System.Linq;
11+
using System.Reflection;
1112
using System.Threading;
1213
using System.Threading.Tasks;
1314
using Microsoft.Extensions.DependencyInjection;
1415
using NUnit.Framework;
1516
using Polly;
17+
using VirtualClient.Common;
1618
using VirtualClient.Common.Telemetry;
1719
using VirtualClient.Contracts;
1820

@@ -23,6 +25,7 @@ public class DiskSpdExecutorTests
2325
private DependencyFixture fixture;
2426
private Dictionary<string, IConvertible> profileParameters;
2527
private IEnumerable<Disk> disks;
28+
private string output;
2629

2730
[SetUp]
2831
public void SetupDefaultBehavior()
@@ -41,6 +44,18 @@ public void SetupDefaultBehavior()
4144
{ nameof(DiskSpdExecutor.ProcessModel), WorkloadProcessModel.SingleProcess },
4245
{ nameof(DiskSpdExecutor.TestName), "diskspd_randwrite_4GB_direct" }
4346
};
47+
48+
string workingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
49+
string outputPath = Path.Combine(workingDirectory, @"Examples\DiskSpd\DiskSpdExample-ReadWrite.txt");
50+
this.output = File.ReadAllText(outputPath);
51+
52+
this.fixture.ProcessManager.OnCreateProcess = (command, arguments, workingDir) =>
53+
{
54+
IProcessProxy process = this.fixture.CreateProcess(command, arguments, workingDir);
55+
process.StandardOutput.Append(this.output);
56+
57+
return process;
58+
};
4459
}
4560

4661
[Test]
@@ -301,6 +316,9 @@ public async Task DiskSpdExecutorExecutesExpectedProcesses()
301316
OnHasExited = () => true
302317
};
303318

319+
process1.StandardOutput.Append(this.output);
320+
process2.StandardOutput.Append(this.output);
321+
304322
List<DiskWorkloadProcess> expectedWorkloads = new List<DiskWorkloadProcess>
305323
{
306324
new DiskWorkloadProcess(process1, "anyTestedInstance", "D:\\any\file.dat"),

0 commit comments

Comments
 (0)