-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathGet-TestDirectory.ps1
41 lines (37 loc) · 1.19 KB
/
Get-TestDirectory.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function Get-TestDirectory {
param(
[Parameter(Mandatory)]
[object]
$RuleObject,
[Parameter(Mandatory)]
[ValidateSet('c', 'cpp')]
[string]
$Language
)
if ($RuleObject.shared_implementation_short_name) {
$standardString = "common"
$ruleDir = $RuleObject.shared_implementation_short_name.ToLower()
}
else {
if ($RuleObject.__memberof_suite -eq "AUTOSAR") {
$standardString = "autosar"
}
elseif ($RuleObject.__memberof_suite -eq "CERT-C++") {
$standardString = "cert"
}
elseif ($RuleObject.__memberof_suite -eq "CERT-C") {
$standardString = "cert"
}
elseif ($RuleObject.__memberof_suite -eq "MISRA-C-2012") {
$standardString = "misra"
}
elseif ($RuleObject.__memberof_suite -eq "MISRA-C++-2023") {
$standardString = "misra"
}
else {
throw "Unknown standard $($RuleObject.__memberof_suite)"
}
$ruleDir = $RuleObject.__memberof_rule
}
return Join-Path (Join-Path (Join-Path (Join-Path $Language $standardString) "test") "rules") $ruleDir
}