Commit graph

27 commits

Author SHA1 Message Date
Steve Lee [MSFT]
26f7db720c Enable -WindowStyle to work 2017-08-16 15:04:34 -07:00
Steve Lee [MSFT]
4c22b10a38 Update powershell console exit codes to match Unix standards 2017-08-16 15:04:03 -07:00
Steve Lee
d17aaad4a0 Ensure running powershell within PowerShell starts instance of currently running PowerShell (#4481)
Modify PATH env var at startup so that $PSHOME is in front
2017-08-04 09:23:15 -07:00
Steve Lee
e64e68bcdc Allow passing $true/$false as parameter to script using -File (#4178)
Using powershell.exe to execute a PowerShell script using -File currently provides no way to pass $true/$false as parameter values. Current behavior is that -File accumulates passed parameters as strings only.

Fix is to special case this based on discussion with PS-Committee to support $true/$false as parsed values to parameters. Switch values is also supported as currently documented syntax doesn't work.
2017-08-01 14:41:31 -07:00
Steve Lee
7bce1653f3 Add Windows PowerShell PSModulePath by default on Windows (#4132)
This change is only for Windows and appends the Windows PowerShell PSModulePath on startup via a default profile. Depending on the data/feedback we get, we can decide what to do (opt-in vs opt-out) as we get closer to a release candidate.
2017-07-07 09:43:37 -07:00
Steve Lee
8f8580a408 Fix usage of -TestCases so that the parameters show up in the test case description (#4188) 2017-07-07 09:25:46 -07:00
Steve Lee
41f65de57c Change positional parameter for powershell.exe from -Command to -File (#4019)
Previously powershell.exe treated unknown arguments as a command line to execute. To align with POSIX so that things like shebang scripts work correctly, we are changing powershell.exe so that it treats unknown arguments (aka positional argument) as a file. This means that `powershell foo` will now attempt to use `foo` as a PowerShell script whereas previously `foo` would be treated as a command to execute. This doesn't affect existing usage of either -File nor -Command. Fixed tests that didn't explicitly use -Command parameter.
2017-06-19 12:17:56 -07:00
Steve Lee
2851f7e800 Accept -i for an interactive shell (#3558)
On Unix, it is a convention for shells to accept `-i` for an interactive shell and many
tools expect this behavior (`script` for example, and when setting powershell as the
default shell) and calls the shell with the `-i` switch.  This change is breaking in
that `-i` previously could be used as short hand to match `-inputformat` which now will
need to be `-in`.
2017-04-13 18:35:26 -07:00
Steve Lee
753b1965a0 Fix crash at startup when env:HOME not set (#3437)
There are cases like using PowerShell via Puppet where the account being
used does not have a home directory.  Updated PowerShell to use a process
specific temporary directory if HOME, CONFIG, CACHE, and DATA directories
are not available.  Temporary directory is removed when last runspace
is disposed.
2017-04-09 09:23:06 -07:00
Steve Lee
44bd923d22 Fix a test to use the targeted powershell rather than the system installed one (#3286) 2017-03-08 16:38:05 -08:00
Steve Lee
a2687bfb59 Allow profile directory creation failures for Service Account scenarios (#3244)
XDG profile directory creation can fail for accounts that do not have home directories.

The module analysis was trying to persist it's cache in an XDG profile directory.
The cache is less critical than it once was, so it's reasonable to not cache if there is no good place to do so.

Fixes #3011
2017-03-05 22:05:10 -08:00
James Truher [MSFT]
9e27f4a64c Implement -version parameter in console host (address part of https:/… (#3115)
* Implement -version parameter in console host (address part of https://github.com/PowerShell/PowerShell/issues/1084)

This does not support providing a specific version to run, but
like most other *nix commands, -version will now return the version
of the PowerShell Engine. 'powershell' is prepended to the output to
match other *nix commands. We are using gitcommitid which includes more
info about the build.
2017-02-23 09:36:50 -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
Jason Shirk
02b5f357a2 Remove trailing whitespace (#3001) 2017-01-16 13:31:14 -08:00
Sergei Vorobev
616c15556f Re-shuffle minishell tests 2016-11-15 14:49:39 -08:00
Jason Shirk (POWERSHELL)
acdf1c1d44 Fix LengthInBufferCells test for downlevel
When running on systems that do not support a virtual terminal,
the tests was incorrectly assuming escape sequences were removed.

The fix is to expect different results depending on whether or not
the host supports virtual terminal mode.
2016-11-14 13:59:43 -08:00
Lincoln Atkinson
594fae475b Wire up proper ConsoleHostRawUserInterface.LengthInBufferCells for Unix (#2637)
* Wire up proper ConsoleHostRawUserInterface.LengthInBufferCells for Unix

Ref https://github.com/PowerShell/PowerShell/issues/2502
This allows for Unix console host to properly calculate display width for
strings containing escape sequences (e.g. ANSI color), rather than
falling back to naive string.Length.

* Add basic tests for host LengthInBufferCells calculation
2016-11-09 10:20:31 -08:00
Jason Shirk (POWERSHELL)
1913244fad Fix powershell -Command - handling of backspace
PowerShell can be started with input redirected in different scenarios.

`powershell -Command -` is one scenario where commands are sent to
PowerShell, but this is not a interactive shell scenario, it's really
a server to run commands from some other process.

`powershell -File -` or just regular redirected input means PowerShell
is an interactive shell, but command line editing must be done via
the redirected standard input handle instead of interacting directly
with a console handle.

In this scenario, we want to provide a good editing experience. Today,
we provide the bare minimum, supporting backspace but no cursor movement.

The bug here is that backspace was treated as a backspace in the server mode
but should not have been.
2016-09-21 15:01:33 -07:00
Jason Shirk (POWERSHELL)
f095320787 Fix powershell -Command - to not ignore last command
If the last command sent via stdin did not have a newline,
the command was ignored. This would happen when stdin was closed.
2016-09-21 14:42:16 -07:00
Sergei Vorobev
1638bdf3e6 Merge pull request #2063 from jsoref/spelling-test
spelling fixes: tests
2016-08-31 14:13:49 -07:00
Jason Shirk
cf18010ad5 Fix multi-line input w/ redirected stdin (#2090)
The input loop reading from stdin did not handle multi-line input correctly
because it was adding a newline character where none was expected.

The fix was to not include the final newline character to accept input,
just like Console.ReadLine or PSReadline would.
2016-08-31 13:52:46 -07:00
Josh Soref
2badb244de spelling fixes: test 2016-08-25 17:49:32 +00:00
JumpingYang001
2d0d9765d9 Add Shell Interop Pester Test 2016-08-10 23:09:17 -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
25e2316345 Fix Console-Host tests
Update tests from Source Depot and run everywhere.
2016-07-01 14:36:15 -07:00
Andrew Schwartzmeyer
fe56aaafa7 Re-enable tests on OS X 2016-07-01 14:36:15 -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
Renamed from test/powershell/ConsoleHost.Tests.ps1 (Browse further)