1*** Variables ***
2${VALID_PLATFORM}                          ram: Memory.MappedMemory @ sysbus 0x40_000_000  { size: 8_0000_00_0 }
3${INVALID_PLATFORM1}                       ram: Memory.MappedMemory @ sysbus _0x40_000_000 { size: 8_0000_00_0 }
4${INVALID_PLATFORM2}                       ram: Memory.MappedMemory @ sysbus 0x40_000_000  { size: _8_0000_00_0 }
5${INVALID_PLATFORM3}                       ram: Memory.MappedMemory @ sysbus 0x40_000_000  { size: 8_0000_00_0_ }
6${INVALID_PLATFORM4}                       ram: Memory.MappedMemory @ sysbus 0_x40_000_000  { size: 8_0000_00_0 }
7${INVALID_PLATFORM5}                       ram: Memory.MappedMemory @ sysbus 0x_40_000_000  { size: 8_0000_00_0 }
8
9*** Test Cases ***
10Should Handle Number Separator
11    Execute Command               mach create
12    Execute Command               machine LoadPlatformDescriptionFromString "${VALID_PLATFORM}"
13
14    ${out}=  Execute Command      sysbus WhatIsAt 0x30000000
15    Should Be Empty               ${out}
16
17    # Verify that both parameters that use digit separator resolved correctly
18    ${out}=  Execute Command      sysbus WhatPeripheralIsAt 0x40000000
19    Should Be Equal As Strings    ${out.strip()}       Antmicro.Renode.Peripherals.Memory.MappedMemory
20
21    ${out}=  Execute Command      sysbus.ram Size
22    Should Be Equal As Numbers    ${out}       0x4C4B400
23
24Should Not Handle Invalid Cases
25    Execute Command                 mach create
26    Run Keyword And Expect Error    *Error E00: Syntax error, unexpected '_'; expected end of input*                                                      Execute Command               machine LoadPlatformDescriptionFromString "${INVALID_PLATFORM1}"
27    Run Keyword And Expect Error    *Error E00: Syntax error, unexpected '_'; expected constructor or property value or none keyword or empty keyword*    Execute Command               machine LoadPlatformDescriptionFromString "${INVALID_PLATFORM2}"
28    Run Keyword And Expect Error    *Error E00: Syntax error, unexpected '_'; expected attribute list end*                                                Execute Command               machine LoadPlatformDescriptionFromString "${INVALID_PLATFORM3}"
29    Run Keyword And Expect Error    *Error E00: Syntax error, unexpected '_'; expected end of input*                                                      Execute Command               machine LoadPlatformDescriptionFromString "${INVALID_PLATFORM4}"
30    Run Keyword And Expect Error    *Error E00: Syntax error, unexpected 'x'; expected end of input*                                                      Execute Command               machine LoadPlatformDescriptionFromString "${INVALID_PLATFORM5}"
31