Commit Graph
100 Commits
Author SHA1 Message Date
Ilya a4cdb806f4 Exclude directories discovered from '-Path' in Select-String (#4829)
Select-String can search in files only so we should skip directories.
2017-09-14 14:57:17 -07:00
Ilya fc9d798b77 Enable use 'Singleline,Multiline' option in split operator (#4721)
Fix #4712
2017-09-08 09:23:38 -07:00
Ilya 3c597367ba Replace 'Windows PowerShell' with 'PowerShell' in resx files (#4758)
Replace 'Windows PowerShell' with 'PowerShell' in '.resx' files where appropriate.
2017-09-07 12:33:56 -07:00
Ilya e588a18c76 Refactor MSBuild project files to get PowerShell version from git tag (#4182)
Extract information about the release tag, number of commits since the tag and the hash of the latest commit within a MSBuild target, and bake that information into version properties of the assemblies appropriately.
2017-09-06 15:20:25 -07:00
Ilya fb67072479 Fix error message in ValidateSetAttribute ValidateElement() (#4722) 2017-09-04 09:11:47 -07:00
Ilya 58a296ed49 Ensure GetNetworkCredential() returns null if PSCredential has null or empty user name (#4697)
* GetNetworkCredential() returns null if PSCredential has empty user name

* Fix test
2017-09-01 11:50:15 -07:00
Ilya cdbbb7a4bb Minor formatting commits for Build.psm1 and csproj files (#4630) 2017-08-21 15:23:52 -07:00
Ilya 45d1d20500 Merge pull request #4573 from SteveL-MSFT/console-no
* Make invalid arg to -File consistent with -Command
Improve error message if ambiguous arg is passed to -File

* Update powershell console exit codes to match Unix standards

* Enable -WindowStyle to work
2017-08-17 07:34:02 +04:00
Ilya 813e4a661a Fix unblock read only file (#4395)
Adds a new non-terminating error when a file is read-only
2017-08-14 08:49:38 -07:00
Ilya 47a5a4d8ba Clean up '#if CORE' in PSUtils.cs (#4453)
* Cleanup '#if CORE' in PSUtils.cs

* Fix IsRunningOnProcessorArchitectureARM
2017-08-09 09:42:42 -07:00
Ilya e39966996e Clean up '#if CORE' in MshHostTraceListener.cs (#4402) 2017-08-08 09:33:39 -07:00
Ilya 649ff285ee Clean up '#if CORE' in ProcessCodeMethods.cs and 'ClrFacade.GetSafeProcessHandle' (#4428) 2017-08-08 09:20:57 -07:00
Ilya 0150f65d0c Clean up '#if CORE' in PSPrincipal.cs (#4433)
* Use TimeZoneInfo in PSPrincipal.cs

* Use TimeZoneInfo in serverremotesession.cs

* Use TimeZoneInfo in RemoteSessionCapability.cs

* Use TimeZoneInfo in serialization.cs

* Remove private fiield  'clientTimeZone'

* Remove extra line
2017-08-07 14:27:14 -07:00
Ilya 984b85f34d Clean up '#if CORE' in RunspaceConfiguration*.cs files (#4448)
* Cleanup '#if CORE' in RunspaceConfigurationTypeException.cs

* Cleanup '#if CORE' in RunspaceConfiguration.cs

* Cleanup '#if CORE' in RunspaceConfigurationEntry.cs

* Cleanup '#if CORE' in RunspaceConfigurationTypeAttribute.cs
2017-08-07 14:25:09 -07:00
Ilya 35a3ecd27b Cleanup '#if CORE' in Utils.cs (#4443) 2017-08-03 15:29:54 -07:00
Ilya 8aa028eae9 Cleanup '#if CORE' in TypeTable.cs (#4442) 2017-08-03 15:29:14 -07:00
Ilya 8034dd6dd1 Clean up '#if CORE' in PropertyAccessor.cs (#4429)
* Cleanup '#if CORE' in PropertyAccessor.cs

* Remove RegistryAccessor class
2017-08-03 08:34:21 -07:00
Ilya 65643e1b5d Cleanup '#if CORE' in EtwActivity.cs (#4455) 2017-08-02 09:59:39 -07:00
Ilya 82ad9da3a7 Cleanup '#if CORE' in SessionStateExceptions.cs (#4454) 2017-08-02 09:58:59 -07:00
Ilya 1a835f3382 Cleanup '#if CORE' in ExtensionMethods.cs (#4451) 2017-08-01 17:25:51 -07:00
Ilya f4a13e2e40 Cleanup '#if CORE' in PSTelemetryMethods.cs (#4452) 2017-08-01 17:25:37 -07:00
Ilya a7bfde5794 Cleanup '#if CORE' in PInvokeDllNames.cs (#4456) 2017-08-01 17:25:05 -07:00
Ilya fa8b9006dd Clean up '#if CORE' in Utils.cs (#4397) 2017-07-31 13:09:34 -07:00
Ilya e13dfc6b4e Clean up '#if CORE' in CimIndicationWatcher.cs (#4398) 2017-07-31 13:09:20 -07:00
Ilya dd3e7cd1f7 Cleanup '#if CORE' in PdhSafeHandle.cs (#4399) 2017-07-31 13:09:04 -07:00
Ilya df1056d28e Cleanup '#if CORE' in cimConverter.cs (#4400) 2017-07-31 13:08:42 -07:00
Ilya 30cd78a9a7 Cleanup '#if CORE' in GetComputerInfoCommand.cs (#4401) 2017-07-31 13:08:27 -07:00
Ilya 3b71bec9f3 Cleanup '#if CORE' in PSUserAgent.cs (#4403) 2017-07-31 13:06:51 -07:00
Ilya 38c5bc70e0 Cleanup '#if CORE' in Native.cs (#4404) 2017-07-31 13:06:33 -07:00
Ilya af24581ddd Cleanup '#if CORE' in PInvokeDllNames.cs (#4405) 2017-07-31 13:06:16 -07:00
Ilya 812081e964 Clean up '#if CORE' in Cmdlets.cs (#4406) 2017-07-31 13:05:38 -07:00
Ilya a3d05eb404 Cleanup '#if CORE' in HistoryQueue.cs (#4407) 2017-07-31 13:05:24 -07:00
Ilya 8454f99009 Cleanup '#if CORE' in CertificateProvider.cs (#4408) 2017-07-31 13:05:07 -07:00
Ilya a9535030ac Cleanup '#if CORE' in Set-QuickConfig.cs (#4410) 2017-07-31 13:04:23 -07:00
Ilya f2d507cb0a Cleanup '#if CORE' in cmdlets-over-objects.objectModel.autogen.cs (#4411) 2017-07-31 13:04:12 -07:00
Ilya 3e14daab3b Cleanup '#if CORE' in ILineOutput.cs (#4412) 2017-07-31 13:03:56 -07:00
Ilya 504aac522d Cleanup '#if CORE' in MshParameter.cs (#4413) 2017-07-31 13:03:12 -07:00
Ilya af6ccd4737 Cleanup '#if CORE' in CorePsExtensions.cs (#4414) 2017-07-31 13:02:56 -07:00
Ilya 5890c51e20 Cleanup '#if CORE' in CorePsPlatform.cs (#4415) 2017-07-31 13:02:14 -07:00
Ilya f3b18251cf Cleanup '#if CORE' in CurrentConfigurations.cs (#4409) 2017-07-31 12:58:44 -07:00
Ilya baa56f9c71 Cleanup '#if CORE' in CorePsStub.cs (#4416) 2017-07-31 12:55:28 -07:00
Ilya 86573cf926 Cleanup '#if CORE' in ComAdapter.cs (#4418) 2017-07-31 12:55:08 -07:00
Ilya 5bc204f26d Cleanup '#if CORE' in CompletionCompleters.cs (#4419) 2017-07-31 12:54:50 -07:00
Ilya 97e3cc2c35 Cleanup '#if CORE' in ExtensibleCompletion.cs (#4420) 2017-07-31 12:54:26 -07:00
Ilya 684ff97e79 Cleanup '#if CORE' in CommandProcessor.cs (#4421) 2017-07-31 12:54:13 -07:00
Ilya 5cfbf83447 Clean up '#if CORE' in ConnectionFactory.cs (#4422) 2017-07-31 12:54:01 -07:00
Ilya ea81506232 Cleanup '#if CORE' in DynamicInstructionN.cs (#4423) 2017-07-31 12:53:37 -07:00
Ilya 91df98f565 Cleanup '#if CORE' in InstructionFactory.cs (#4424) 2017-07-31 12:51:05 -07:00
Ilya 1841682c08 Clean up '#if CORE' in Utilities.cs (#4425) 2017-07-31 12:50:44 -07:00
Ilya ea3c207636 Cleanup '#if CORE' in ModuleIntrinsics.cs (#4426) 2017-07-31 12:50:15 -07:00
Ilya 5ce4e03ca5 Cleanup '#if CORE' ParameterBinderBase.cs (#4427) 2017-07-31 12:49:32 -07:00
Ilya 2bfe094b12 Cleanup '#if CORE' in PSVersionInfo.cs (#4430) 2017-07-31 12:49:11 -07:00
Ilya 927266225f Clean up '#if CORE' in remoterunspace.cs (#4431) 2017-07-31 12:48:38 -07:00
Ilya d2e3d60391 Clean up '#if CORE' in AddType.cs (#4370) 2017-07-28 13:38:27 -07:00
Ilya 184a9bc85e Clean up '#if CORE' - use SecurityZone from CoreFX (#4368)
Make `System.Management.Automation references` to package `System.Security.Permissions`, which brings back `SecurityZone` and `System.Security.Policy.Zone`.
2017-07-28 12:13:15 -07:00
Ilya 2dd371952d Clean up '#if CORECLR' in ClrFacade.cs (#4366) 2017-07-28 11:37:25 -07:00
Ilya 62f2a96cd9 Clean up '#if CORE' in OrderObjectBase.cs (#4371) 2017-07-28 11:29:43 -07:00
Ilya d433859771 Clean up '#if CORE' - use TimeZoneInfo and TimeZoneNotFoundException from CoreFX (#4369) 2017-07-28 11:29:02 -07:00
Ilya b61f21562b Cleanup '#if CORE' in ManagedEntrance.cs (#4373) 2017-07-28 11:25:08 -07:00
Ilya 23c9b934ef Fix C# tests for ValidateSetValuesGenerator (#4253) 2017-07-14 13:02:58 -07:00
Ilya dc76c86f7a ValidateSetAttribute enhancement: support set values to be dynamically generated from a custom ValidateSetValueGenerator (#3784)
Currently `ValidateSetAttribute` accepts only explicit constants as valid values. This is a significant limitation. Sometimes we need to get valid values dynamically, ex., Azure VMs, logged-on users and so on. The PR add follow possibilities:
- pass a _custom type_ (a valid values generator) implementing `IValidateSetValuesGenerator` interface to get valid values dynamically.
- pass a _custom type_ (a valid values generator) derived from `CachedValidValuesGeneratorBase` abstract class to get valid values dynamically and _cache_ the list to share with other ValidateSetAttribute attributes.
2017-07-13 21:28:32 -07:00
Ilya f8ae37c2cb Close eventLogSession and EventLogReader to unlock an etl file (#4034)
Fix #3979
2017-07-06 23:05:41 -07:00
Ilya a8e3d8968f Refactor MSBuild project files by adding the common property file 'PowerShell.Common.props' (#4106)
`AssemblyVersion` and `FileVersion` are now inferred from the `Version` property, which is inferred by `VersionPrefix`. So now both `AssemblyVersion` and `FileVersion` are 6.0.0.0 for each of PowerShell assemblies, and the `ProductVersion` and `InformationalVersion` are 6.0.0.
2017-06-29 10:25:49 -07:00
Ilya 9e41c647a9 Enhance ResGen tool to support generating C# binding file for a specific .resx file (#3918) 2017-06-26 10:48:24 -07:00
Ilya 84d458bb4c Add description of recommended settings for VS Code (#4054) 2017-06-23 09:23:50 -07:00
Ilya c549925f67 Set assembly versions by MSBuild (#3917)
* Update assemblies versions by MSBuild and create a new PowerShellAssembly.props file to consolidate properties.

* Move import on first place

* Move to "6.0.0-beta.3"
2017-06-22 18:21:36 -07:00
Ilya aa97fe7cd1 Resx - remove trailing white spaces and extra Newline at EOF (#4047) 2017-06-22 13:45:11 -07:00
Ilya 20862d6204 Check the dotnet-cli version in Start-PSBuild (#4045) 2017-06-21 09:32:06 -07:00
Ilya 598cebf7b2 Add cache for GetApplicationBase (#3969) 2017-06-20 15:08:02 -07:00
Ilya f30b06fe7c Add 'CSharpVersion7' member into public 'Language' enum (#3933)
Public enum 'LanguageVersion' from 'Microsoft.CodeAnalysis.CSharp'
already contains 'CSharp7' member.
After moving PowerShell to .Net Core 2.0 we should add 'CSharpVersion7'
member into public 'Microsoft.PowerShell.Commands.Language' enum too.

This will allow 'Add-Type -Language CSharpVersion7'
2017-06-19 18:09:15 -07:00
Ilya 0052ebb49a Add version to PowerShell banner (#3916)
Fixes #3895
2017-06-07 15:59:46 -07:00
Ilya f04d2fd2bc Convert tab indentations to spaces in *.resx files (#3576)
* Convert tab indentations to spaces in *.resx files

* Add Newline at EOF

* Remove extra char
2017-06-06 18:18:59 -07:00
Ilya 9c42d2d030 Remove BuildVersion from $PSVersionTable (#3877)
* Remove BuildVersion from PSVersionInfo type

* Fix error messages

* Remove BuildVersion from tests
2017-06-01 15:56:28 -07:00
Ilya a02d129cc4 Change to not expose unsupported aliases/cmdlets in Unix (#3595)
Make changes to not expose the aliases "gin", "gsv", "sasv" and "spsv" in Unix platforms.
Also refactored aliases related tests and added new tests covering the complete list of built-in aliases/cmdlets.
2017-05-23 10:27:31 -07:00
Ilya e00161a8af Add autoload for TestLanguage.psm1 TestHelpers.psm1 (#3456)
* Add autoload for TestHelpers.psm1

Test.Helpers.psm1 was renamed to TestHelpers.psm1

* Resolve conflit and rebase Add autoload for TestLanguage.psm1

* Remove unneeded comments from PSD1 files

* Rename test modules

Remove approved verbs (Get-Verb) from module names.

* Enhance ShouldBeErrorId to output exception into pipeline for later analysis

* Remove unneeded comments

* Resolve merge conflict
2017-05-17 11:09:27 -07:00
Ilya d275cee214 Correct formatting in PSVersionInfo (#3694) 2017-05-05 09:21:27 -07:00
Ilya 42cb8ba643 Move 'PSVersion' and 'PSEdition' to first and second places in $PSVersionTable (#3562) 2017-05-03 21:33:52 -07:00
Ilya 3d7ef43498 Improve ValidateCount attribute error message (#3656)
Leave only two message for ValidateCount attribute error:
1. Count is not in allowed range.
2. Count is not exactly equal allowed value.
2017-05-02 10:04:52 -07:00
Ilya 6db5c945b2 Remove unused and duplicated GetEncodingFromEnum (#3487) 2017-04-21 18:07:54 -07:00
Ilya e8ec40069b Improve ValidateCount attribute error message (#3596) 2017-04-21 18:01:04 -07:00
Ilya 4ad4b194fc Convert tab indentations to spaces in *.cs files (#3551)
Prepare to pass meta test.
2017-04-13 13:45:46 -07:00
Ilya acec58c049 Make the output of $PSVersionTable in alphabetical order (#3530) 2017-04-12 22:04:53 -07:00
Ilya f0c0176aa2 Typo in Format-Hex (#3539) 2017-04-12 10:43:18 -07:00
Ilya 0883438e55 Fix Default/OEM encoding behavior PowerShell Core (#3467)
Based on the conclusion in discussion #3248, this PR fix "OEM" and "Default" encoding in powershell.
1. OEM -- We need an internal fix because .Net Core has no "OEM" encoding.
The fix gives the following PowerShell Core behavior on "OEM" encoding:
   - on Windows - as Windows PowerShell based on GetOEMCP() and legacy encodings (System.Text.Encoding.CodePages)
   - on Unix - the same as default encoding in PowerShell Core

2. Default -- We need internal fix because CoreFX `Encoding.default` for all platforms is UTF8.
Until we complete the `Encoding RFC` we should restore behavior as in Windows PowerShell.
The fix gives the following PowerShell Core behavior on "Default" encoding:
   - on Windows - as Windows PowerShell based on GetACP() and legacy encodings (System.Text.Encoding.CodePages)
   - on Unix - UTF-8 without BOM (We are expecting that the same will be [in CoreFX](https://github.com/dotnet/coreclr/issues/10643))
2017-04-05 18:22:18 -07:00
Ilya 544e466e15 Fix 'StringBuilder' initialization (#3458) 2017-03-31 09:31:11 -07:00
Ilya 46cc634854 Fix typo in Scripting.Classes.BasicParsing.Tests.ps1 (#3459) 2017-03-30 08:35:06 -07:00
Ilya c705dbd0a7 Add test to verify approved aliases list (#3380) 2017-03-29 14:53:40 -07:00
Ilya 39be7109d4 Add tab completion for Select-Object -ExcludeProperty -ExpandProperty (#3443) 2017-03-29 10:36:18 -07:00
Ilya 27b27cc43a Autoload TestRemoting.psm1 (#3430) 2017-03-29 10:11:02 -07:00
Ilya b212c7a9bd Reuse ProgressRecord in Web Cmdlets (#3411) 2017-03-28 13:13:28 -07:00
Ilya a99fb531e6 Add autoload for test modules (#3342)
Related #3238

1. Add autoload for test modules
2. Move TestHostCS.psm1 to 'test\tools\Modules\' folder
3. Remove explicit load TestHostCS.psm1 from test files
2017-03-26 21:46:39 -07:00
Ilya 915dfcd0d9 Improve a progress pane performance (one thread) (#2822)
Showing a progress bar is handled on the pipeline thread only. But not every "WriteProgress" will trigger the "_progPane.Show" to be called. Instead, a timer is used to set an "update" flag that will be checked in "HandleIncomingProgressRecord" to see whether "_progPane.Show" should be called. The timer fires every 200 ms. I test intervals from 50 ms to 2000 ms and I didn't measure much difference with 100 ms and 200 ms, so 200 ms is chosen to make it more cost-efficient.
2017-03-17 14:14:15 -07:00
Ilya 6198b9b943 Rename "generated" files (#3275)
1. GetEvent_Types_Ps1Xml.generated.cs -> GetEvent_Types_Ps1Xml.cs
2. TypesV3_Ps1Xml.generated.cs -> TypesV3_Ps1Xml.cs
2017-03-07 12:51:28 -08:00
Ilya e10cbff354 Add ShouldProcess to New-FileCatalog and Test-FileCatalog (#3074)
* Add ShouldProcess to New-FileCatalog and Test-FileCatalog

Close #3068

Add support `-WhatIf` and `-Confirm` to `New-FileCatalog` and add a
test.
`Test-FileCatalog` has a common code base with `New-FileCatalog` so it
automatically get the same. I believe that adding a separate test in
this case doesn't make sense.

* Fiz after code review

Remove  _ShouldProcess
Add var in test
2017-02-17 16:32:58 -08:00
Ilya 88c8be75f2 Get-ComputerInfo - fix typo in property name (#3167) 2017-02-17 13:10:51 -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 fd70adbc90 Improve console cmdlets tests (#3101)
* Improve console cmdlets tests
Main improvements refer to tests of the Write-Host cmdlet.
Original tests:
1. Slow because run external processes
2. Don't test colors and -NoNewLine in fact.

1. The original tests is preserved (deleted one as redundant) but marked
by 'Slow' tag. They is preserved because they actually check the output
on the work, not a test console.
2. Add negative color tests. (Code cover grow!)
3. Add tests based on TestHostCS. This test host has been refined so we
can see colors and a new line in output.
4. Add minor fixes for test modules loads.

Also I add support for Information stream. I originally planned to use
it but not actually used. However, I have left this as a useful addition
for future tests.
I wonder that a Write-Host console output is duplicated in Information
Stream - Is it by design? I left a debug print on this matter in the
test code.

* Fix after code review
* Corrections after code review
Suppress import-module warnings
Rename Describes
Add "-Object" test
Add Stream.Information tests with TestHostCS
* Add checks for Streams.Information and add comments
2017-02-14 11:00:03 -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
Ilya aa764dd54e Small typo in archive cmdlets tests (#3121)
* Small typo in archive cmdlets tests
* Add  -ErrorAction SilentlyContinue
2017-02-10 13:39:34 -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