tests: mockup: use KERNEL_VERSION()
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 22 Jul 2019 09:46:59 +0000 (11:46 +0200)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 22 Jul 2019 09:46:59 +0000 (11:46 +0200)
There's no need to reimplement checking the kernel version. An
appropriate macro - KERNEL_VERSION() - is already provided in
linux/version.h. Use it in libgpiomockup.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
configure.ac
tests/mockup/gpio-mockup.c

index 21706a9b352da4c162435dd9d8f444e646491037..e24b96d8a8491e2346877adde55eb736a0da1dbc 100644 (file)
@@ -70,6 +70,9 @@ AC_DEFUN([FUNC_NOT_FOUND_LIB],
 AC_DEFUN([HEADER_NOT_FOUND_LIB],
        [ERR_NOT_FOUND([$1 header], [the library])])
 
+AC_DEFUN([HEADER_NOT_FOUND_TESTS],
+       [ERR_NOT_FOUND([$1 header], [the test suite])])
+
 # This is always checked (library needs this)
 AC_HEADER_STDC
 AC_FUNC_MALLOC
@@ -121,6 +124,7 @@ if test "x$with_tests" = xtrue
 then
        AC_CHECK_FUNC([qsort], [], [FUNC_NOT_FOUND_TESTS([qsort])])
        AC_CHECK_FUNC([regexec], [], [FUNC_NOT_FOUND_TESTS([regexec])])
+       AC_CHECK_HEADERS([linux/version.h], [], [HEADER_NOT_FOUND_TESTS([linux/version.h])])
 
        PKG_CHECK_MODULES([KMOD], [libkmod >= 18])
        PKG_CHECK_MODULES([UDEV], [libudev >= 215])
index d8a80f78a306fca094afeadbc0412a924c494a40..56920b7d472caf6eda246eea1b5d57dc8d783de7 100644 (file)
@@ -8,6 +8,7 @@
 #include <errno.h>
 #include <libkmod.h>
 #include <libudev.h>
+#include <linux/version.h>
 #include <poll.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include "gpio-mockup.h"
 
 #define EXPORT                 __attribute__((visibility("default")))
-
-static const unsigned int min_kern_major = 5;
-static const unsigned int min_kern_minor = 1;
-static const unsigned int min_kern_release = 0;
+#define MIN_KERNEL_VERSION     KERNEL_VERSION(5, 1, 0)
 
 struct gpio_mockup_chip {
        char *name;
@@ -60,29 +58,12 @@ static bool check_kernel_version(void)
                return false;
        }
 
-       if (major < min_kern_major) {
-               goto bad_version;
-       } else if (major > min_kern_major) {
-               goto good_version;
-       } else {
-               if (minor < min_kern_minor) {
-                       goto bad_version;
-               } else if (minor > min_kern_minor) {
-                       goto good_version;
-               } else {
-                       if (release < min_kern_release)
-                               goto bad_version;
-                       else
-                               goto good_version;
-               }
+       if (KERNEL_VERSION(major, minor, release) < MIN_KERNEL_VERSION) {
+               errno = EOPNOTSUPP;
+               return false;
        }
 
-good_version:
        return true;
-
-bad_version:
-       errno = EOPNOTSUPP;
-       return false;
 }
 
 EXPORT struct gpio_mockup *gpio_mockup_new(void)