diff options
author | Frederic Martinsons <frederic.martinsons@gmail.com> | 2023-08-17 07:04:15 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-08-21 16:15:35 +0100 |
commit | 5116f2b2cf3d00fc2c9f41f8ce3661ed7bb4975e (patch) | |
tree | 6aa9a1a1267e7229afe8f969c4fa4548c94cfdb7 /meta/lib/oeqa/runtime | |
parent | c318d1914e0b65e04b945f67651a56c2699eb969 (diff) | |
download | poky-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.py | 12 |
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 | |||
52 | class 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) | ||