summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2022-06-06 22:26:03 +0200
committerEugene Syromyatnikov <evgsyr@gmail.com>2022-06-07 19:34:28 +0200
commit4879f2fc5044c0a5d25e5bb45d1b12ee8f95dc33 (patch)
tree13e5a6e66e54547888f19b172e94702c9d0dd883
parentd08ce56c67d285b9e0a99c1e5267fa5eca693a68 (diff)
downloadstrace-4879f2fc5044c0a5d25e5bb45d1b12ee8f95dc33.tar.gz
tests/ioctl_rtc: expand RTC_VL_READ check
Check that RTC_VL_READ argument is indeed decoded as flags and not xval. * tests/ioctl_rtc.c (main): Expand RTC_VL_READ check.
-rw-r--r--tests/ioctl_rtc.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/tests/ioctl_rtc.c b/tests/ioctl_rtc.c
index 2e8af7fb0..076af2f74 100644
--- a/tests/ioctl_rtc.c
+++ b/tests/ioctl_rtc.c
@@ -256,14 +256,27 @@ main(int argc, const char *argv[])
}
}
+ static const struct strval32 vl_vecs[] = {
+ { ARG_STR(0) },
+ { ARG_XLAT_KNOWN(0x10, "RTC_VL_BACKUP_SWITCH") },
+ { ARG_XLAT_KNOWN(0xbeef, "RTC_VL_DATA_INVALID"
+ "|RTC_VL_BACKUP_LOW"
+ "|RTC_VL_BACKUP_EMPTY"
+ "|RTC_VL_ACCURACY_LOW|0xbee0") },
+ { ARG_XLAT_UNKNOWN(0xbadc0de0, "RTC_VL_???") },
+ };
TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, pint);
- *pint = 1U << 4;
- if (do_ioctl_ptr(RTC_VL_READ, pint) < 0) {
- printf("ioctl(-1, RTC_VL_READ, %p) = %s\n", pint, errstr);
- } else {
- printf("ioctl(-1, RTC_VL_READ, [RTC_VL_BACKUP_SWITCH]) = %s\n",
- errstr);
+ for (size_t i = 0; i < ARRAY_SIZE(vl_vecs); i++) {
+ *pint = vl_vecs[i].val;
+
+ if (do_ioctl_ptr(RTC_VL_READ, pint) < 0) {
+ printf("ioctl(-1, RTC_VL_READ, %p) = %s\n",
+ pint, errstr);
+ } else {
+ printf("ioctl(-1, RTC_VL_READ, [%s]) = %s\n",
+ vl_vecs[i].str, errstr);
+ }
}
do_ioctl(_IO(0x70, 0x40), lmagic);