@@ -558,6 +558,8 @@ public void TestVcVarsAllBatFiles()
558558 [ Fact ]
559559 public void TestLinuxBuildlessExtractionSuccess ( )
560560 {
561+ actions . RunProcess [ "dotnet --info" ] = 0 ;
562+ actions . RunProcessOut [ "dotnet --info" ] = "" ;
561563 actions . RunProcess [ @"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone" ] = 0 ;
562564 actions . FileExists [ "csharp.log" ] = true ;
563565 actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_TRAP_DIR" ] = "" ;
@@ -567,12 +569,14 @@ public void TestLinuxBuildlessExtractionSuccess()
567569 actions . EnumerateDirectories [ @"C:\Project" ] = "" ;
568570
569571 var autobuilder = CreateAutoBuilder ( false , buildless : "true" ) ;
570- TestAutobuilderScript ( autobuilder , 0 , 1 ) ;
572+ TestAutobuilderScript ( autobuilder , 0 , 2 ) ;
571573 }
572574
573575 [ Fact ]
574576 public void TestLinuxBuildlessExtractionFailed ( )
575577 {
578+ actions . RunProcess [ "dotnet --info" ] = 0 ;
579+ actions . RunProcessOut [ "dotnet --info" ] = "" ;
576580 actions . RunProcess [ @"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone" ] = 10 ;
577581 actions . FileExists [ "csharp.log" ] = true ;
578582 actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_TRAP_DIR" ] = "" ;
@@ -582,12 +586,14 @@ public void TestLinuxBuildlessExtractionFailed()
582586 actions . EnumerateDirectories [ @"C:\Project" ] = "" ;
583587
584588 var autobuilder = CreateAutoBuilder ( false , buildless : "true" ) ;
585- TestAutobuilderScript ( autobuilder , 10 , 1 ) ;
589+ TestAutobuilderScript ( autobuilder , 10 , 2 ) ;
586590 }
587591
588592 [ Fact ]
589593 public void TestLinuxBuildlessExtractionSolution ( )
590594 {
595+ actions . RunProcess [ "dotnet --info" ] = 0 ;
596+ actions . RunProcessOut [ "dotnet --info" ] = "" ;
591597 actions . RunProcess [ @"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone" ] = 0 ;
592598 actions . FileExists [ "csharp.log" ] = true ;
593599 actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_TRAP_DIR" ] = "" ;
@@ -597,7 +603,30 @@ public void TestLinuxBuildlessExtractionSolution()
597603 actions . EnumerateDirectories [ @"C:\Project" ] = "" ;
598604
599605 var autobuilder = CreateAutoBuilder ( false , buildless : "true" ) ;
600- TestAutobuilderScript ( autobuilder , 0 , 1 ) ;
606+ TestAutobuilderScript ( autobuilder , 0 , 2 ) ;
607+ }
608+
609+ [ Fact ]
610+ public void TestLinuxBuildlessExtractionNoDotnet ( )
611+ {
612+ actions . RunProcess [ "dotnet --info" ] = 1 ;
613+ actions . RunProcessOut [ "dotnet --info" ] = "" ;
614+ actions . RunProcess [ "dotnet --list-sdks" ] = 1 ;
615+ actions . RunProcessOut [ "dotnet --list-sdks" ] = "" ;
616+ actions . RunProcess [ @"chmod u+x scratch/.dotnet/dotnet-install.sh" ] = 0 ;
617+ actions . RunProcess [ @"scratch/.dotnet/dotnet-install.sh --channel release --version 8.0.101 --install-dir scratch/.dotnet" ] = 0 ;
618+ actions . RunProcess [ @"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone --dotnet scratch/.dotnet" ] = 0 ;
619+ actions . FileExists [ "csharp.log" ] = true ;
620+ actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_TRAP_DIR" ] = "" ;
621+ actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR" ] = "" ;
622+ actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR" ] = "scratch" ;
623+ actions . EnumerateFiles [ @"C:\Project" ] = "foo.cs\n test.sln" ;
624+ actions . EnumerateDirectories [ @"C:\Project" ] = "" ;
625+ actions . DownloadFiles . Add ( ( "https://dot.net/v1/dotnet-install.sh" , "scratch/.dotnet/dotnet-install.sh" ) ) ;
626+ actions . CreateDirectories . Add ( @"scratch/.dotnet" ) ;
627+
628+ var autobuilder = CreateAutoBuilder ( false , buildless : "true" ) ;
629+ TestAutobuilderScript ( autobuilder , 0 , 5 ) ;
601630 }
602631
603632 private void SkipVsWhere ( )
@@ -888,6 +917,8 @@ public void TestSkipNugetMsBuild()
888917 [ Fact ]
889918 public void TestSkipNugetBuildless ( )
890919 {
920+ actions . RunProcess [ "dotnet --info" ] = 0 ;
921+ actions . RunProcessOut [ "dotnet --info" ] = "" ;
891922 actions . RunProcess [ @"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone" ] = 0 ;
892923 actions . FileExists [ "csharp.log" ] = true ;
893924 actions . GetEnvironmentVariable [ "CODEQL_EXTRACTOR_CSHARP_TRAP_DIR" ] = "" ;
@@ -897,7 +928,7 @@ public void TestSkipNugetBuildless()
897928 actions . EnumerateDirectories [ @"C:\Project" ] = "" ;
898929
899930 var autobuilder = CreateAutoBuilder ( false , buildless : "true" ) ;
900- TestAutobuilderScript ( autobuilder , 0 , 1 ) ;
931+ TestAutobuilderScript ( autobuilder , 0 , 2 ) ;
901932 }
902933
903934
0 commit comments