sim:tests: sel4test+wrapper robot script

Change-Id: Ie4f8932b89e90650018452287579c255fa922f17
diff --git a/shodan_sel4test.robot b/shodan_sel4test.robot
new file mode 100644
index 0000000..f20871b
--- /dev/null
+++ b/shodan_sel4test.robot
@@ -0,0 +1,174 @@
+# m sel4test+wrapper robot script; expects/runs pre-built artifacts
+# Takes ~15 mins (wall time) on a cloudtop
+# TODO: need build target to just build artifacts
+
+*** Settings ***
+Suite Setup                     Setup
+Suite Teardown                  Teardown
+Test Setup                      Reset Emulation
+Test Teardown                   Test Teardown
+Resource                        ${RENODEKEYWORDS}
+
+*** Variables ***
+${LOG_TIMEOUT}                   2
+${ROOTDIR}                       @${CURDIR}/../..
+${SCRIPT}                        sim/config/shodan.resc
+${UART0}                         sysbus.uart0
+${UART1}                         sysbus.uart1
+${UART2}                         sysbus.uart2
+${UART3}                         sysbus.uart3
+${UART5}                         sysbus.uart5
+
+*** Keywords ***
+Prepare Machine
+    Execute Command             path set ${ROOTDIR}
+    Execute Command             $tar=@out/sel4test-wrapper/riscv32-unknown-elf/release/ext_flash.tar
+    Execute Command             $kernel=@out/sel4test-wrapper/riscv32-unknown-elf/release/kernel/kernel.elf
+    Execute Command             $cpio=@/dev/null
+    Execute Script              ${SCRIPT}
+# Add UART5 virtual time so we can check the machine execution time
+    Execute Command             uart5-analyzer TimestampFormat Virtual
+    Execute Command             cpu0 IsHalted false
+    Set Default Uart Timeout    30
+
+
+*** Test Cases ***
+Shodan seL4test with Rust syscall wrappers
+    [Documentation]             Test TockOS boot, seL4 boot and sel4test
+    [Tags]                      tock seL4 sel4test uart
+    Prepare Machine
+    Create Log Tester           ${LOG_TIMEOUT}
+    ${tockuart}=                Create Terminal Tester        ${UART0}
+    ${sel4uart}=                Create Terminal Tester        ${UART5}
+    Start Emulation
+
+    Wait For Line On Uart       load_sel4() completed successfully               testerId=${tockuart}
+    Wait For Line On Uart       Booting all finished, dropped to user space      testerId=${sel4uart}
+    Wait For Line On Uart       MCS configuration                                testerId=${sel4uart}
+    Wait For Line On Uart       Starting test suite sel4test                     testerId=${sel4uart}
+    Wait For Line On Uart       Test BIND0001 passed                             testerId=${sel4uart}
+    Wait For Line On Uart       Test BIND0002 passed                             testerId=${sel4uart}
+    Wait For Line On Uart       Test BIND0003 passed                             testerId=${sel4uart}
+    Wait For Line On Uart       Test BIND0004 passed                             testerId=${sel4uart}
+    Wait For Line On Uart       Test BIND005 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test BIND006 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test CANCEL_BADGED_SENDS_0001 passed             testerId=${sel4uart}
+    Wait For Line On Uart       Test CANCEL_BADGED_SENDS_0002 passed             testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0001 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0002 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0003 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0004 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0005 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0006 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0007 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CNODEOP0008 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test CSPACE0001 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test DOMAINS0001 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test DOMAINS0002 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test DOMAINS0003 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test FPU0000 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test FPU0001 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test FRAMEDIPC0001 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test FRAMEDIPC0002 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test FRAMEDIPC0003 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test FRAMEEXPORTS0001 passed                     testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0001 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0002 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0003 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0004 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0010 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0011 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0012 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0013 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0014 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0015 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0016 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0017 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0018 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0019 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0020 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0021 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0022 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0023 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0024 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0025 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0026 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC0027 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC1001 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC1002 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC1003 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPC1004 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test IPCRIGHTS0001 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test IPCRIGHTS0002 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test IPCRIGHTS0003 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test NBWAIT0001 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT0001 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT0002 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT0003 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT0004 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT1001 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT1002 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT1003 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test PAGEFAULT1004 passed                        testerId=${sel4uart}
+    Wait For Line On Uart       Test REGRESSIONS0001 passed                      testerId=${sel4uart}
+    Wait For Line On Uart       Test RETYPE0000 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test RETYPE0001 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test RETYPE0002 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0002 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0003 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0004 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0005 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0007 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0016 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0017 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0019 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED0020 passed                            testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED_CONTEXT_0001 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED_CONTEXT_0003 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED_CONTEXT_0006 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED_CONTEXT_0007 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SCHED_CONTEXT_0008 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLIENT_001 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLIENT_002 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLIENT_003 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLIENT_004 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLIENT_005 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLI_PROC_001 passed                 testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLI_PROC_002 passed                 testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLI_PROC_003 passed                 testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLI_PROC_004 passed                 testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_CLI_PROC_005 passed                 testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_001 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_002 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_003 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_004 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_005 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_006 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_007 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_008 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_009 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SERSERV_PARENT_010 passed                   testerId=${sel4uart}
+    Wait For Line On Uart       Test SYNC001 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test SYNC002 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test SYNC003 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test SYNC004 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test THREADS0004 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test THREADS0005 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test TIMEOUTFAULT0001 passed                     testerId=${sel4uart}
+    Wait For Line On Uart       Test TIMEOUTFAULT0002 passed                     testerId=${sel4uart}
+    Wait For Line On Uart       Test TIMEOUTFAULT0003 passed                     testerId=${sel4uart}
+    Wait For Line On Uart       Test TLS0001 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test TLS0002 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test TLS0006 passed                              testerId=${sel4uart}
+    Wait For Line On Uart       Test TRIVIAL0000 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test TRIVIAL0001 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test TRIVIAL0002 passed                          testerId=${sel4uart}
+    Wait For Line On Uart       Test VSPACE0000 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test VSPACE0002 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test VSPACE0003 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test VSPACE0004 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test VSPACE0005 passed                           testerId=${sel4uart}
+    Wait For Line On Uart       Test VSPACE0006 passed                           testerId=${sel4uart}
+#    Wait For Line On Uart       Test suite passed. 139 tests passed. 43 tests disabled.                 testerId=${sel4uart}
+#    ${passed} ${disabled} = Wait For Line On Uart       Test suite passed. (\\d+) tests passed. (\\d+) tests disabled.                      testerId=${sel4uart}
+    Wait For Line On Uart       All is well in the universe                      testerId=${sel4uart}