1*** Keywords ***
2Create Machine
3    [Arguments]                     ${isa}
4    ${isa_base}=                    Convert To Lower Case  ${isa}[0:4]
5    IF  "${isa_base}" == "rv32"
6        ${bits}=                        Set Variable  32
7    ELSE IF  "${isa_base}" == "rv64"
8        ${bits}=                        Set Variable  64
9    ELSE
10        Fail                            Invalid ISA name: ${isa}
11    END
12
13    Execute Command                 mach create
14    Execute Command                 machine LoadPlatformDescriptionFromString "cpu: CPU.RiscV${bits} @ sysbus { cpuType: \\"${isa}\\" }"
15
16*** Test Cases ***
17Should Create CPUs With Supported ISAs
18    [Template]                      Create Machine
19    RV32I_V
20    RV32I_Zvfh
21    RV32I_Zve32x
22    RV32I_Zve32f
23    RV32I_Zve64x
24    RV32I_Zve64f
25    RV32I_Zve64d
26
27Should Fail On Unsupported ISA
28    Run Keyword And Expect Error    *Undefined instructions set extension*  Create Machine  RV32GC_invalid_ISA
29