diff --git a/test/powershell/Host/Base-Directory.Tests.ps1 b/test/powershell/Host/Base-Directory.Tests.ps1 index 70f5163d31..625c64b1de 100644 --- a/test/powershell/Host/Base-Directory.Tests.ps1 +++ b/test/powershell/Host/Base-Directory.Tests.ps1 @@ -10,9 +10,14 @@ Describe "Configuration file locations" -tags "CI","Slow" { BeforeAll { if ($IsWindows) { + $ProductName = "WindowsPowerShell" + if ($IsCoreCLR -and ($PSHOME -notlike "*Windows\System32\WindowsPowerShell\v1.0")) + { + $ProductName = "PowerShell" + } $expectedCache = [IO.Path]::Combine($env:LOCALAPPDATA, "Microsoft", "Windows", "PowerShell", "StartupProfileData-NonInteractive") - $expectedModule = [IO.Path]::Combine($env:USERPROFILE, "Documents", "PowerShell", "Modules") - $expectedProfile = [io.path]::Combine($env:USERPROFILE, "Documents","PowerShell",$profileName) + $expectedModule = [IO.Path]::Combine($env:USERPROFILE, "Documents", $ProductName, "Modules") + $expectedProfile = [io.path]::Combine($env:USERPROFILE, "Documents", $ProductName, $profileName) $expectedReadline = [IO.Path]::Combine($env:AppData, "Microsoft", "Windows", "PowerShell", "PSReadline", "ConsoleHost_history.txt") } else { $expectedCache = [IO.Path]::Combine($env:HOME, ".cache", "powershell", "StartupProfileData-NonInteractive") diff --git a/test/powershell/enginecore/ModulePath.Tests.ps1 b/test/powershell/enginecore/ModulePath.Tests.ps1 index b6b664de5b..0c33e15ee9 100644 --- a/test/powershell/enginecore/ModulePath.Tests.ps1 +++ b/test/powershell/enginecore/ModulePath.Tests.ps1 @@ -1,32 +1,45 @@ -Describe "Module Path Basic Tests" -tags "CI" { +Describe "SxS Module Path Basic Tests" -tags "CI" { - It "validate module path on windows" -Skip:(!$IsWindows) { - - $paths = $env:PSMODULEPATH -split [System.IO.Path]::PathSeparator - $paths.Count | Should Be 3 - - $expectedUserPath = Join-Path -Path $HOME -ChildPath 'Documents\PowerShell\Modules' - $paths[0] | Should Be $expectedUserPath - - $expectedSharedPath = Join-Path -Path $env:ProgramFiles -ChildPath 'PowerShell\Modules' - $paths[1] | Should Be $expectedSharedPath + BeforeAll { + if ($IsWindows) + { + $powershell = "$PSHOME\powershell.exe" + $ProductName = "WindowsPowerShell" + if ($IsCoreCLR -and ($PSHOME -notlike "*Windows\System32\WindowsPowerShell\v1.0")) + { + $ProductName = "PowerShell" + } + $expectedUserPath = Join-Path -Path $HOME -ChildPath "Documents\$ProductName\Modules" + $expectedSharedPath = Join-Path -Path $env:ProgramFiles -ChildPath "$ProductName\Modules" + } + else + { + $powershell = "$PSHOME/powershell" + $expectedUserPath = [System.Management.Automation.Platform]::SelectProductNameForDirectory("USER_MODULES") + $expectedSharedPath = [System.Management.Automation.Platform]::SelectProductNameForDirectory("SHARED_MODULES") + } $expectedSystemPath = Join-Path -Path $PSHOME -ChildPath 'Modules' - $paths[2] | Should Be $expectedSystemPath } - It "validate module path on unix" -Skip:($IsWindows) { - - $paths = $env:PSMODULEPATH -split [System.IO.Path]::PathSeparator + BeforeEach { + $originalModulePath = $env:PSMODULEPATH + } + + AfterEach { + $env:PSMODULEPATH = $originalModulePath + } + + It "validate sxs module path" { + + $env:PSMODULEPATH = "" + $defaultModulePath = & $powershell -nopro -c '$env:PSMODULEPATH' + + $paths = $defaultModulePath -split [System.IO.Path]::PathSeparator + $paths.Count | Should Be 3 - - $expectedUserPath = [System.Management.Automation.Platform]::SelectProductNameForDirectory("USER_MODULES") $paths[0] | Should Be $expectedUserPath - - $expectedSharedPath = [System.Management.Automation.Platform]::SelectProductNameForDirectory("SHARED_MODULES") $paths[1] | Should Be $expectedSharedPath - - $expectedSystemPath = Join-Path -Path $PSHOME -ChildPath 'Modules' $paths[2] | Should Be $expectedSystemPath } }