Skip to content

Fix build and test issues on PowerShell v4 #551

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jun 2, 2016
Merged

Conversation

kapilmb
Copy link

@kapilmb kapilmb commented Jun 2, 2016

  • 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
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
Member

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


Comments from Reviewable

@kapilmb
Copy link
Author

kapilmb commented Jun 2, 2016

@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