# This script does 1 unit-test on given relative dir path and on given language. # Here's its syntax: # .\unit-test.ps1 RELATIVE_PATH LANG # It return 0 if result is OK # -1 if result is KO # -2 if exception # 1 if unitTest file not found $testRoot = ".\" $dirName=$args[0] $langName=$args[1] Try { if ((Get-Item $testRoot$dirName) -is [System.IO.DirectoryInfo]) { if (-Not (Test-Path $testRoot$dirName\unitTest)) { return 1 } if ($langName.StartsWith("udl-")) { $langName = $langName.Replace("udl-", "") ..\..\bin\notepad++.exe -export=functionList -udl="$langName" $testRoot$dirName\unitTest | Out-Null } else { ..\..\bin\notepad++.exe -export=functionList -l"$langName" $testRoot$dirName\unitTest | Out-Null } $expectedRes = Get-Content $testRoot$dirName\unitTest.expected.result $generatedRes = Get-Content $testRoot$dirName\unitTest.result.json # Some parser results contain CRLF or LF (\r\n or \n) dependent of file EOL format # In order to make tests pass in any environment, all the CRLF turning into LF (if any) in both strings $expectedRes = $expectedRes.replace('\r\n','\n') $generatedRes = $generatedRes.replace('\r\n','\n') if ($generatedRes -eq $expectedRes) { Remove-Item $testRoot$dirName\unitTest.result.json return 0 } else { $expectedRes "`nvs`n" $generatedRes return -1 } } } Catch { return -2 }