[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/3] Fix SDV/CodeQL log generation


  • To: <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Tue, 10 Aug 2021 16:40:47 +0100
  • Authentication-results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Owen Smith <owen.smith@xxxxxxxxxx>
  • Delivery-date: Tue, 10 Aug 2021 15:41:03 +0000
  • Ironport-hdrordr: A9a23:/cHH2KN545ZeyMBcTjejsMiBIKoaSvp037BK7S1MoNJuEvBw9v re+sjzsCWftN9/Yh4dcLy7VpVoBEmsl6KdgrNhWotKPjOW21dARbsKheffKn/bakjDH4Zmvp uIGJIObOEYY2IasS77ijPIbOrJwrO8gd6VbTG19QYdceloAZsQnzuQEmygYzRLrJEtP+tFKH KbjPA33waISDAsQemQIGIKZOTHr82jruObXfZXbyRXkzVnlFmTmcTHLyQ=
  • Ironport-sdr: wVYaF4HYvKZGPJdxYiXfFuklHNGYnbkqSonKepvokiDRR0ifAbNAgmo7ef80Dt5weL2oto0VA1 thVSBo6KmM7yXivQm6bikFPpWVkgOOKT6jrQ52MIrCJHkYpxbVZS/xvO2XlniSyZ9D7FE6D5IF l1KUq3qszHdsl8Z7RiAiImQFq5sc9GoOSFHGnmVMSXbWPYfVIFoT5LR0iQ7wmzvuxTIyfJD8h2 VOL5tUsT8sFlZLzPvzzAdZJrTBZ9WP/IbNFkxnkWjjxKzD4NkfvuAaJNZSglYTPW75p/R35eh1 QY4cMBUYHtl6WQnyxLE3ajyQ
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

- sarif files need to be stored with SDV logs when generating the DVL file
- Disable PREFast and CodeAnalysis by default
- Run a seperate CodeAnalysis build after SDV, but before generating DVL file
    DVL file should contain multiple summary lines for SDV, at least 1 line
    for CodeAnalysis and at least 1 line for Semmle (CodeQL)

Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
 msbuild.ps1                    | 25 ++++++++++++++++++-------
 vs2019/xen/xen.vcxproj         |  2 --
 vs2019/xenbus/xenbus.vcxproj   |  2 --
 vs2019/xenfilt/xenfilt.vcxproj |  2 --
 4 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/msbuild.ps1 b/msbuild.ps1
index de7ad52..846abd2 100644
--- a/msbuild.ps1
+++ b/msbuild.ps1
@@ -17,7 +17,8 @@ Function Run-MSBuild {
                [string]$Configuration,
                [string]$Platform,
                [string]$Target = "Build",
-               [string]$Inputs = ""
+               [string]$Inputs = "",
+               [switch]$CodeAnalysis
        )
 
        $c = "msbuild.exe"
@@ -28,6 +29,11 @@ Function Run-MSBuild {
        if ($Inputs) {
                $c += [string]::Format(" /p:Inputs=""{0}"" ", $Inputs)
        }
+       if ($CodeAnalysis) {
+               $c += "/p:RunCodeAnalysis=true "
+               $c += "/p:EnablePREFast=true "
+       }
+
        $c += Join-Path -Path $SolutionPath -ChildPath $Name
 
        Invoke-Expression $c
@@ -55,6 +61,7 @@ Function Run-MSBuildSDV {
        Run-MSBuild $projpath $project $Configuration $Platform "Build"
        Run-MSBuild $projpath $project $Configuration $Platform "sdv" "/clean"
        Run-MSBuild $projpath $project $Configuration $Platform "sdv" 
"/check:default.sdv /debug"
+       Run-MSBuild $projpath $project $Configuration $Platform "Build" 
-CodeAnalysis
        Run-MSBuild $projpath $project $Configuration $Platform "dvl"
 
        $refine = Join-Path -Path $projpath -ChildPath "refine.sdv"
@@ -73,14 +80,14 @@ Function Run-CodeQL {
                [string]$Name,
                [string]$Configuration,
                [string]$Platform,
-               [string]$SearchPath,
-               [string]$OutputPath
+               [string]$SearchPath
        )
 
        $projpath = Resolve-Path (Join-Path $SolutionPath $Name)
        $project = [string]::Format("{0}.vcxproj", $Name)
        $output = [string]::Format("{0}.sarif", $Name)
        $database = Join-Path "database" $Name
+       $sarif = Join-Path $projpath $output
 
        # write a bat file to wrap msbuild parameters
        $bat = [string]::Format("{0}.bat", $Name)
@@ -120,7 +127,7 @@ Function Run-CodeQL {
        $c += " windows_driver_recommended.qls"
        $c += " --format=sarifv2.1.0"
        $c += " --output="
-       $c += (Join-Path $OutputPath $output)
+       $c += $sarif
        $c += " --search-path="
        $c += $SearchPath
 
@@ -129,6 +136,8 @@ Function Run-CodeQL {
                Write-Host -ForegroundColor Red "ERROR: CodeQL failed, code:" 
$LASTEXITCODE
                Exit $LASTEXITCODE
        }
+
+       Copy-Item $sarif -Destination $SolutionPath
 }
 
 #
@@ -165,9 +174,11 @@ elseif ($Type -eq "codeql") {
        }
        New-Item -ItemType Directory "database"
 
-       Run-CodeQL $solutionpath "xen" $configuration["codeql"] 
$platform[$Arch] $searchpath $archivepath
-       Run-CodeQL $solutionpath "xenfilt" $configuration["codeql"] 
$platform[$Arch] $searchpath $archivepath
-       Run-CodeQL $solutionpath "xenbus" $configuration["codeql"] 
$platform[$Arch] $searchpath $archivepath
+       Run-CodeQL $solutionpath "xen" $configuration["codeql"] 
$platform[$Arch] $searchpath
+       Run-CodeQL $solutionpath "xenfilt" $configuration["codeql"] 
$platform[$Arch] $searchpath
+       Run-CodeQL $solutionpath "xenbus" $configuration["codeql"] 
$platform[$Arch] $searchpath
+
+       Copy-Item -Path (Join-Path -Path $SolutionPath -ChildPath "*.sarif") 
-Destination $archivepath
 }
 elseif ($Type -eq "sdv") {
        $archivepath = "xenbus"
diff --git a/vs2019/xen/xen.vcxproj b/vs2019/xen/xen.vcxproj
index 237c348..4e20444 100644
--- a/vs2019/xen/xen.vcxproj
+++ b/vs2019/xen/xen.vcxproj
@@ -13,7 +13,6 @@
   <Import Project="..\targets.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>
-    <RunCodeAnalysis>true</RunCodeAnalysis>
     <EnableInf2cat>false</EnableInf2cat>
     <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
     <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
@@ -26,7 +25,6 @@
       <WarningLevel>EnableAllWarnings</WarningLevel>
       
<DisableSpecificWarnings>4146;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <EnablePREfast>true</EnablePREfast>
     </ClCompile>
     <ResourceCompile>
       
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff --git a/vs2019/xenbus/xenbus.vcxproj b/vs2019/xenbus/xenbus.vcxproj
index c61141c..7a415b8 100644
--- a/vs2019/xenbus/xenbus.vcxproj
+++ b/vs2019/xenbus/xenbus.vcxproj
@@ -13,7 +13,6 @@
   <Import Project="..\targets.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>
-    <RunCodeAnalysis>true</RunCodeAnalysis>
     <EnableInf2cat>false</EnableInf2cat>
     <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
     <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
@@ -26,7 +25,6 @@
       <WarningLevel>EnableAllWarnings</WarningLevel>
       
<DisableSpecificWarnings>4146;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <EnablePREfast>true</EnablePREfast>
     </ClCompile>
     <ResourceCompile>
       
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff --git a/vs2019/xenfilt/xenfilt.vcxproj b/vs2019/xenfilt/xenfilt.vcxproj
index cc0de85..a5c61da 100644
--- a/vs2019/xenfilt/xenfilt.vcxproj
+++ b/vs2019/xenfilt/xenfilt.vcxproj
@@ -13,7 +13,6 @@
   <Import Project="..\targets.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>
-    <RunCodeAnalysis>true</RunCodeAnalysis>
     <EnableInf2cat>false</EnableInf2cat>
     <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
     <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
@@ -26,7 +25,6 @@
       <WarningLevel>EnableAllWarnings</WarningLevel>
       
<DisableSpecificWarnings>4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <EnablePREfast>true</EnablePREfast>
     </ClCompile>
     <ResourceCompile>
       
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-- 
2.31.1.windows.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.