diff mbox series

ptest-cargo.bbclass: add the possibility to define test arguments

Message ID 20230507054435.1689878-1-frederic.martinsons@gmail.com
State Accepted, archived
Commit ea1feece62b0347aa2ebf02509ff2da151d96b61
Headers show
Series ptest-cargo.bbclass: add the possibility to define test arguments | expand

Commit Message

Frédéric Martinsons May 7, 2023, 5:44 a.m. UTC
From: Frederic Martinsons <frederic.martinsons@gmail.com>

It can be useful for user of this class for giving common rust test
arguments (like --shuffle, --format or --test-threads)

To add arguments to test binary , simply define RUST_TEST_ARGS
in your recipe that inherit ptest-cargo, for example:

RUST_TEST_ARGS = "--shuffle"

Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
---
 meta/classes-recipe/ptest-cargo.bbclass | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/meta/classes-recipe/ptest-cargo.bbclass b/meta/classes-recipe/ptest-cargo.bbclass
index f28bc7a826..4ed528445a 100644
--- a/meta/classes-recipe/ptest-cargo.bbclass
+++ b/meta/classes-recipe/ptest-cargo.bbclass
@@ -1,5 +1,8 @@ 
 inherit cargo ptest
 
+RUST_TEST_ARGS ??= ""
+RUST_TEST_ARGS[doc] = "Arguments to give to the test binaries (e.g. --shuffle)"
+
 # I didn't find a cleaner way to share data between compile and install tasks
 CARGO_TEST_BINARIES_FILES ?= "${B}/test_binaries_list"
 
@@ -74,6 +77,7 @@  python do_install_ptest_cargo() {
     pn = d.getVar("PN", True)
     ptest_path = d.getVar("PTEST_PATH", True)
     cargo_test_binaries_file = d.getVar('CARGO_TEST_BINARIES_FILES', True)
+    rust_test_args = d.getVar('RUST_TEST_ARGS') or ""
 
     ptest_dir = os.path.join(dest_dir, ptest_path.lstrip('/'))
     os.makedirs(ptest_dir, exist_ok=True)
@@ -94,12 +98,12 @@  python do_install_ptest_cargo() {
             f.write(f"\necho \"\"\n")
             f.write(f"echo \"## starting to run rust tests ##\"\n")
             for test_path in test_paths:
-                f.write(f"{test_path}\n")
+                f.write(f"{test_path} {rust_test_args}\n")
     else:
         with open(ptest_script, "a") as f:
             f.write("#!/bin/sh\n")
             for test_path in test_paths:
-                f.write(f"{test_path}\n")
+                f.write(f"{test_path} {rust_test_args}\n")
         os.chmod(ptest_script, 0o755)
 
     # this is chown -R root:root ${D}${PTEST_PATH}