* [LTP] [PATCH v1] pwritev201: Add check for RWF_APPEND @ 2023-10-26 14:48 Wei Gao via ltp 2023-10-27 1:05 ` [LTP] [PATCH v2] " Wei Gao via ltp 0 siblings, 1 reply; 3+ messages in thread From: Wei Gao via ltp @ 2023-10-26 14:48 UTC (permalink / raw) To: ltp Signed-off-by: Wei Gao <wegao@suse.com> --- .../kernel/syscalls/pwritev2/pwritev201.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/testcases/kernel/syscalls/pwritev2/pwritev201.c b/testcases/kernel/syscalls/pwritev2/pwritev201.c index eba45b7d3..96572ba73 100644 --- a/testcases/kernel/syscalls/pwritev2/pwritev201.c +++ b/testcases/kernel/syscalls/pwritev2/pwritev201.c @@ -39,13 +39,15 @@ static struct tcase { off_t write_off; ssize_t size; off_t exp_off; + int flag; } tcases[] = { - {0, 1, 0, CHUNK, 0}, - {CHUNK, 2, 0, CHUNK, CHUNK}, - {0, 1, CHUNK / 2, CHUNK, 0}, - {0, 1, -1, CHUNK, CHUNK}, - {0, 2, -1, CHUNK, CHUNK}, - {CHUNK, 1, -1, CHUNK, CHUNK * 2}, + {0, 1, 0, CHUNK, 0, 0}, + {CHUNK, 2, 0, CHUNK, CHUNK, 0}, + {0, 1, CHUNK / 2, CHUNK, 0, 0}, + {0, 1, -1, CHUNK, CHUNK, 0}, + {0, 2, -1, CHUNK, CHUNK, 0}, + {CHUNK, 1, -1, CHUNK, CHUNK * 2, 0}, + {CHUNK, 1, -1, CHUNK, CHUNK * 3, RWF_APPEND}, }; static void verify_pwritev2(unsigned int n) @@ -57,7 +59,7 @@ static void verify_pwritev2(unsigned int n) SAFE_PWRITE(1, fd, initbuf, sizeof(initbuf), 0); SAFE_LSEEK(fd, tc->seek_off, SEEK_SET); - TEST(pwritev2(fd, wr_iovec, tc->count, tc->write_off, 0)); + TEST(pwritev2(fd, wr_iovec, tc->count, tc->write_off, tc->flag)); if (TST_RET < 0) { tst_res(TFAIL | TTERRNO, "pwritev2() failed"); return; @@ -78,6 +80,8 @@ static void verify_pwritev2(unsigned int n) if (tc->write_off != -1) SAFE_PREAD(1, fd, preadbuf, tc->size, tc->write_off); + else if (tc->flag == RWF_APPEND) + SAFE_PREAD(1, fd, preadbuf, tc->size, sizeof(initbuf)); else SAFE_PREAD(1, fd, preadbuf, tc->size, tc->seek_off); -- 2.35.3 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [LTP] [PATCH v2] pwritev201: Add check for RWF_APPEND 2023-10-26 14:48 [LTP] [PATCH v1] pwritev201: Add check for RWF_APPEND Wei Gao via ltp @ 2023-10-27 1:05 ` Wei Gao via ltp 2024-02-06 12:38 ` Petr Vorel 0 siblings, 1 reply; 3+ messages in thread From: Wei Gao via ltp @ 2023-10-27 1:05 UTC (permalink / raw) To: ltp Signed-off-by: Wei Gao <wegao@suse.com> --- .../kernel/syscalls/pwritev2/pwritev201.c | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/testcases/kernel/syscalls/pwritev2/pwritev201.c b/testcases/kernel/syscalls/pwritev2/pwritev201.c index eba45b7d3..1494e2925 100644 --- a/testcases/kernel/syscalls/pwritev2/pwritev201.c +++ b/testcases/kernel/syscalls/pwritev2/pwritev201.c @@ -39,13 +39,15 @@ static struct tcase { off_t write_off; ssize_t size; off_t exp_off; + int flag; } tcases[] = { - {0, 1, 0, CHUNK, 0}, - {CHUNK, 2, 0, CHUNK, CHUNK}, - {0, 1, CHUNK / 2, CHUNK, 0}, - {0, 1, -1, CHUNK, CHUNK}, - {0, 2, -1, CHUNK, CHUNK}, - {CHUNK, 1, -1, CHUNK, CHUNK * 2}, + {0, 1, 0, CHUNK, 0, 0}, + {CHUNK, 2, 0, CHUNK, CHUNK, 0}, + {0, 1, CHUNK / 2, CHUNK, 0, 0}, + {0, 1, -1, CHUNK, CHUNK, 0}, + {0, 2, -1, CHUNK, CHUNK, 0}, + {CHUNK, 1, -1, CHUNK, CHUNK * 2, 0}, + {CHUNK, 1, -1, CHUNK, CHUNK * 3, RWF_APPEND}, }; static void verify_pwritev2(unsigned int n) @@ -57,7 +59,7 @@ static void verify_pwritev2(unsigned int n) SAFE_PWRITE(1, fd, initbuf, sizeof(initbuf), 0); SAFE_LSEEK(fd, tc->seek_off, SEEK_SET); - TEST(pwritev2(fd, wr_iovec, tc->count, tc->write_off, 0)); + TEST(pwritev2(fd, wr_iovec, tc->count, tc->write_off, tc->flag)); if (TST_RET < 0) { tst_res(TFAIL | TTERRNO, "pwritev2() failed"); return; @@ -76,7 +78,9 @@ static void verify_pwritev2(unsigned int n) memset(preadbuf, 0, CHUNK); - if (tc->write_off != -1) + if (tc->flag == RWF_APPEND) + SAFE_PREAD(1, fd, preadbuf, tc->size, sizeof(initbuf)); + else if (tc->write_off != -1) SAFE_PREAD(1, fd, preadbuf, tc->size, tc->write_off); else SAFE_PREAD(1, fd, preadbuf, tc->size, tc->seek_off); -- 2.35.3 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH v2] pwritev201: Add check for RWF_APPEND 2023-10-27 1:05 ` [LTP] [PATCH v2] " Wei Gao via ltp @ 2024-02-06 12:38 ` Petr Vorel 0 siblings, 0 replies; 3+ messages in thread From: Petr Vorel @ 2024-02-06 12:38 UTC (permalink / raw) To: Wei Gao; +Cc: ltp Hi Wei, according to man readv(2) RWF_APPEND was added in kernel 4.16 (to <linux/fs.h>, thus this fails openSUSE Leap 42.2 [1], we would need to add this to LAPI include/lapi/fs.h (as a separate patch) and use it in the test. It also fails for the same reason on MUSL, which does not include <linux/fs.h>, I suppose adding <linux/fs.h> to the test would fix it on MUSL, which would be solved by previous change (because include/lapi/fs.h already includes <linux/fs.h>). [1] https://github.com/pevik/ltp/actions/runs/7799206926/job/21269505359 [2] https://github.com/pevik/ltp/actions/runs/7799206926/job/21269504848 > Signed-off-by: Wei Gao <wegao@suse.com> > --- > .../kernel/syscalls/pwritev2/pwritev201.c | 20 +++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > diff --git a/testcases/kernel/syscalls/pwritev2/pwritev201.c b/testcases/kernel/syscalls/pwritev2/pwritev201.c > index eba45b7d3..1494e2925 100644 > --- a/testcases/kernel/syscalls/pwritev2/pwritev201.c > +++ b/testcases/kernel/syscalls/pwritev2/pwritev201.c > @@ -39,13 +39,15 @@ static struct tcase { > off_t write_off; > ssize_t size; > off_t exp_off; > + int flag; > } tcases[] = { > - {0, 1, 0, CHUNK, 0}, > - {CHUNK, 2, 0, CHUNK, CHUNK}, > - {0, 1, CHUNK / 2, CHUNK, 0}, > - {0, 1, -1, CHUNK, CHUNK}, > - {0, 2, -1, CHUNK, CHUNK}, > - {CHUNK, 1, -1, CHUNK, CHUNK * 2}, > + {0, 1, 0, CHUNK, 0, 0}, > + {CHUNK, 2, 0, CHUNK, CHUNK, 0}, > + {0, 1, CHUNK / 2, CHUNK, 0, 0}, > + {0, 1, -1, CHUNK, CHUNK, 0}, > + {0, 2, -1, CHUNK, CHUNK, 0}, > + {CHUNK, 1, -1, CHUNK, CHUNK * 2, 0}, > + {CHUNK, 1, -1, CHUNK, CHUNK * 3, RWF_APPEND}, I wonder how hard would be to cover more flags (man mentions 4 other flags). But on a first look only RWF_APPEND looks to be easy to be added (if complicated, it's probably better to have a separate test for them). Also, while at it, maybe: TST_EXP_FD_SILENT(pwritev2(fd, wr_iovec, tc->count, tc->write_off, 0)); if (!TST_PASS) return; instead of: TEST(pwritev2(fd, wr_iovec, tc->count - 1, tc->write_off, 0)); if (TST_RET < 0) { tst_res(TFAIL | TTERRNO, "pwritev2() failed"); return; } Kind regards, Petr > }; > static void verify_pwritev2(unsigned int n) > @@ -57,7 +59,7 @@ static void verify_pwritev2(unsigned int n) > SAFE_PWRITE(1, fd, initbuf, sizeof(initbuf), 0); > SAFE_LSEEK(fd, tc->seek_off, SEEK_SET); > - TEST(pwritev2(fd, wr_iovec, tc->count, tc->write_off, 0)); > + TEST(pwritev2(fd, wr_iovec, tc->count, tc->write_off, tc->flag)); > if (TST_RET < 0) { > tst_res(TFAIL | TTERRNO, "pwritev2() failed"); > return; > @@ -76,7 +78,9 @@ static void verify_pwritev2(unsigned int n) > memset(preadbuf, 0, CHUNK); > - if (tc->write_off != -1) > + if (tc->flag == RWF_APPEND) > + SAFE_PREAD(1, fd, preadbuf, tc->size, sizeof(initbuf)); > + else if (tc->write_off != -1) > SAFE_PREAD(1, fd, preadbuf, tc->size, tc->write_off); > else > SAFE_PREAD(1, fd, preadbuf, tc->size, tc->seek_off); -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-02-06 12:38 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-10-26 14:48 [LTP] [PATCH v1] pwritev201: Add check for RWF_APPEND Wei Gao via ltp 2023-10-27 1:05 ` [LTP] [PATCH v2] " Wei Gao via ltp 2024-02-06 12:38 ` Petr Vorel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox