Commit graph

79 commits

Author SHA1 Message Date
Dongbo Wang
3a21d4c3df Search the assembly cache kept by ExecutionContext for type resolution. (#3327)
Our assembly cache contains assemblies that are explicitly loaded by powershell egine, such as via module loading or the assembly entries from InitialSessionState. We should search it before searching all loaded assemblies to give preference to resolve a type against the assemblies contained in the cache, so that in case there is a conflict, we might have a preferred assembly to use for a type resolution.

Changes:
- Search from context.AssemblyCache.Values before search from all loaded assemblies.
- Skip assemblies that we already searched and found no matching type.
- Skip checking PS types kept in the scope and type accelerators when it's not necessary.
2017-03-17 13:19:31 -07:00
Dongbo Wang
16ff1978e1 Fix casting single element array to generic collection (#3170) 2017-02-22 23:10:06 -08:00
Ilya
409ab7443f Fix GetType() bad pattern and related issues in tests (#3134)
* Fix GetType() bad pattern and related issues in tests

$var.GetType() can raise an exception in tests so we should check $var
before make the call. A large part of the tests does not make this
check.
I start with searching ".GetType()" but discovered many related issues
in tests (reduntant and unneeded tests, "throw" bad pattens, bugs,
formattings (sorry!) and so on) - I had to fix them too.

* Fix after code review
* Second wave of migration GetType() -> BeOfType
Removed 'GetType().Name' patterns.
2017-02-15 16:40:51 -08:00
Ilya
a16fead0a5 Fix error position reporting on classes (#3103)
Interactive hosts expect an `IncompleteParseException` to signal that more input is expected.

When detecting errors, the parser can report 2 positions:
* where the error should be reported
* where the error was detected

Typically these are the same, so most error reporting methods have a single parameter.
For missing braces, the pattern is supposed to be to report the error after the opening brace, but the error is typically detected at the end of the file.

There were a few places where we were not consistent in reporting such errors, this PR corrects those places.
2017-02-13 16:45:00 -08:00
Andrew Gaspar
ca5fc9c5a8 Fix tab completion of native parameters (#2919)
Native argument completers were not invoked when the argument was a single dash.

The fix is to treat unbound command parameters as command arguments for the purposes of parameter/argument completion.
2017-02-13 16:02:56 -08:00
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
Jason Shirk
02b5f357a2 Remove trailing whitespace (#3001) 2017-01-16 13:31:14 -08:00
Sergei Vorobev
fab25c5d50 Remove -Force from Import-Module in tests 2017-01-12 14:25:07 -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
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
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
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
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
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
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
c5b90ca656 fixed indentation 2016-09-02 13:28:20 -07:00
Yanbing Wang
b488d7eb35 Update the path to LanguageTestSupport.psm1 -force 2016-09-01 10:31:10 -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
Sergei Vorobev
dac906db3d Skip $input type test per #1563 2016-07-28 18:02:24 -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
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