selftests/gpio: gpio-sim.sh: BUG: test FAILED due to recent change in sh source

Message ID fe030b8e-0573-93de-88ae-38ee48d6c89f@alu.unizg.hr
State New
Headers
Series selftests/gpio: gpio-sim.sh: BUG: test FAILED due to recent change in sh source |

Commit Message

Mirsad Todorovac Feb. 27, 2023, 5:51 p.m. UTC
  Hi,

The gpio-sim.sh test appears to FAIL in a wrong way due to missing initialisation
of shell variables:

$ sudo gpio-sim.sh
.
.
.
4. Simulated GPIO chips are functional
4.1. Values can be read from sysfs
4.2. Bias settings work correctly
cat: /sys/devices/platform/gpio-sim.0/gpiochip18/sim_gpio0/value: No such file or directory
./gpio-sim.sh: line 393: test: =: unary operator expected
bias setting does not work
GPIO gpio-sim test FAIL
$

This patch fixed the issue:


... after which the test passed:

4. Simulated GPIO chips are functional
4.1. Values can be read from sysfs
4.2. Bias settings work correctly
GPIO gpio-sim test PASS

Which I believe proves that the bug was in the script and not in the gpio-sim driver.
Or I am doing something very wrong, but I got the above error on AlmaLinux 8.7
on my Lenovo desktop box with the 6.2+ latest pull Linux kernel:

[marvin@pc-mtodorov linux_torvalds]$ uname -rms
Linux 6.2.0-mglru-kmlk-andy-09238-gd2980d8d8265 x86_64

Regards,
Mirsad
  

Comments

Andy Shevchenko April 11, 2023, 1:37 p.m. UTC | #1
On Mon, Feb 27, 2023 at 06:51:09PM +0100, Mirsad Todorovac wrote:
> Hi,
> 
> The gpio-sim.sh test appears to FAIL in a wrong way due to missing initialisation
> of shell variables:
> 
> $ sudo gpio-sim.sh
> .
> .
> .
> 4. Simulated GPIO chips are functional
> 4.1. Values can be read from sysfs
> 4.2. Bias settings work correctly
> cat: /sys/devices/platform/gpio-sim.0/gpiochip18/sim_gpio0/value: No such file or directory
> ./gpio-sim.sh: line 393: test: =: unary operator expected
> bias setting does not work
> GPIO gpio-sim test FAIL
> $
> 
> This patch fixed the issue:
> 
> diff --git a/tools/testing/selftests/gpio/gpio-sim.sh b/tools/testing/selftests/gpio/gpio-sim.sh
> index 9f539d454ee4..fa2ce2b9dd5f 100755
> --- a/tools/testing/selftests/gpio/gpio-sim.sh
> +++ b/tools/testing/selftests/gpio/gpio-sim.sh
> @@ -389,6 +389,9 @@ create_chip chip
>  create_bank chip bank
>  set_num_lines chip bank 8
>  enable_chip chip
> +DEVNAME=`configfs_dev_name chip`
> +CHIPNAME=`configfs_chip_name chip bank`
> +SYSFS_PATH="/sys/devices/platform/$DEVNAME/$CHIPNAME/sim_gpio0/value"
>  $BASE_DIR/gpio-mockup-cdev -b pull-up /dev/`configfs_chip_name chip bank` 0
>  test `cat $SYSFS_PATH` = "1" || fail "bias setting does not work"
>  remove_chip chip
> 
> ... after which the test passed:
> 
> 4. Simulated GPIO chips are functional
> 4.1. Values can be read from sysfs
> 4.2. Bias settings work correctly
> GPIO gpio-sim test PASS
> 
> Which I believe proves that the bug was in the script and not in the gpio-sim driver.

I agree with the analysis. Bart, seems to me that it might be the case, but
I want to amend the fix a bit.
  

Patch

diff --git a/tools/testing/selftests/gpio/gpio-sim.sh b/tools/testing/selftests/gpio/gpio-sim.sh
index 9f539d454ee4..fa2ce2b9dd5f 100755
--- a/tools/testing/selftests/gpio/gpio-sim.sh
+++ b/tools/testing/selftests/gpio/gpio-sim.sh
@@ -389,6 +389,9 @@  create_chip chip
  create_bank chip bank
  set_num_lines chip bank 8
  enable_chip chip
+DEVNAME=`configfs_dev_name chip`
+CHIPNAME=`configfs_chip_name chip bank`
+SYSFS_PATH="/sys/devices/platform/$DEVNAME/$CHIPNAME/sim_gpio0/value"
  $BASE_DIR/gpio-mockup-cdev -b pull-up /dev/`configfs_chip_name chip bank` 0
  test `cat $SYSFS_PATH` = "1" || fail "bias setting does not work"
  remove_chip chip