| *** Settings *** |
| Suite Setup Custom Suite Setup |
| Suite Teardown Custom Suite Teardown |
| |
| *** Variables *** |
| ${EXISTING_PLATFORM} platforms/cpus/miv.repl |
| |
| *** Keywords *** |
| Custom Suite Setup |
| ${dirname}= Generate Random String 10 [LETTERS] |
| ${path}= Join Path ${TEMPDIR} robot-${dirname} |
| Set Suite Variable ${SUITE_TEMPDIR} ${path} |
| Create Directory ${SUITE_TEMPDIR} |
| Setup |
| |
| Custom Suite Teardown |
| # It seems that on Windows, locks to "logFile"s are still being held after "Clear" |
| # preventing Teardown, so some tests are temporarily marked as "skip_windows" until this issue is resolved |
| Execute Command Clear |
| Remove Directory ${SUITE_TEMPDIR} true |
| Teardown |
| |
| Create Machine |
| Execute Command using sysbus |
| Execute Command mach create |
| Execute Command machine LoadPlatformDescriptionFromString "uart: UART.SiFive_UART @ sysbus 0x1000" |
| |
| Create Temporary REPL File |
| [Arguments] ${repl_filename} |
| ${file_path}= Join Path ${SUITE_TEMPDIR} ${repl_filename} |
| Create File ${file_path} |
| RETURN ${file_path} |
| |
| Should Have Loaded REPL |
| ${peripherals}= Execute Command peripherals |
| Should Contain ${peripherals} sysbus |
| |
| *** Test Cases *** |
| Should Create Uart Backend |
| Create Machine |
| |
| ${base_file}= Join Path ${SUITE_TEMPDIR} file |
| Execute Command uart CreateFileBackend @${base_file} |
| File Should Exist ${base_file} |
| |
| Execute Command uart CloseFileBackend @${base_file} |
| |
| ${next_file}= Join Path ${SUITE_TEMPDIR} file.1 |
| Execute Command uart CreateFileBackend @${base_file} |
| File Should Exist ${next_file} |
| |
| Should Create Subsequent Log Files |
| [Tags] skip_windows |
| ${base_file}= Join Path ${SUITE_TEMPDIR} logfile |
| Execute Command logFile @${base_file} |
| File Should Exist ${base_file} |
| |
| ${next_file}= Join Path ${SUITE_TEMPDIR} logfile.1 |
| Execute Command logFile @${base_file} |
| File Should Exist ${next_file} |
| |
| Should Create Platform Using Command |
| Execute Command include @${EXISTING_PLATFORM} |
| Should Have Loaded REPL |
| |
| Should Create Platform Using Method |
| Execute Command mach create |
| |
| Execute Command machine LoadPlatformDescription @${EXISTING_PLATFORM} |
| Should Have Loaded REPL |
| |
| Should Create Platform Using Command With String Argument |
| # Using a string argument allows spaces in the file path. |
| Execute Command include "${EXISTING_PLATFORM}" |
| ${repl}= Create Temporary REPL File Platform With Spaces.repl |
| Execute Command include "${repl}" |
| Should Have Loaded REPL |
| |
| Should Create Platform Using Method With String Argument |
| Execute Command mach create |
| |
| Execute Command machine LoadPlatformDescription "${EXISTING_PLATFORM}" |
| ${repl}= Create Temporary REPL File Platform With Spaces.repl |
| Execute Command machine LoadPlatformDescription "${repl}" |
| Should Have Loaded REPL |