summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/runtime
diff options
context:
space:
mode:
authorFrederic Martinsons <frederic.martinsons@gmail.com>2023-08-17 07:04:15 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-08-21 16:15:35 +0100
commit5116f2b2cf3d00fc2c9f41f8ce3661ed7bb4975e (patch)
tree6aa9a1a1267e7229afe8f969c4fa4548c94cfdb7 /meta/lib/oeqa/runtime
parentc318d1914e0b65e04b945f67651a56c2699eb969 (diff)
downloadpoky-5116f2b2cf3d00fc2c9f41f8ce3661ed7bb4975e.tar.gz
rust: provide examples for C library generation in rust
rust-c-lib-example is a little rust code which provide a single function to print a formatted date (via the chrono crate) from an input timestamp in millisecond. It has the necessary FFI annotation and inherit cargo_c class for the C ABI compatible library generation. rust-c-lib-example is meson project for the C code which will call the print_date function from rust-c-lib-example if no argument is provided, if any argument is provided it will print "Hello world in rust from C!" add a runtime test case to check if all went well. (From OE-Core rev: bb177c7764b1bc47157d57d7a34930e59a7acef3) Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/runtime')
-rw-r--r--meta/lib/oeqa/runtime/cases/rust.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/meta/lib/oeqa/runtime/cases/rust.py b/meta/lib/oeqa/runtime/cases/rust.py
index 9bf0312669..39707cf5cf 100644
--- a/meta/lib/oeqa/runtime/cases/rust.py
+++ b/meta/lib/oeqa/runtime/cases/rust.py
@@ -48,3 +48,15 @@ class RustCompileTest(OERuntimeTestCase):
48 status, output = self.target.run('cargo run --manifest-path=/tmp/hello/Cargo.toml') 48 status, output = self.target.run('cargo run --manifest-path=/tmp/hello/Cargo.toml')
49 msg = 'running compiled file failed, output: %s' % output 49 msg = 'running compiled file failed, output: %s' % output
50 self.assertEqual(status, 0, msg=msg) 50 self.assertEqual(status, 0, msg=msg)
51
52class RustCLibExampleTest(OERuntimeTestCase):
53 @OETestDepends(['ssh.SSHTest.test_ssh'])
54 @OEHasPackage('rust-c-lib-example-bin')
55 def test_rust_c_lib_example(self):
56 cmd = "rust-c-lib-example-bin test"
57 status, output = self.target.run(cmd)
58 msg = 'Exit status was not 0. Output: %s' % output
59 self.assertEqual(status, 0, msg=msg)
60
61 msg = 'Incorrect output: %s' % output
62 self.assertEqual(output, "Hello world in rust from C!", msg=msg)