tests: require at least linux v4.11
authorBartosz Golaszewski <bartekgola@gmail.com>
Wed, 15 Mar 2017 13:40:59 +0000 (14:40 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Wed, 19 Apr 2017 16:34:08 +0000 (18:34 +0200)
This is the first linux kernel release that supports GPIO event
injecting over debugfs. Make it a hard requirement for running tests.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
tests/unit/gpiod-unit.c

index ffd42314b0516a3acdf9cd5278b0af5efe1b9514..edb30b947bd41e3ca610402d902581636e1552b4 100644 (file)
@@ -18,6 +18,7 @@
 #include <poll.h>
 #include <libkmod.h>
 #include <libudev.h>
+#include <sys/utsname.h>
 
 #define NORETURN       __attribute__((noreturn))
 #define MALLOC         __attribute__((malloc))
@@ -228,6 +229,28 @@ static void module_cleanup(void)
                kmod_unref(globals.module_ctx);
 }
 
+static void check_kernel(void)
+{
+       int status, version, patchlevel;
+       struct utsname un;
+
+       msg("checking the linux kernel version");
+
+       status = uname(&un);
+       if (status)
+               die_perr("uname");
+
+       status = sscanf(un.release, "%d.%d", &version, &patchlevel);
+       if (status != 2)
+               die("error reading kernel release version");
+
+       if (version < 4 || patchlevel < 11)
+               die("linux kernel version must be at least v4.11 - got v%d.%d",
+                   version, patchlevel);
+
+       msg("kernel release is v%d.%d - ok to run tests", version, patchlevel);
+}
+
 static void check_gpio_mockup(void)
 {
        const char *modpath;
@@ -421,6 +444,7 @@ int main(int argc GU_UNUSED, char **argv GU_UNUSED)
        msg("libgpiod unit-test suite");
        msg("%u tests registered", globals.num_tests);
 
+       check_kernel();
        check_gpio_mockup();
 
        msg("running tests");