[PATCH] rust: rust_is_available: support testing with `bash` as `/bin/sh`

Miguel Ojeda <[email protected]>
Newsgroups org.kernel.vger.rust-for-linux,org.kernel.vger.linux-kbuild
Message-ID <[email protected]>
`command -v` behaves differently on `dash` vs. `bash` when faced with
a file without the execute bit.

Thus, for the non-executable `rustc` and `bindgen` tests, support both
possible outputs that the script currently gives.

This makes the test script clean on distributions like Fedora.

Signed-off-by: Miguel Ojeda <[email protected]>
---
Independently, we could add a custom check for the non-exec case in the
actual shell script, but back then it was decided with Kbuild to avoid
overcomplicating it for rare cases (which anyway give an error).

 scripts/rust_is_available_test.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/scripts/rust_is_available_test.py b/scripts/rust_is_available_test.py
index d6d54b7ea42a..752c59d5f55f 100755
--- a/scripts/rust_is_available_test.py
+++ b/scripts/rust_is_available_test.py
@@ -177,7 +177,12 @@ else:

     def test_rustc_nonexecutable(self):
         result = self.run_script(self.Expected.FAILURE, { "RUSTC": self.nonexecutable })
-        self.assertIn(f"Running '{self.nonexecutable}' to check the Rust compiler version failed with", result.stderr)
+        self.assertTrue(
+            # `dash`.
+            f"Running '{self.nonexecutable}' to check the Rust compiler version failed with" in result.stderr or
+            # `bash`.
+            f"Rust compiler '{self.nonexecutable}' could not be found." in result.stderr
+        )

     def test_rustc_unexpected_binary(self):
         result = self.run_script(self.Expected.FAILURE, { "RUSTC": self.unexpected_binary })
@@ -205,7 +210,12 @@ else:

     def test_bindgen_nonexecutable(self):
         result = self.run_script(self.Expected.FAILURE, { "BINDGEN": self.nonexecutable })
-        self.assertIn(f"Running '{self.nonexecutable}' to check the Rust bindings generator version failed with", result.stderr)
+        self.assertTrue(
+            # `dash`.
+            f"Running '{self.nonexecutable}' to check the Rust bindings generator version failed with" in result.stderr or
+            # `bash`.
+            f"Rust bindings generator '{self.nonexecutable}' could not be found." in result.stderr
+        )

     def test_bindgen_unexpected_binary(self):
         result = self.run_script(self.Expected.FAILURE, { "BINDGEN": self.unexpected_binary })

base-commit: 880c43b185ca52239e75bc546cc4f4d9154d0fed
--
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.