| *** Keywords *** |
| Create Machine |
| ${TEST_DIR}= Evaluate r"${CURDIR}".replace(" ", "\\ ") |
| |
| Execute Command mach create |
| Execute Command i @${TEST_DIR}/PeripheralWithAliases.cs |
| Create Log Tester 0 |
| |
| Create Test Peripheral |
| [Arguments] ${parameters}=${EMPTY} |
| Execute Command machine LoadPlatformDescriptionFromString "test: Mocks.PeripheralWithAliases @ sysbus {${parameters}}" |
| |
| *** Test Cases *** |
| Should Create Peripheral Without Using Aliases |
| Create Machine |
| Create Test Peripheral normalParameter: 5; mode: PeripheralModes.Mode1; aliasedParameter: 10 |
| Wait For Log Entry normalParameter = 5 |
| Wait For Log Entry mode = Mode1 |
| Wait For Log Entry aliasedParameter = 10 |
| Wait For Log Entry aliasedParameterDefault = 0 |
| |
| Should Create Peripheral Using Aliases |
| Create Machine |
| Create Test Peripheral normalParameter: -12; mode: Modes.Mode2; ctorAlias: 100; ctorAliasDefault: 15 |
| Wait For Log Entry normalParameter = -12 |
| Wait For Log Entry mode = Mode2 |
| Wait For Log Entry aliasedParameter = 100 |
| Wait For Log Entry aliasedParameterDefault = 15 |
| |
| Should Warn When Using Aliases |
| Create Machine |
| Create Test Peripheral normalParameter: 5; mode: Modes.Mode1; ctorAlias: 10; ctorAliasDefault: 15 |
| Wait For Log Entry Using alias 'Modes' for type 'PeripheralModes' |
| Wait For Log Entry Using alias 'ctorAlias' for parameter 'aliasedParameter' |
| Should Not Be In Log Using alias 'ctorAliasDefault' for parameter 'aliasedParameterDefault' |
| |
| Should Not Accept Invalid Aliases |
| Create Machine |
| Run Keyword And Expect Error *Could not find corresponding attribute for parameter 'aliasedParameter'* |
| ... Create Test Peripheral normalParameter: 5; mode: Modes.Mode1; invalidParameter: 10 |