On Tue, Jan 19, 2021 at 1:31 PM Kent Gibson <warthog618@xxxxxxxxx> wrote: > > Initially I just wanted to port the selftests to the latest GPIO uAPI, > but on finding that, due to dependency issues, the selftests are not built > for the buildroot environments that I do most of my GPIO testing in, I > decided to take a closer look. > > The first patch is essentially a rewrite of the exising test suite. > It uses a simplified abstraction of the uAPI interfaces to allow a common > test suite to test the gpio-mockup using either of the uAPI interfaces. > The simplified cdev interface is implemented in gpio-mockup.sh, with the > actual driving of the uAPI implemented in gpio-mockup-cdev.c. > The simplified sysfs interface replaces gpio-mockup-sysfs.sh and is > loaded over the cdev implementation when selected. > > The new tests should also be simpler to extend to cover new mockup > interfaces, such as the one Bart has been working on. > > I have dropped support for testing modules other than gpio-mockup from > the command line options, as the tests are very gpio-mockup specific so > I didn't see any calling for it. > > I have also tried to emphasise in the test output that the tests are > covering the gpio-mockup itself. They do perform some implicit testing > of gpiolib and the uAPI interfaces, and so can be useful as smoke tests > for those, but their primary focus is the gpio-mockup. > > Patches 2 through 5 do some cleaning up that is now possible with the > new implementation, including enabling building in buildroot environments. > Patch 4 doesn't strictly clean up all the old gpio references that it > could - the gpio was the only Level 1 test, so the Level 1 tests could > potentially be removed, but I was unsure if there may be other > implications to removing a whole test level, or that it may be useful > as a placeholder in case other static LDLIBS tests are added in > the future?? > > Patch 6 finally gets around to porting the tests to the latest GPIO uAPI. > > And Patch 7 updates the config to set the CONFIG_GPIO_CDEV option that > was added in v5.10. > > Cheers, > Kent. > > Changes v2 -> v3: > - remove 'commit' from Fixes tag in patch 1. > - rebase on Bart's gpio/for-next > > Changes v1 -> v2 (all in patch 1 and gpio-mockup.sh unless stated > otherwise): > - reorder includes in gpio-mockup-cdev.c > - a multitude of improvements to gpio-mockup.sh and gpio-mockup-sysfs.sh > based on Andy's review comments > - improved cleanup to ensure all child processes are killed on exit > - added race condition prevention or mitigation including the wait in > release_line, the retries in assert_mock, the assert_mock in set_mock, > and the sleep in set_line > > Kent Gibson (7): > selftests: gpio: rework and simplify test implementation > selftests: gpio: remove obsolete gpio-mockup-chardev.c > selftests: remove obsolete build restriction for gpio > selftests: remove obsolete gpio references from kselftest_deps.sh > tools: gpio: remove uAPI v1 code no longer used by selftests > selftests: gpio: port to GPIO uAPI v2 > selftests: gpio: add CONFIG_GPIO_CDEV to config > > tools/gpio/gpio-utils.c | 89 ---- > tools/gpio/gpio-utils.h | 6 - > tools/testing/selftests/Makefile | 9 - > tools/testing/selftests/gpio/Makefile | 26 +- > tools/testing/selftests/gpio/config | 1 + > .../testing/selftests/gpio/gpio-mockup-cdev.c | 198 +++++++ > .../selftests/gpio/gpio-mockup-chardev.c | 323 ------------ > .../selftests/gpio/gpio-mockup-sysfs.sh | 168 ++---- > tools/testing/selftests/gpio/gpio-mockup.sh | 497 ++++++++++++------ > tools/testing/selftests/kselftest_deps.sh | 4 +- > 10 files changed, 603 insertions(+), 718 deletions(-) > create mode 100644 tools/testing/selftests/gpio/gpio-mockup-cdev.c > delete mode 100644 tools/testing/selftests/gpio/gpio-mockup-chardev.c > > > base-commit: 64e6066e16b8c562983dd9d33e604c0001ae0fc7 > -- > 2.30.0 > Series applied, thanks! Bartosz