* [PATCH] rust: rust_is_available: support testing with `bash` as `/bin/sh`
@ 2026-07-19 13:07 Miguel Ojeda
2026-07-23 13:42 ` Onur Özkan
0 siblings, 1 reply; 2+ messages in thread
From: Miguel Ojeda @ 2026-07-19 13:07 UTC (permalink / raw)
To: Nathan Chancellor, Nicolas Schier, Miguel Ojeda
Cc: linux-kbuild, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
Danilo Krummrich, Daniel Almeida, Tamir Duberstein,
Alexandre Courbot, Onur Özkan, rust-for-linux
`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 <ojeda@kernel.org>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] rust: rust_is_available: support testing with `bash` as `/bin/sh`
2026-07-19 13:07 [PATCH] rust: rust_is_available: support testing with `bash` as `/bin/sh` Miguel Ojeda
@ 2026-07-23 13:42 ` Onur Özkan
0 siblings, 0 replies; 2+ messages in thread
From: Onur Özkan @ 2026-07-23 13:42 UTC (permalink / raw)
To: Miguel Ojeda
Cc: Nathan Chancellor, Nicolas Schier, linux-kbuild, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Alice Ryhl, Trevor Gross, Danilo Krummrich, Daniel Almeida,
Tamir Duberstein, Alexandre Courbot, rust-for-linux,
Onur Özkan
On Sun, 19 Jul 2026 15:07:23 +0200
Miguel Ojeda <ojeda@kernel.org> wrote:
> `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 <ojeda@kernel.org>
> ---
> 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
Nit: You can add some useful failure message, something like "$binary could not
found in the system". The default failure message for assertTrue is something
like "False is not True", which is not helpful. But the failed lines will also
be printed so it's not entirely unclear as well.
With/without that:
Reviewed-by: Onur Özkan <work@onurozkan.dev>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-23 13:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-19 13:07 [PATCH] rust: rust_is_available: support testing with `bash` as `/bin/sh` Miguel Ojeda
2026-07-23 13:42 ` Onur Özkan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox