You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.4 KiB
57 lines
1.4 KiB
# 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 |
|
}
|
|
|