Skip to content

Commit cb128da

Browse files
authored
Merge pull request #15762 from hvitved/csharp/fetch-dotnet-dependency-fetching
C#: Fetch .NET in dependency manager instead of autobuilder
2 parents 1719fd8 + 20ff7de commit cb128da

File tree

37 files changed

+352
-387
lines changed

37 files changed

+352
-387
lines changed

cpp/autobuilder/Semmle.Autobuild.Cpp/Program.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System;
2+
23
using Semmle.Autobuild.Shared;
4+
using Semmle.Util;
35

46
namespace Semmle.Autobuild.Cpp
57
{

csharp/CSharp.sln

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp.Tes
3434
EndProject
3535
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Extraction.CSharp.DependencyStubGenerator", "extractor\Semmle.Extraction.CSharp.DependencyStubGenerator\Semmle.Extraction.CSharp.DependencyStubGenerator.csproj", "{0EDA21A3-ADD8-4C10-B494-58B12B526B76}"
3636
EndProject
37+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Cpp", "..\cpp\autobuilder\Semmle.Autobuild.Cpp\Semmle.Autobuild.Cpp.csproj", "{125C4FB7-34DA-442A-9095-3EA1514270CD}"
38+
EndProject
39+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Cpp.Tests", "..\cpp\autobuilder\Semmle.Autobuild.Cpp.Tests\Semmle.Autobuild.Cpp.Tests.csproj", "{72F369B7-0707-401A-802F-D526F272F9EE}"
40+
EndProject
3741
Global
3842
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3943
Debug|Any CPU = Debug|Any CPU
@@ -102,6 +106,14 @@ Global
102106
{0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.Build.0 = Debug|Any CPU
103107
{0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.ActiveCfg = Release|Any CPU
104108
{0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.Build.0 = Release|Any CPU
109+
{125C4FB7-34DA-442A-9095-3EA1514270CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
110+
{125C4FB7-34DA-442A-9095-3EA1514270CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
111+
{125C4FB7-34DA-442A-9095-3EA1514270CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
112+
{125C4FB7-34DA-442A-9095-3EA1514270CD}.Release|Any CPU.Build.0 = Release|Any CPU
113+
{72F369B7-0707-401A-802F-D526F272F9EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
114+
{72F369B7-0707-401A-802F-D526F272F9EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
115+
{72F369B7-0707-401A-802F-D526F272F9EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
116+
{72F369B7-0707-401A-802F-D526F272F9EE}.Release|Any CPU.Build.0 = Release|Any CPU
105117
EndGlobalSection
106118
GlobalSection(SolutionProperties) = preSolution
107119
HideSolutionNode = FALSE

csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs

Lines changed: 10 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -558,8 +558,6 @@ public void TestVcVarsAllBatFiles()
558558
[Fact]
559559
public void TestLinuxBuildlessExtractionSuccess()
560560
{
561-
actions.RunProcess["dotnet --list-sdks"] = 0;
562-
actions.RunProcessOut["dotnet --list-sdks"] = "any version";
563561
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
564562
actions.FileExists["csharp.log"] = true;
565563
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
@@ -569,14 +567,12 @@ public void TestLinuxBuildlessExtractionSuccess()
569567
actions.EnumerateDirectories[@"C:\Project"] = "";
570568

571569
var autobuilder = CreateAutoBuilder(false, buildless: "true");
572-
TestAutobuilderScript(autobuilder, 0, 2);
570+
TestAutobuilderScript(autobuilder, 0, 1);
573571
}
574572

575573
[Fact]
576574
public void TestLinuxBuildlessExtractionFailed()
577575
{
578-
actions.RunProcess["dotnet --list-sdks"] = 0;
579-
actions.RunProcessOut["dotnet --list-sdks"] = "any version";
580576
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 10;
581577
actions.FileExists["csharp.log"] = true;
582578
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
@@ -586,14 +582,12 @@ public void TestLinuxBuildlessExtractionFailed()
586582
actions.EnumerateDirectories[@"C:\Project"] = "";
587583

588584
var autobuilder = CreateAutoBuilder(false, buildless: "true");
589-
TestAutobuilderScript(autobuilder, 10, 2);
585+
TestAutobuilderScript(autobuilder, 10, 1);
590586
}
591587

592588
[Fact]
593589
public void TestLinuxBuildlessExtractionSolution()
594590
{
595-
actions.RunProcess["dotnet --list-sdks"] = 0;
596-
actions.RunProcessOut["dotnet --list-sdks"] = "any version";
597591
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
598592
actions.FileExists["csharp.log"] = true;
599593
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
@@ -603,28 +597,7 @@ public void TestLinuxBuildlessExtractionSolution()
603597
actions.EnumerateDirectories[@"C:\Project"] = "";
604598

605599
var autobuilder = CreateAutoBuilder(false, buildless: "true");
606-
TestAutobuilderScript(autobuilder, 0, 2);
607-
}
608-
609-
[Fact]
610-
public void TestLinuxBuildlessExtractionNoDotnet()
611-
{
612-
actions.RunProcess["dotnet --list-sdks"] = 1;
613-
actions.RunProcessOut["dotnet --list-sdks"] = "";
614-
actions.RunProcess[@"chmod u+x scratch/.dotnet/dotnet-install.sh"] = 0;
615-
actions.RunProcess[@"scratch/.dotnet/dotnet-install.sh --channel release --version 8.0.101 --install-dir scratch/.dotnet"] = 0;
616-
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone --dotnet scratch/.dotnet"] = 0;
617-
actions.FileExists["csharp.log"] = true;
618-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
619-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
620-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"] = "scratch";
621-
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
622-
actions.EnumerateDirectories[@"C:\Project"] = "";
623-
actions.DownloadFiles.Add(("https://dot.net/v1/dotnet-install.sh", "scratch/.dotnet/dotnet-install.sh"));
624-
actions.CreateDirectories.Add(@"scratch/.dotnet");
625-
626-
var autobuilder = CreateAutoBuilder(false, buildless: "true");
627-
TestAutobuilderScript(autobuilder, 0, 4);
600+
TestAutobuilderScript(autobuilder, 0, 1);
628601
}
629602

630603
private void SkipVsWhere()
@@ -915,8 +888,6 @@ public void TestSkipNugetMsBuild()
915888
[Fact]
916889
public void TestSkipNugetBuildless()
917890
{
918-
actions.RunProcess["dotnet --list-sdks"] = 0;
919-
actions.RunProcessOut["dotnet --list-sdks"] = "any version";
920891
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
921892
actions.FileExists["csharp.log"] = true;
922893
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
@@ -926,7 +897,7 @@ public void TestSkipNugetBuildless()
926897
actions.EnumerateDirectories[@"C:\Project"] = "";
927898

928899
var autobuilder = CreateAutoBuilder(false, buildless: "true");
929-
TestAutobuilderScript(autobuilder, 0, 2);
900+
TestAutobuilderScript(autobuilder, 0, 1);
930901
}
931902

932903

@@ -999,12 +970,10 @@ public void TestDotnetVersionAlreadyInstalled()
999970
actions.RunProcess["dotnet --list-sdks"] = 0;
1000971
actions.RunProcessOut["dotnet --list-sdks"] = @"2.1.3 [C:\Program Files\dotnet\sdks]
1001972
2.1.4 [C:\Program Files\dotnet\sdks]";
1002-
actions.RunProcess[@"chmod u+x scratch/.dotnet/dotnet-install.sh"] = 0;
1003-
actions.RunProcess[@"scratch/.dotnet/dotnet-install.sh --channel release --version 2.1.3 --install-dir scratch/.dotnet"] = 0;
1004-
actions.RunProcess[@"scratch/.dotnet/dotnet --info"] = 0;
1005-
actions.RunProcess[@"scratch/.dotnet/dotnet clean C:\Project/test.csproj"] = 0;
1006-
actions.RunProcess[@"scratch/.dotnet/dotnet restore C:\Project/test.csproj"] = 0;
1007-
actions.RunProcess[@"scratch/.dotnet/dotnet build --no-incremental C:\Project/test.csproj"] = 0;
973+
actions.RunProcess[@"dotnet --info"] = 0;
974+
actions.RunProcess[@"dotnet clean C:\Project/test.csproj"] = 0;
975+
actions.RunProcess[@"dotnet restore C:\Project/test.csproj"] = 0;
976+
actions.RunProcess[@"dotnet build --no-incremental C:\Project/test.csproj"] = 0;
1008977
actions.FileExists["csharp.log"] = true;
1009978
actions.FileExists["test.csproj"] = true;
1010979
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
@@ -1022,17 +991,15 @@ public void TestDotnetVersionAlreadyInstalled()
1022991
1023992
</Project>");
1024993
actions.LoadXml[@"C:\Project/test.csproj"] = xml;
1025-
actions.DownloadFiles.Add(("https://dot.net/v1/dotnet-install.sh", "scratch/.dotnet/dotnet-install.sh"));
1026-
actions.CreateDirectories.Add(@"scratch/.dotnet");
1027994

1028995
var autobuilder = CreateAutoBuilder(false, dotnetVersion: "2.1.3");
1029-
TestAutobuilderScript(autobuilder, 0, 7);
996+
TestAutobuilderScript(autobuilder, 0, 5);
1030997
}
1031998

1032999
private void TestDotnetVersionWindows(Action action, int commandsRun)
10331000
{
10341001
actions.RunProcess["cmd.exe /C dotnet --list-sdks"] = 0;
1035-
actions.RunProcessOut["cmd.exe /C dotnet --list-sdks"] = "2.1.3 [C:\\Program Files\\dotnet\\sdks]\n2.1.4 [C:\\Program Files\\dotnet\\sdks]";
1002+
actions.RunProcessOut["cmd.exe /C dotnet --list-sdks"] = "2.1.4 [C:\\Program Files\\dotnet\\sdks]";
10361003
action();
10371004
actions.RunProcess[@"cmd.exe /C scratch\.dotnet\dotnet --info"] = 0;
10381005
actions.RunProcess[@"cmd.exe /C scratch\.dotnet\dotnet clean C:\Project\test.csproj"] = 0;

csharp/autobuilder/Semmle.Autobuild.CSharp/AutoBuildRule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Semmle.Autobuild.Shared;
22
using Semmle.Extraction.CSharp;
3+
using Semmle.Util;
34

45
namespace Semmle.Autobuild.CSharp
56
{

csharp/autobuilder/Semmle.Autobuild.CSharp/CSharpAutobuilder.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,8 @@ public override BuildScript GetBuildScript()
5050
attempt = new BuildCommandRule(DotNetRule.WithDotNet).Analyse(this, false) & CheckExtractorRun(true);
5151
break;
5252
case CSharpBuildStrategy.Buildless:
53-
attempt = DotNetRule.WithDotNet(this, ensureDotNetAvailable: true, (dotNetPath, env) =>
54-
{
55-
// No need to check that the extractor has been executed in buildless mode
56-
return new StandaloneBuildRule(dotNetPath).Analyse(this, false);
57-
});
53+
// No need to check that the extractor has been executed in buildless mode
54+
attempt = new StandaloneBuildRule().Analyse(this, false);
5855
break;
5956
case CSharpBuildStrategy.MSBuild:
6057
attempt = new MsBuildRule().Analyse(this, false) & CheckExtractorRun(true);
@@ -84,7 +81,7 @@ public BuildScript CheckExtractorRun(bool warnOnFailure) =>
8481
return 0;
8582

8683
if (warnOnFailure)
87-
Log(Severity.Error, "No C# code detected during build.");
84+
Logger.LogError("No C# code detected during build.");
8885

8986
return 1;
9087
});

csharp/autobuilder/Semmle.Autobuild.CSharp/Constants.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)