PowerShell/test/powershell/Language/Scripting/ForeachParallel.Tests.ps1
Steve Lee c1c5344a88 Update copyright and license headers (#6134)
Based on standard practices, we need to have a copyright and license notice at the top of each source file. Removed existing copyrights and updated/added copyright notices for .h, .cpp, .cs, .ps1, and .psm1 files.

Updated module manifests for consistency to have Author = "PowerShell" and Company = "Microsoft Corporation". Removed multiple line breaks.

Separate PR coming to update contribution document for new source files: #6140

Manually reviewed each change.

Fix #6073
2018-02-13 09:23:53 -08:00

41 lines
1.9 KiB
PowerShell

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
Describe "Parallel foreach syntax" -Tags "CI" {
Context 'Should be able to retrieve AST of parallel foreach, error in regular case' {
$errors = @()
$ast = [System.Management.Automation.Language.Parser]::ParseInput(
'foreach -parallel ($foo in $bar) {}', [ref] $null, [ref] $errors)
It '$errors.Count' { $errors.Count | Should Be 1 }
It '$ast.EndBlock.Statements[0].Flags' { $ast.EndBlock.Statements[0].Flags | Should Be 'Parallel' }
}
It 'Should be able to retrieve AST of parallel foreach, works in JobDefinition case' -Skip:$IsCoreCLR {
. .\TestsOnWinFullOnly.ps1
Run-TestOnWinFull "ForeachParallel:ASTOfParallelForeachOnWorkflow"
}
Context 'Supports newlines before and after' {
$errors = @()
$ast = [System.Management.Automation.Language.Parser]::ParseInput(
"foreach `n-parallel `n(`$foo in `$bar) {}", [ref] $null, [ref] $null)
It '$errors.Count' { $errors.Count | Should Be 0 }
It '$ast.EndBlock.Statements[0].Flags' { $ast.EndBlock.Statements[0].Flags | Should Be 'Parallel' }
}
Context 'Generates an error on invalid parameter' {
$errors = @()
$ast = [System.Management.Automation.Language.Parser]::ParseInput(
'foreach -bogus ($input in $bar) { }', [ref]$null, [ref]$errors)
It '$errors.Count' { $errors.Count | Should Be 1 }
It '$errors[0].ErrorId' { $errors[0].ErrorId | Should Be InvalidForeachFlag }
}
Context 'Generate an error on -parallel that is not a workflow' {
$errors = @()
$ast = [System.Management.Automation.Language.Parser]::ParseInput(
'foreach -parallel ($input in $bar) { }', [ref]$null, [ref]$errors)
It '$errors.Count' { $errors.Count | Should Be 1 }
It '$errors[0].ErrorId' { $errors[0].ErrorId | Should Be ParallelNotSupported }
}
}