Skip to content

Commit 11da42b

Browse files
authored
Merge pull request github#16134 from hvitved/csharp/autobuild-buildless-process-indirection
C#: Avoid process creation indirection in auto-builder
2 parents f517c00 + 621de2b commit 11da42b

File tree

5 files changed

+2
-99
lines changed

5 files changed

+2
-99
lines changed

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

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -544,51 +544,6 @@ public void TestVcVarsAllBatFiles()
544544
Assert.Equal(2, vcvarsfiles.Length);
545545
}
546546

547-
[Fact]
548-
public void TestLinuxBuildlessExtractionSuccess()
549-
{
550-
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
551-
actions.FileExists["csharp.log"] = true;
552-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
553-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
554-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"] = "scratch";
555-
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
556-
actions.EnumerateDirectories[@"C:\Project"] = "";
557-
558-
var autobuilder = CreateAutoBuilder(false, buildless: "true");
559-
TestAutobuilderScript(autobuilder, 0, 1);
560-
}
561-
562-
[Fact]
563-
public void TestLinuxBuildlessExtractionFailed()
564-
{
565-
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 10;
566-
actions.FileExists["csharp.log"] = true;
567-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
568-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
569-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"] = "scratch";
570-
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
571-
actions.EnumerateDirectories[@"C:\Project"] = "";
572-
573-
var autobuilder = CreateAutoBuilder(false, buildless: "true");
574-
TestAutobuilderScript(autobuilder, 10, 1);
575-
}
576-
577-
[Fact]
578-
public void TestLinuxBuildlessExtractionSolution()
579-
{
580-
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
581-
actions.FileExists["csharp.log"] = true;
582-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
583-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
584-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"] = "scratch";
585-
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
586-
actions.EnumerateDirectories[@"C:\Project"] = "";
587-
588-
var autobuilder = CreateAutoBuilder(false, buildless: "true");
589-
TestAutobuilderScript(autobuilder, 0, 1);
590-
}
591-
592547
private void TestAutobuilderScript(CSharpAutobuilder autobuilder, int expectedOutput, int commandsRun)
593548
{
594549
Assert.Equal(expectedOutput, autobuilder.GetBuildScript().Run(actions, StartCallback, EndCallback));
@@ -677,21 +632,6 @@ public void TestWindowsBuildBat()
677632
TestAutobuilderScript(autobuilder, 0, 1);
678633
}
679634

680-
[Fact]
681-
public void TestSkipNugetBuildless()
682-
{
683-
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
684-
actions.FileExists["csharp.log"] = true;
685-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
686-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
687-
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"] = "scratch";
688-
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
689-
actions.EnumerateDirectories[@"C:\Project"] = "";
690-
691-
var autobuilder = CreateAutoBuilder(false, buildless: "true");
692-
TestAutobuilderScript(autobuilder, 0, 1);
693-
}
694-
695635
[Fact]
696636
public void TestDotnetVersionNotInstalled()
697637
{

csharp/autobuilder/Semmle.Autobuild.CSharp/Semmle.Autobuild.CSharp.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<ItemGroup>
66
<ProjectReference Include="..\..\extractor\Semmle.Util\Semmle.Util.csproj" />
77
<ProjectReference Include="..\..\extractor\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj" />
8+
<ProjectReference Include="..\..\extractor\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj" />
89
<ProjectReference Include="..\..\extractor\Semmle.Extraction.CSharp.DependencyFetching\Semmle.Extraction.CSharp.DependencyFetching.csproj" />
910
<ProjectReference Include="..\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj" />
1011
</ItemGroup>

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

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,7 @@ internal class StandaloneBuildRule : IBuildRule<CSharpAutobuildOptions>
1010
{
1111
public BuildScript Analyse(IAutobuilder<CSharpAutobuildOptions> builder, bool auto)
1212
{
13-
if (builder.CodeQLExtractorLangRoot is null
14-
|| builder.CodeQlPlatform is null)
15-
{
16-
return BuildScript.Failure;
17-
}
18-
19-
var standalone = builder.Actions.PathCombine(builder.CodeQLExtractorLangRoot, "tools", builder.CodeQlPlatform, "Semmle.Extraction.CSharp.Standalone");
20-
var cmd = new CommandBuilder(builder.Actions);
21-
cmd.RunCommand(standalone);
22-
23-
return cmd.Script;
13+
return BuildScript.Create(_ => Semmle.Extraction.CSharp.Standalone.Program.Main([]));
2414
}
2515
}
2616
}

csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,6 @@ public interface IAutobuilder<out TAutobuildOptions> where TAutobuildOptions : A
7373
/// A logger.
7474
/// </summary>
7575
ILogger Logger { get; }
76-
77-
/// <summary>
78-
/// Value of CODEQL_EXTRACTOR_<LANG>_ROOT environment variable.
79-
/// </summary>
80-
string? CodeQLExtractorLangRoot { get; }
81-
82-
/// <summary>
83-
/// Value of CODEQL_PLATFORM environment variable.
84-
/// </summary>
85-
string? CodeQlPlatform { get; }
8676
}
8777

8878
/// <summary>
@@ -197,9 +187,6 @@ protected Autobuilder(IBuildActions actions, TAutobuildOptions options, Diagnost
197187
return ret ?? new List<IProjectOrSolution>();
198188
});
199189

200-
CodeQLExtractorLangRoot = Actions.GetEnvironmentVariable(EnvVars.Root(this.Options.Language));
201-
CodeQlPlatform = Actions.GetEnvironmentVariable(EnvVars.Platform);
202-
203190
TrapDir = RequireEnvironmentVariable(EnvVars.TrapDir(this.Options.Language));
204191
SourceArchiveDir = RequireEnvironmentVariable(EnvVars.SourceArchiveDir(this.Options.Language));
205192
DiagnosticsDir = RequireEnvironmentVariable(EnvVars.DiagnosticDir(this.Options.Language));
@@ -364,15 +351,5 @@ protected virtual void Dispose(bool disposing)
364351
diagnostics.Dispose();
365352
}
366353
}
367-
368-
/// <summary>
369-
/// Value of CODEQL_EXTRACTOR_<LANG>_ROOT environment variable.
370-
/// </summary>
371-
public string? CodeQLExtractorLangRoot { get; }
372-
373-
/// <summary>
374-
/// Value of CODEQL_PLATFORM environment variable.
375-
/// </summary>
376-
public string? CodeQlPlatform { get; }
377354
}
378355
}

csharp/tools/tracing-config.lua

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,6 @@ function RegisterExtractorPack(id)
179179
end
180180

181181
local windowsMatchers = {
182-
CreatePatternMatcher({ '^semmle%.extraction%.csharp%.standalone%.exe$' },
183-
MatchCompilerName, nil, { trace = false }),
184182
DotnetMatcherBuild,
185183
MsBuildMatcher,
186184
CreatePatternMatcher({ '^csc.*%.exe$' }, MatchCompilerName, extractor, {
@@ -222,9 +220,6 @@ function RegisterExtractorPack(id)
222220
end
223221
}
224222
local posixMatchers = {
225-
-- The compiler name is case sensitive on Linux and lower cased on MacOS
226-
CreatePatternMatcher({ '^semmle%.extraction%.csharp%.standalone$', '^Semmle%.Extraction%.CSharp%.Standalone$' },
227-
MatchCompilerName, nil, { trace = false }),
228223
DotnetMatcherBuild,
229224
CreatePatternMatcher({ '^mcs%.exe$', '^csc%.exe$' }, MatchCompilerName,
230225
extractor, {

0 commit comments

Comments
 (0)