From 09f447d27f02cadeaa907921e509c26a399c08ef Mon Sep 17 00:00:00 2001 From: chrysn Date: Wed, 12 Jan 2022 12:05:52 +0100 Subject: [PATCH] tests: Add rust-as-a-module test Taken and simplified from shell test. --- tests/rust_libs/Makefile | 12 +++++++ tests/rust_libs/Makefile.ci | 10 ++++++ tests/rust_libs/main.c | 1 + tests/rust_libs/tests/01-run.py | 59 +++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 tests/rust_libs/Makefile create mode 100644 tests/rust_libs/Makefile.ci create mode 120000 tests/rust_libs/main.c create mode 100755 tests/rust_libs/tests/01-run.py diff --git a/tests/rust_libs/Makefile b/tests/rust_libs/Makefile new file mode 100644 index 000000000000..a41e32300765 --- /dev/null +++ b/tests/rust_libs/Makefile @@ -0,0 +1,12 @@ +include ../Makefile.tests_common + +USEMODULE += shell +USEMODULE += shell_democommands + +FEATURES_REQUIRED += rust_target + +# Currently unknown, something related to the LED_PORT definition that doesn't +# pass C2Rust's transpilation +BOARD_BLACKLIST := ek-lm4f120xl + +include $(RIOTBASE)/Makefile.include diff --git a/tests/rust_libs/Makefile.ci b/tests/rust_libs/Makefile.ci new file mode 100644 index 000000000000..84248e69c910 --- /dev/null +++ b/tests/rust_libs/Makefile.ci @@ -0,0 +1,10 @@ +BOARD_INSUFFICIENT_MEMORY := \ + nucleo-f031k6 \ + nucleo-f042k6 \ + nucleo-l011k4 \ + nucleo-l031k6 \ + samd10-xmini \ + stk3200 \ + stm32f030f4-demo \ + stm32g0316-disco \ + # diff --git a/tests/rust_libs/main.c b/tests/rust_libs/main.c new file mode 120000 index 000000000000..c541a5892ab9 --- /dev/null +++ b/tests/rust_libs/main.c @@ -0,0 +1 @@ +../shell/main.c \ No newline at end of file diff --git a/tests/rust_libs/tests/01-run.py b/tests/rust_libs/tests/01-run.py new file mode 100755 index 000000000000..e4994164572b --- /dev/null +++ b/tests/rust_libs/tests/01-run.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2017 Alexandre Abadie +# 2022 Christian Amsüss +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. + +import sys +from testrunner import run + + +EXPECTED_HELP = ( + 'Command Description', + '---------------------------------------', + 'bufsize Get the shell\'s buffer size', + 'start_test starts a test', + 'end_test ends a test', + 'echo prints the input command', + 'empty print nothing on command', + 'hello_world Print a greeting', + 'xfa_test1 xfa test command 1', + 'xfa_test2 xfa test command 2', +) + +PROMPT = '> ' + +CMDS = ( + ('start_test', '[TEST_START]'), + + # test default commands + ('help', EXPECTED_HELP), + + ('end_test', '[TEST_END]'), +) + +CMDS_REGEX = {'ps.rs'} + + +def check_cmd(child, cmd, expected): + regex = cmd in CMDS_REGEX + child.expect(PROMPT) + child.sendline(cmd) + for line in expected: + if regex: + child.expect(line) + else: + child.expect_exact(line) + + +def testfunc(child): + # loop other defined commands and expected output + for cmd, expected in CMDS: + check_cmd(child, cmd, expected) + + +if __name__ == "__main__": + sys.exit(run(testfunc))