Skip to content

Fix build and test issues on PowerShell v4#551

Merged
kapilmb merged 12 commits into
developmentfrom
kapilmb/FixPSv4Tests
Jun 2, 2016
Merged

Fix build and test issues on PowerShell v4#551
kapilmb merged 12 commits into
developmentfrom
kapilmb/FixPSv4Tests

Conversation

@kapilmb

@kapilmb kapilmb commented Jun 2, 2016

Copy link
Copy Markdown
  • Fixed building on PSv4
  • Fixed tests on PSv4
  • Added PSv4 to build and test matrix
    • Visual Studio 2015 OS image in appveyor uses Windows Server 2012 R2.

Resolves #545


This change is Reviewable

Kapil Borle added 12 commits May 27, 2016 15:32
The error was caused by Hashtables being cast to DiagnosticRecord arrays. This commit fixes these errors caused when Pester is invoked on CustomizedRule.Tests.ps1

Consider the following example.

$result = [Microsoft.Windows.Powershell.ScriptAnalyzer.Generic.DiagnosticRecord[]]@{"Message"  = "this is help";
                                            "Extent"   = $ast.Extent;
                                            "RuleName" = $PSCmdlet.MyInvocation.InvocationName;
                                            "Severity" = "Warning"}

In PowerShell v4, this gives the following error.

Cannot convert value "System.Collections.Hashtable" to type
"Microsoft.Windows.PowerShell.ScriptAnalyzer.Generic.DiagnosticRecord[]". Error: "Cannot create object of type
"Microsoft.Windows.PowerShell.ScriptAnalyzer.Generic.DiagnosticRecord". "Extent" is a ReadOnly property."
At line:1 char:1
+ $result = [Microsoft.Windows.Powershell.ScriptAnalyzer.Generic.DiagnosticRecord[ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastExceptionScalarToArray
Loading an external rule module with version errors out on PSv4. But it works on PSv5. So we remove the sample rule with version from the glob pattern by renaming it.
Visual Studio 2015 image runs on Windows Server 2012 R2. Hence, this will help us test ScriptAnalyzer on PowerShell v4
Visual Studio version in the solution file was changed by mistake to 14.0 in commit b82733. This commit reverts the version to 12.0
@raghushantha

Copy link
Copy Markdown
Member

:lgtm:

Previously, kapilmb (Kapil Borle) wrote…

Fix build and test issues on PowerShell v4

  • Fixed building on PSv4
  • Fixed tests on PSv4
  • Added PSv4 to build and test matrix
    • Visual Studio 2015 OS image in appveyor uses Windows Server 2012 R2.

Resolves #545


Comments from Reviewable

@raghushantha

Copy link
Copy Markdown
Member

Reviewed 20 of 20 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.


Comments from Reviewable

@kapilmb

kapilmb commented Jun 2, 2016

Copy link
Copy Markdown
Author

@raghushantha Thanks!

@kapilmb kapilmb merged commit 3485763 into development Jun 2, 2016
@kapilmb kapilmb deleted the kapilmb/FixPSv4Tests branch June 3, 2016 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants