From: Masatake YAMATO Date: Tue, 4 Jul 2023 16:54:54 +0000 (+0900) Subject: test: (mkfds::make-regular-file) add a parameter for writing some bytes X-Git-Tag: v2.40-rc1~345^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=55db70793f2a065b7ad47a2403b2d261dc2725da;p=thirdparty%2Futil-linux.git test: (mkfds::make-regular-file) add a parameter for writing some bytes Signed-off-by: Masatake YAMATO --- diff --git a/tests/helpers/test_mkfds.c b/tests/helpers/test_mkfds.c index 3d7c9a88a2..fe3c35ad4e 100644 --- a/tests/helpers/test_mkfds.c +++ b/tests/helpers/test_mkfds.c @@ -401,6 +401,13 @@ static void *make_w_regular_file(const struct factory *factory, struct fdesc fde struct arg delete = decode_arg("delete", factory->params, argc, argv); bool bDelete = ARG_BOOLEAN(delete); + struct arg write_bytes = decode_arg("write-bytes", factory->params, argc, argv); + int iWrite_bytes = ARG_INTEGER(write_bytes); + + if (iWrite_bytes < 0) + err(EXIT_FAILURE, "write-bytes must be a positive number or zero."); + + free_arg(&write_bytes); free_arg(&delete); free_arg(&file); @@ -432,6 +439,17 @@ static void *make_w_regular_file(const struct factory *factory, struct fdesc fde fname = NULL; } + for (int i = 0; i < iWrite_bytes; i++) { + if (write(fd, "z", 1) != 1) { + int e = errno; + close(fd); + if (fname) + unlink(fname); + errno = e; + err(EXIT_FAILURE, "failed to write"); + } + } + fdescs[0] = (struct fdesc){ .fd = fdescs[0].fd, .close = bDelete? close_fdesc: unlink_and_close_fdesc, @@ -2627,6 +2645,12 @@ static const struct factory factories[] = { .desc = "delete the file just after making it", .defv.boolean = false, }, + { + .name = "write-bytes", + .type = PTYPE_INTEGER, + .desc = "write something (> 0)", + .defv.integer = 0, + }, PARAM_END }, },