Commit graph

273 commits

Author SHA1 Message Date
Ilya
b22369e2be Make small optimization in parser tests (#3072)
* Make small optimization in parser tests

* Add Clear() for common command
Remove commands from AfterEach

* Refactoring test 'functions are resolved before cmdlets'
2017-02-08 17:42:44 -08:00
Ilya
9b23e1e1fe Fix error handling in parsing 'using' statement (#3007) 2017-01-17 12:54:43 -08:00
Jason Shirk
02b5f357a2 Remove trailing whitespace (#3001) 2017-01-16 13:31:14 -08:00
Sergei Vorobev
f4f576c92b Rename Wait-CompleteExecution to Wait-UntilTrue 2017-01-12 14:25:07 -08:00
Sergei Vorobev
684a25b9ea Fix Wait-CompleteExecution usage 2017-01-12 14:25:07 -08:00
Sergei Vorobev
fab25c5d50 Remove -Force from Import-Module in tests 2017-01-12 14:25:07 -08:00
Sergei Vorobev
ab06adf774 Another attempt to make native timer test less flaky 2017-01-12 14:25:07 -08:00
James Truher [MSFT]
c97ca777df Jameswtruher/travisdailybuild (#2958)
* Stifle progress output in build.psm1 for some operations

Modify test failure presentation to use platform available XML methods

* Add timeout support for returning runtime parsing errors

Some of the language/parser tests have been hanging in a non-reproducable manner which
causes the CI system to invalidate the entire run. This change adds support for timeout
which will fail a test if it runs to long, rather than invalidate the entire run.

current behavior is still supported, and is not done in a new session:
PS> get-runtimeerror -src '1/'
At line:1 char:3
+ 1/
+   ~
You must provide a value expression following the '/' operator.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

Adding a timeout will do the operation in a async powershell session
PS> get-runtimeerror -src '1/' -timeout 5
You must provide a value expression following the '/' operator.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

If the operation takes longer than the supplied timeout, a timeout error will be returned
PS> get-runtimeerror -src 'start-sleep 6' -timeout 2
get-runtimeerror : Operation Timed Out ('start-sleep 6')
At line:1 char:1
+ get-runtimeerror -src 'start-sleep 6' -timeout 2
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Get-RuntimeError

* Modify native linux command tests to skip on Windows and pending on Mac

* remove verbose and progress output from help tests

* Be sure that Feature Counter tests only run on Windows

Also, only call add-type in CounterTestHelperFunctions.ps1 if we're going to actually run the tests

* do not run any get-computerinfo tests on non-windows systems

* suppress progress output from PowerShell Get tests

* remove -quiet from API and CRON Builds

Travis watches output from the build to ensure that it hasn't hung
we need to find a balance between too much output and not enough output.
A run which has too much output is killed because it looks like an error loop
A run which has too little output is killed because it looks like a hang

* Remove commented line in Import-Counter.Tests.ps1

Remove extraneous extra line in PowerShellGet.Tests.ps1

* Change `-as "type"` to `-as [type]` in build.psm1

Alter timeout to 10 seconds to be improve chances of not timing out for runtime parser checks
improve logic for counter tests to also skip for IoT

* use the existing function of SkipCounterTests rather than duplicate the logic in import-counter.tests.ps1
2017-01-10 14:42:27 -08:00
iSazonov
0e2c1c4d9f Fix typo and formating in class basic parser tests 2017-01-05 08:41:34 -08:00
Ilya
8daef18769 Fix here string '$a=@"n'"'n"@' (#2913)
The tokenizer did multiple scans the script line to get tokens. Before
the fix the tokenizer on the first pass examined that string as
double-quoted (Expandable) string not as here string, figured the
average double quotation mark as a closing and then starting with the
single quotation mark continued processing the line as single-quoted
string which had no closing single quotation mark.
The fix is to stop the first scan pass after getting '=' (assume
assignment-expression '$a=' for next pass).
2016-12-23 09:34:09 -08:00
Keith Hill
cd743cc7b0 Add support for escape char ESC via `e. (#2920)
This change is a breaking change but falls into compat bucket #3 - unlikely grey area.
2016-12-23 09:00:37 -08:00
Charu Bassi
821c965aee Fix type completion w/ type aliases (accelerators) (#2533)
Type completion would behave strangely when there were multiple aliases for a given type (currently only possible with type accelerators).

The fix is to only select the accelerator that matches what the user typed.

Closes #2295
2016-12-21 15:33:05 -08:00
Dongbo Wang
bbf1766ac7 Fix try/catch to choose the more specific exception handler (#2429)
* Refactor 'FindMatchingHandler' to get rid of recursion
Search state can be saved and used throughout the searching process without the recursion.

* Rank the exception types based on how specific they are

* Refactor code to find handler based on the rank of given handlers
2016-12-09 12:37:08 -08:00
Dongbo Wang
c982f30d4e Fix powershell class to use the current EngineSessionState for execution. (#2837)
When a PS class is defined in a module and the module gets reloaded, the class would still use the SessionState from the old module for execution, and thus it doesn't reflect changes to the module state during the reload. This fix is to make sure we always use the current EngineSessionState for PS class execution.
2016-12-09 11:06:07 -08:00
Aditya Patwardhan
9a195f44c1 Marked flaky test as pending to unblock daily builds (#2838) 2016-12-04 00:12:51 -08:00
Dongbo Wang
20a0ba041c Fix the indicator for redirecting standard input (#2749) 2016-11-21 16:02:52 -08:00
iSazonov
4edde10fda Now Enum values definition have space-insensitive syntax (#2690)
Fix to support whitespace after the `=` and before the value expression.
2016-11-18 14:00:26 -08:00
Sergei Vorobev
32837f06ee Trying to make 'native command lifecycle' test unflaky
Also move it to the Feature category
2016-11-15 14:49:39 -08:00
Sergei Vorobev
616c15556f Re-shuffle minishell tests 2016-11-15 14:49:39 -08:00
Sergei Vorobev
f0a4a7d821 Replace spin-lock by a proper BlockingCollection in NativeCommandProcessor 2016-11-15 14:49:39 -08:00
Sergei Vorobev
a6fc5387c2 Add a code to handle finished process correctly on Unix 2016-11-15 14:49:39 -08:00
Sergei Vorobev
9658e62682 Add a test for broken linux pipe in native pipeline 2016-11-15 14:49:39 -08:00
Sergei Vorobev
584aec7c92 Add motivation example for the native pipeline changes 2016-11-15 14:49:39 -08:00
Sergei Vorobev
6acc1e0629 Add error stream and information stream tests
for native pipes
2016-11-15 14:49:39 -08:00
Sergei Vorobev
a05fffd9dc Add a minishell clixml tests 2016-11-15 14:49:39 -08:00
Jason Shirk
bd9e49d8d9 Make Out-Null fast (#2629)
People use Out-Null despite much faster alternatives:

    $null = Do-Stuff
    [void] = Do-Stuff
    Do-Stuff > $null

This change makes Out-Null work in roughly the same say as the above.

The optimization is to detect that we're calling the built-in Out-Null
cmdlet when invoking a pipeline from script (the change won't have any
effect in the PowerShell api). If we detect Out-Null, we rewrite the
pipe to look similar to `Do-Stuff > $null`.
2016-11-11 11:29:53 -08:00
Jason Shirk
c8c55b7ce7 Fix NullReferenceException in binder (#2591)
There was a NullReferenceException after turning on constrained language mode
if creating a binding on a thread with no runspace.

The fix is to assume if there is no runspace that we are not in constrained language
mode, and also generate a binding restriction that assumes the same.
2016-11-03 14:15:58 -07:00
Jason Shirk
b7c04df47b Update NativeCommandProcessor.Tests.ps1
Fix logic error in skipping
2016-11-01 14:15:31 -07:00
Jason Shirk (POWERSHELL)
9b20875d6f Test that pipeline isn't blocked when running windows exes 2016-11-01 14:15:31 -07:00
Steve Lee
1851e1a5dc fixed test on Windows, also should have been pending due to another bug (#2580) 2016-11-01 10:53:19 -07:00
Steve Lee
44eb20dc8f Fixes #2534 by replacing expensive WMI query with Win32 API calls (#2535)
* Fixes #2534 by replacing expensive WMI query with Win32 API calls

* fix break on unix build

* added tests for #2535

* although test passed, fixing exception that shows up

* fixed Describe text

* addressing code review feedback

* addressing review feedback to comment on why sleep is needed
added check that test processes are created before we try to kill them

* fixed test to timeout and pending fix for #2561
2016-10-31 09:41:13 -07:00
Dongbo Wang
e240c0cb32 Make Pester skip the redirection test for '[Encoding]::Default' instead of ignoring it, so that we can keep track of this encoding issue 2016-10-14 10:02:44 -07:00
Dongbo Wang
139b399223 Fix test failures due to changes in .NET Core and the exclusion of 'Certificate' provider in UNIX PS 2016-10-14 10:02:44 -07:00
Dongbo Wang
13455204a4 Fix variable assignment to not overwrite readonly/constant variables (#2400) 2016-10-03 15:25:52 -07:00
Dongbo Wang
5fbde6eb40 Fix bytewise operators to work on enum types with 'System.Byte' as the underlying type (#2411) 2016-10-03 15:24:39 -07:00
James Truher
a8aeb55edb Move tests to more appropriate places now that we have the directory structure defined 2016-09-28 14:57:50 -07:00
Aditya Patwardhan
a27b2303bb Add test coverage for Command discovery and requires (#2285) 2016-09-26 13:36:04 -07:00
Dongbo Wang
5d2f52e4e9 Fix indentation in the test 2016-09-26 11:56:12 -07:00
Dongbo Wang
89b5ae5de1 Fix $? assignment to not crash powershell 2016-09-26 11:56:12 -07:00
James Truher [MSFT]
e143b41533 move native execution tests to Language/Scripting/NativeExecution (#2333)
update testing-guidelines.md with new locations
2016-09-22 11:57:42 -07:00
Yanbing
87f6e8d040 Add tests to language part 5 (#2218)
1. Added parameterbinding test
2. Added ShouldBeErrorID function in helper file
3. Removed ShouldBeErrorID function from other test modules
4. Update New-TestHost to be able to run on full CLR
5. updated file map.json
2016-09-16 16:54:48 -07:00
Yanbing
edb292face Add tests for the Language (#2118)
DeserializedMethods, DeserializedTypeConversion,
DynamicParameters, Generics, Indexer, LindEndings, MyInvocation,
OrderedAttributeForHashTable.
2016-09-15 11:27:44 -07:00
Yanbing
fd4552bfb8 Added tests for hashtabletoPSCustomObjectConversion, OutErrorVairable tests (#2160) 2016-09-12 18:29:55 -07:00
Yanbing
e1bfe97d87 Add tests to language part 1 (#2086) 2016-09-12 10:43:53 -07:00
Sergei Vorobev
ea5b6720cd Merge pull request #2092 from bingbing8/Add-Tests-to-language-part-2
Add tests to language part 2
2016-09-10 10:07:35 -07:00
Yanbing Wang
2530207d2a move help tests to feature. It generate two much log 2016-09-07 17:34:38 -07:00
Yanbing Wang
c5b90ca656 fixed indentation 2016-09-02 13:28:20 -07:00
Yanbing Wang
11e279d688 Update based on PR feedback 2016-09-02 11:07:18 -07:00
Jason Shirk
bc8d537884 Merge pull request #2067 from JamesWTruher/jameswtruher/testgapfile-002
Fill more gaps in cmdlet test coverage
2016-09-01 11:16:32 -07:00
Yanbing Wang
b488d7eb35 Update the path to LanguageTestSupport.psm1 -force 2016-09-01 10:31:10 -07:00
Yanbing Wang
c06becaadd update map.json 2016-08-31 16:00:06 -07:00
James Truher
3ceca01b64 address some review feedback 2016-08-30 16:15:10 -07:00
James Truher
6aac4976fb Add simple runspace debugging tests 2016-08-30 16:15:10 -07:00
James Truher
9c99bdbef9 Add new debugging tests which are based on existing earlier non-Pester tests 2016-08-30 16:15:10 -07:00
Yanbing Wang
08d65596cd removed the first 3 lines in i18n.Tests.ps1 2016-08-30 12:17:27 -07:00
Yanbing Wang
04f225a4a1 Update i18n.Testsps1 to use PSDefaultParameterValues 2016-08-29 17:54:20 -07:00
Yanbing Wang
bbbd6a9dfc Change some context to it 2016-08-26 19:37:51 -07:00
Yanbing Wang
312ec5ffd0 Add Tests for parsing, international, and script help. 2016-08-26 14:49:44 -07:00
Josh Soref
2badb244de spelling fixes: test 2016-08-25 17:49:32 +00:00
Dongbo Wang
9ab60d6621 Fix the test that fails in Travis CI build (#1792) 2016-08-12 18:36:16 -07:00
Dongbo Wang
753b202a75 Fix tests that were broken by the sxs module path change. Also fix some unreliable tests. 2016-08-11 21:45:20 -07:00
Sergei Vorobev
dac906db3d Skip $input type test per #1563 2016-07-28 18:02:24 -07:00
James Truher
1b9565ae89 add tags to describe blocks that didn't have any tags 2016-07-27 12:06:51 -07:00
James Truher
a784149b36 all tests are now marked with proper tag
also, update build.psm1 to be more flexible
2016-07-27 12:06:51 -07:00
James Truher
9e225ccae2 changes tags for tests
Start using tags CI, Feature, Scenario
2016-07-27 12:06:51 -07:00
Andrew Schwartzmeyer
41173a3b65 Rename IsCore to IsCoreCLR 2016-07-26 11:54:08 -07:00
PowerShell Team
165f2a86c3 Convert UTF-16 files to UTF-8 2016-07-22 13:54:34 -07:00
James Truher
b680b48160 tests now run clean on Windows and Linux 2016-07-20 12:10:12 -07:00
PowerShell Team
2674564542 Language tests now run clean on Linux 2016-07-20 12:10:12 -07:00
PowerShell Team
cb08681a55 Add new test files to Language directory 2016-07-20 12:10:12 -07:00
PowerShell Team
395657e33c fixed up incorrect cases 2016-07-20 12:10:12 -07:00
PowerShell Team
7048f370bd Add map.json for language test migration 2016-07-20 12:10:12 -07:00
James Truher
1e1c4b7dc0 Restructure of pester test layout
This restructuring moves tests to a directory name which matches the module
in which the cmdlet resides which should improve the discoverability of a
specific test.
For tests which are not about cmdlets in a module, new directories have been
created to make those tests easier to find as well
2016-06-29 12:05:41 -07:00