TEST: Fix a couple of RHEL checks:

 (1) The maximum description size patch is not yet applied to RHEL-7, so
     that change only applies to RHEL-6, not RHEL-6 and everything after.

 (2) There was a change in error reporting behaviour that got introduced in
     v3.8 upstream and was fixed in v3.13.  RHEL-7 was forked off of
     v3.10.0, so it had the problem - but the fix has been backported, so
     we need to adjust the version check.

Signed-off-by: David Howells <dhowells@redhat.com>
diff --git a/tests/keyctl/timeout/valid/runtest.sh b/tests/keyctl/timeout/valid/runtest.sh
index 06f9fc4..4d772bb 100644
--- a/tests/keyctl/timeout/valid/runtest.sh
+++ b/tests/keyctl/timeout/valid/runtest.sh
@@ -52,7 +52,8 @@
 # check the key has expired
 marker "CHECK NO READ PAYLOAD"
 print_key --fail $keyid
-if kernel_at_or_later_than 3.8 && kernel_older_than 3.13
+if kernel_at_or_later_than 3.8 && kernel_older_than 3.13 &&
+	! rhel7_kernel_at_or_later_than 3.10.0-42.el7
 then
 	expect_error ENOKEY
 else
@@ -106,7 +107,8 @@
 # listing the session keyring should fail
 marker "CHECK NO LIST SESSION KEYRING"
 list_keyring --fail $keyringid
-if kernel_at_or_later_than 3.8 && kernel_older_than 3.13
+if kernel_at_or_later_than 3.8 && kernel_older_than 3.13 &&
+	! rhel7_kernel_at_or_later_than 3.10.0-42.el7
 then
 	expect_error ENOKEY
 else
diff --git a/tests/toolbox.inc.sh b/tests/toolbox.inc.sh
index e1ec033..f2463c5 100644
--- a/tests/toolbox.inc.sh
+++ b/tests/toolbox.inc.sh
@@ -36,7 +36,7 @@
 if kernel_at_or_later_than 3.18
 then
     maxdesc=$string4095
-elif [ $OSDIST = RHEL ] && kernel_at_or_later_than 2.6.32-589.el6
+elif rhel6_kernel_at_or_later_than 2.6.32-589.el6
 then
     maxdesc=$string4095
 else
diff --git a/tests/version.inc.sh b/tests/version.inc.sh
index 3c1b802..3630c5a 100644
--- a/tests/version.inc.sh
+++ b/tests/version.inc.sh
@@ -161,3 +161,39 @@
 {
     ! kernel_older_than $1
 }
+
+###############################################################################
+#
+# Return true if the kernel being tested is a RHEL-6 kernel and is at or later
+# than the given version.
+#
+###############################################################################
+function rhel6_kernel_at_or_later_than ()
+{
+    case $OSDIST-$OSRELEASE in
+	RHEL-6.*)
+	    ! kernel_older_than $1
+	    ;;
+	*)
+	    false
+	    ;;
+	esac
+}
+
+###############################################################################
+#
+# Return true if the kernel being tested is a RHEL-7 kernel and is at or later
+# than the given version.
+#
+###############################################################################
+function rhel7_kernel_at_or_later_than ()
+{
+    case $OSDIST-$OSRELEASE in
+	RHEL-7.*)
+	    ! kernel_older_than $1
+	    ;;
+	*)
+	    false
+	    ;;
+	esac
+}