diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2022-06-06 22:26:03 +0200 |
---|---|---|
committer | Eugene Syromyatnikov <evgsyr@gmail.com> | 2022-06-07 19:34:28 +0200 |
commit | 4879f2fc5044c0a5d25e5bb45d1b12ee8f95dc33 (patch) | |
tree | 13e5a6e66e54547888f19b172e94702c9d0dd883 | |
parent | d08ce56c67d285b9e0a99c1e5267fa5eca693a68 (diff) | |
download | strace-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.c | 25 |
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); |