1*** Settings *** 2Suite Setup Get Test Cases 3 4*** Variables *** 5${platforms_path}= ${CURDIR}${/}..${/}..${/}platforms 6@{pattern}= *.repl 7# Some repls are not standalone and need to be included by other repls with "using" syntax 8# or added dynamically to the existing platform with "machine LoadPlatformDescription" command. 9# We maintain the known list of such repls to exclude from a standalone testing. 10# These repls are either tested indirectly as the part of other repls or by dedicated scripts. 11@{blacklist}= ${platforms_path}${/}boards${/}stm32f4_discovery-additional_gpios.repl 12... ${platforms_path}${/}boards${/}mars_zx3-externals.repl 13... ${platforms_path}${/}boards${/}leon3-externals.repl 14... ${platforms_path}${/}boards${/}tegra_externals.repl 15... ${platforms_path}${/}boards${/}stm32f4_discovery-bb.repl 16... ${platforms_path}${/}boards${/}zedboard-externals.repl 17... ${platforms_path}${/}boards${/}vexpress-externals.repl 18 19*** Keywords *** 20Get Test Cases 21 Setup 22 # This line must use the "path" notation to handle paths with spaces 23 @{platforms}= List Files In Directory Recursively ${platforms_path} @{pattern} 24 Remove Values From List ${platforms} @{blacklist} 25 ${list_length}= Get Length ${platforms} 26 Should Not Be True ${list_length} == 0 27 Set Suite Variable ${platforms} 28 29Try Load Platform 30 [Arguments] ${repl} 31 Execute Command mach create 32 Execute Command machine LoadPlatformDescription "${repl}" 33 Reset Emulation 34 35*** Test Cases *** 36Should Load Repls 37 # This tests uses templates as it tests every item on the list, even if a prior one failed, and produces aggregated fails summary 38 [Template] Try Load Platform 39 FOR ${test} IN @{platforms} 40 ${test} 41 END 42