Skip to content

Commit 6e96fba

Browse files
committed
C#: Address review comments: Merge XML index commands.
1 parent ee396af commit 6e96fba

File tree

2 files changed

+31
-65
lines changed

2 files changed

+31
-65
lines changed

csharp/extractor/Semmle.Autobuild.Tests/BuildScripts.cs

Lines changed: 28 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -356,17 +356,15 @@ public void TestDefaultCSharpAutoBuilder()
356356
Actions.RunProcess["cmd.exe /C dotnet restore"] = 0;
357357
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --auto dotnet build --no-incremental /p:UseSharedCompilation=false"] = 0;
358358
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
359-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config"] = 0;
360-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
361-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions props"] = 0;
359+
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
362360
Actions.FileExists["csharp.log"] = true;
363361
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
364362
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
365363
Actions.EnumerateFiles[@"C:\Project"] = "foo.cs\nbar.cs";
366364
Actions.EnumerateDirectories[@"C:\Project"] = "";
367365

368366
var autobuilder = CreateAutoBuilder("csharp", true);
369-
TestAutobuilderScript(autobuilder, 0, 8);
367+
TestAutobuilderScript(autobuilder, 0, 6);
370368
}
371369

372370
[Fact]
@@ -377,17 +375,15 @@ public void TestLinuxCSharpAutoBuilder()
377375
Actions.RunProcess["dotnet restore"] = 0;
378376
Actions.RunProcess[@"C:\odasa\tools\odasa index --auto dotnet build --no-incremental /p:UseSharedCompilation=false"] = 0;
379377
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
380-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
381-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
382-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
378+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
383379
Actions.FileExists["csharp.log"] = true;
384380
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
385381
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
386382
Actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.cs";
387383
Actions.EnumerateDirectories[@"C:\Project"] = "";
388384

389385
var autobuilder = CreateAutoBuilder("csharp", false);
390-
TestAutobuilderScript(autobuilder, 0, 8);
386+
TestAutobuilderScript(autobuilder, 0, 6);
391387
}
392388

393389
[Fact]
@@ -490,17 +486,15 @@ public void TestLinuxBuildlessExtractionSuccess()
490486
{
491487
Actions.RunProcess[@"C:\odasa\tools\csharp\Semmle.Extraction.CSharp.Standalone --references:."] = 0;
492488
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
493-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
494-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
495-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
489+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
496490
Actions.FileExists["csharp.log"] = true;
497491
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
498492
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
499493
Actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
500494
Actions.EnumerateDirectories[@"C:\Project"] = "";
501495

502496
var autobuilder = CreateAutoBuilder("csharp", false, buildless:"true");
503-
TestAutobuilderScript(autobuilder, 0, 5);
497+
TestAutobuilderScript(autobuilder, 0, 3);
504498
}
505499

506500
[Fact]
@@ -524,17 +518,15 @@ public void TestLinuxBuildlessExtractionSolution()
524518
{
525519
Actions.RunProcess[@"C:\odasa\tools\csharp\Semmle.Extraction.CSharp.Standalone foo.sln --references:."] = 0;
526520
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
527-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
528-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
529-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
521+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
530522
Actions.FileExists["csharp.log"] = true;
531523
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
532524
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
533525
Actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
534526
Actions.EnumerateDirectories[@"C:\Project"] = "";
535527

536528
var autobuilder = CreateAutoBuilder("csharp", false, buildless: "true", solution: "foo.sln");
537-
TestAutobuilderScript(autobuilder, 0, 5);
529+
TestAutobuilderScript(autobuilder, 0, 3);
538530
}
539531

540532
void SkipVsWhere()
@@ -570,9 +562,7 @@ public void TestLinuxBuildCommand()
570562
{
571563
Actions.RunProcess["C:\\odasa\\tools\\odasa index --auto \"./build.sh --skip-tests\""] = 0;
572564
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
573-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
574-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
575-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
565+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
576566
Actions.FileExists["csharp.log"] = true;
577567
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
578568
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
@@ -582,7 +572,7 @@ public void TestLinuxBuildCommand()
582572
SkipVsWhere();
583573

584574
var autobuilder = CreateAutoBuilder("csharp", false, buildCommand:"./build.sh --skip-tests");
585-
TestAutobuilderScript(autobuilder, 0, 5);
575+
TestAutobuilderScript(autobuilder, 0, 3);
586576
}
587577

588578
[Fact]
@@ -597,13 +587,11 @@ public void TestLinuxBuildSh()
597587
Actions.RunProcess[@"C:\odasa\tools\odasa index --auto build/build.sh"] = 0;
598588
Actions.RunProcessWorkingDirectory[@"C:\odasa\tools\odasa index --auto build/build.sh"] = "build";
599589
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
600-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
601-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
602-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
590+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
603591
Actions.FileExists["csharp.log"] = true;
604592

605593
var autobuilder = CreateAutoBuilder("csharp", false);
606-
TestAutobuilderScript(autobuilder, 0, 7);
594+
TestAutobuilderScript(autobuilder, 0, 5);
607595
}
608596

609597
[Fact]
@@ -653,13 +641,11 @@ public void TestWindowsBuildBat()
653641
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --auto build.bat"] = 0;
654642
Actions.RunProcessWorkingDirectory[@"cmd.exe /C C:\odasa\tools\odasa index --auto build.bat"] = "";
655643
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
656-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config"] = 0;
657-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
658-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions props"] = 0;
644+
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
659645
Actions.FileExists["csharp.log"] = true;
660646

661647
var autobuilder = CreateAutoBuilder("csharp", true);
662-
TestAutobuilderScript(autobuilder, 0, 6);
648+
TestAutobuilderScript(autobuilder, 0, 4);
663649
}
664650

665651
[Fact]
@@ -706,9 +692,7 @@ public void TestWindowCSharpMsBuild()
706692
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\csharp\nuget\nuget.exe restore C:\Project\test2.sln"] = 0;
707693
Actions.RunProcess["cmd.exe /C CALL ^\"C:\\Program Files ^(x86^)\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat^\" && C:\\odasa\\tools\\odasa index --auto msbuild C:\\Project\\test2.sln /p:UseSharedCompilation=false /t:Windows /p:Platform=\"x86\" /p:Configuration=\"Debug\" /p:MvcBuildViews=true /P:Fu=Bar"] = 0;
708694
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
709-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config"] = 0;
710-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
711-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions props"] = 0;
695+
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
712696
Actions.FileExists["csharp.log"] = true;
713697
Actions.FileExists[@"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"] = false;
714698
Actions.FileExists[@"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"] = false;
@@ -728,7 +712,7 @@ public void TestWindowCSharpMsBuild()
728712
autobuilder.SolutionsToBuild.Add(testSolution1);
729713
autobuilder.SolutionsToBuild.Add(testSolution2);
730714

731-
TestAutobuilderScript(autobuilder, 0, 8);
715+
TestAutobuilderScript(autobuilder, 0, 6);
732716
}
733717

734718
[Fact]
@@ -764,9 +748,7 @@ public void TestSkipNugetMsBuild()
764748
Actions.RunProcess["cmd.exe /C CALL ^\"C:\\Program Files ^(x86^)\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat^\" && C:\\odasa\\tools\\odasa index --auto msbuild C:\\Project\\test1.sln /p:UseSharedCompilation=false /t:Windows /p:Platform=\"x86\" /p:Configuration=\"Debug\" /p:MvcBuildViews=true /P:Fu=Bar"] = 0;
765749
Actions.RunProcess["cmd.exe /C CALL ^\"C:\\Program Files ^(x86^)\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat^\" && C:\\odasa\\tools\\odasa index --auto msbuild C:\\Project\\test2.sln /p:UseSharedCompilation=false /t:Windows /p:Platform=\"x86\" /p:Configuration=\"Debug\" /p:MvcBuildViews=true /P:Fu=Bar"] = 0;
766750
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
767-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config"] = 0;
768-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
769-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions props"] = 0;
751+
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
770752
Actions.FileExists["csharp.log"] = true;
771753
Actions.FileExists[@"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"] = false;
772754
Actions.FileExists[@"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"] = false;
@@ -786,25 +768,23 @@ public void TestSkipNugetMsBuild()
786768
autobuilder.SolutionsToBuild.Add(testSolution1);
787769
autobuilder.SolutionsToBuild.Add(testSolution2);
788770

789-
TestAutobuilderScript(autobuilder, 0, 6);
771+
TestAutobuilderScript(autobuilder, 0, 4);
790772
}
791773

792774
[Fact]
793775
public void TestSkipNugetBuildless()
794776
{
795777
Actions.RunProcess[@"C:\odasa\tools\csharp\Semmle.Extraction.CSharp.Standalone foo.sln --references:. --skip-nuget"] = 0;
796778
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
797-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
798-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
799-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
779+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
800780
Actions.FileExists["csharp.log"] = true;
801781
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
802782
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
803783
Actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
804784
Actions.EnumerateDirectories[@"C:\Project"] = "";
805785

806786
var autobuilder = CreateAutoBuilder("csharp", false, buildless: "true", solution: "foo.sln", nugetRestore:"false");
807-
TestAutobuilderScript(autobuilder, 0, 5);
787+
TestAutobuilderScript(autobuilder, 0, 3);
808788
}
809789

810790

@@ -816,17 +796,15 @@ public void TestSkipNugetDotnet()
816796
Actions.RunProcess["dotnet restore"] = 0;
817797
Actions.RunProcess[@"C:\odasa\tools\odasa index --auto dotnet build --no-incremental /p:UseSharedCompilation=false --no-restore"] = 0;
818798
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
819-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
820-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
821-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
799+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
822800
Actions.FileExists["csharp.log"] = true;
823801
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
824802
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
825803
Actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.cs";
826804
Actions.EnumerateDirectories[@"C:\Project"] = "";
827805

828806
var autobuilder = CreateAutoBuilder("csharp", false, dotnetArguments:"--no-restore"); // nugetRestore=false does not work for now.
829-
TestAutobuilderScript(autobuilder, 0, 8);
807+
TestAutobuilderScript(autobuilder, 0, 6);
830808
}
831809

832810
[Fact]
@@ -842,9 +820,7 @@ public void TestDotnetVersionNotInstalled()
842820
Actions.RunProcess[@"C:\Project\.dotnet\dotnet restore"] = 0;
843821
Actions.RunProcess[@"C:\odasa\tools\odasa index --auto C:\Project\.dotnet\dotnet build --no-incremental /p:UseSharedCompilation=false"] = 0;
844822
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
845-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
846-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
847-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
823+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
848824
Actions.FileExists["csharp.log"] = true;
849825
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
850826
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
@@ -853,7 +829,7 @@ public void TestDotnetVersionNotInstalled()
853829
Actions.EnumerateDirectories[@"C:\Project"] = "";
854830

855831
var autobuilder = CreateAutoBuilder("csharp", false, dotnetVersion:"2.1.3");
856-
TestAutobuilderScript(autobuilder, 0, 12);
832+
TestAutobuilderScript(autobuilder, 0, 10);
857833
}
858834

859835
[Fact]
@@ -869,9 +845,7 @@ public void TestDotnetVersionAlreadyInstalled()
869845
Actions.RunProcess[@"C:\Project\.dotnet\dotnet restore"] = 0;
870846
Actions.RunProcess[@"C:\odasa\tools\odasa index --auto C:\Project\.dotnet\dotnet build --no-incremental /p:UseSharedCompilation=false"] = 0;
871847
Actions.RunProcess[@"C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
872-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config"] = 0;
873-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
874-
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions props"] = 0;
848+
Actions.RunProcess[@"C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
875849
Actions.FileExists["csharp.log"] = true;
876850
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
877851
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
@@ -880,7 +854,7 @@ public void TestDotnetVersionAlreadyInstalled()
880854
Actions.EnumerateDirectories[@"C:\Project"] = "";
881855

882856
var autobuilder = CreateAutoBuilder("csharp", false, dotnetVersion: "2.1.3");
883-
TestAutobuilderScript(autobuilder, 0, 12);
857+
TestAutobuilderScript(autobuilder, 0, 10);
884858
}
885859

886860
[Fact]
@@ -894,9 +868,7 @@ public void TestDotnetVersionWindows()
894868
Actions.RunProcess[@"cmd.exe /C C:\Project\.dotnet\dotnet restore"] = 0;
895869
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --auto C:\Project\.dotnet\dotnet build --no-incremental /p:UseSharedCompilation=false"] = 0;
896870
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\java\bin\java -jar C:\odasa\tools\extractor-asp.jar ."] = 0;
897-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config"] = 0;
898-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions csproj"] = 0;
899-
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions props"] = 0;
871+
Actions.RunProcess[@"cmd.exe /C C:\odasa\tools\odasa index --xml --extensions config csproj props xml"] = 0;
900872
Actions.FileExists["csharp.log"] = true;
901873
Actions.GetEnvironmentVariable["TRAP_FOLDER"] = null;
902874
Actions.GetEnvironmentVariable["SOURCE_ARCHIVE"] = null;
@@ -905,7 +877,7 @@ public void TestDotnetVersionWindows()
905877
Actions.EnumerateDirectories[@"C:\Project"] = "";
906878

907879
var autobuilder = CreateAutoBuilder("csharp", true, dotnetVersion: "2.1.3");
908-
TestAutobuilderScript(autobuilder, 0, 10);
880+
TestAutobuilderScript(autobuilder, 0, 8);
909881
}
910882
}
911883
}

csharp/extractor/Semmle.Autobuild/XmlBuildRule.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,10 @@ class XmlBuildRule : IBuildRule
99
{
1010
public BuildScript Analyse(Autobuilder builder)
1111
{
12-
var config = new CommandBuilder(builder.Actions).
12+
var command = new CommandBuilder(builder.Actions).
1313
RunCommand(builder.Odasa).
14-
Argument("index --xml --extensions config");
15-
var csproj = new CommandBuilder(builder.Actions).
16-
RunCommand(builder.Odasa).
17-
Argument("index --xml --extensions csproj");
18-
var props = new CommandBuilder(builder.Actions).
19-
RunCommand(builder.Odasa).
20-
Argument("index --xml --extensions props");
21-
return config.Script & csproj.Script & props.Script;
14+
Argument("index --xml --extensions config csproj props xml");
15+
return command.Script;
2216
}
2317
}
2418
}

0 commit comments

Comments
 (0)