# Script to test a directory listing. We use this to verify that the list of # files installed by "make install" or "cmake --install" matches what we expect. param ( [Parameter(Mandatory=$true)] [string]$inputDir, [Parameter(Mandatory=$true)] [string]$manifestName ) if ((-not $inputDir) -or (-not $manifestName)) { throw "Usage: .\RunManifestTest.ps1 " } $base = [System.IO.Path]::GetFileName($manifestName) $installedFiles = Get-ChildItem -Recurse -Force -Path $inputDir | Sort-Object {[System.BitConverter]::ToString([system.Text.Encoding]::UTF8.GetBytes($_.FullName))} | ForEach-Object { $_.Mode.Substring(0,5) + " " + ($_.FullName | Resolve-Path -Relative) } $null = New-Item -Force $base -Value (($installedFiles | Out-String) -replace "`r`n", "`n") $expectedFiles = Get-Content -Path $manifestName -Raw $actualFiles = Get-Content -Path $base -Raw if ($expectedFiles -ne $actualFiles) { Write-Host "===Actual===" Write-Host $actualFiles Write-Host "===End===" throw "Installed files differ from expected" } Write-Host "Installed files match expected" Remove-Item -Path $base -Force