[LTP] [PATCH v2 2/2] nfslock01: Allow to pass parameters
Petr Vorel
pvorel@suse.cz
Mon Apr 24 20:46:58 CEST 2023
Parameter for chars in line and number of lines can be made lower to
make debugging faster.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
testcases/network/nfs/nfslock01/nfs_flock.c | 37 +++++++++++--------
.../network/nfs/nfslock01/nfs_flock_dgen.c | 8 ++--
testcases/network/nfs/nfslock01/nfslock01.sh | 20 ++++++----
3 files changed, 37 insertions(+), 28 deletions(-)
diff --git a/testcases/network/nfs/nfslock01/nfs_flock.c b/testcases/network/nfs/nfslock01/nfs_flock.c
index fe345780e..a00a43ceb 100644
--- a/testcases/network/nfs/nfslock01/nfs_flock.c
+++ b/testcases/network/nfs/nfslock01/nfs_flock.c
@@ -13,17 +13,15 @@
#include <stdlib.h>
#include <unistd.h>
-#define BYTES 64
-#define LINES 16384
-
int main(int argc, char **argv)
{
- int i, fd, mac;
+ int i, fd, mac, nchars, nlines;
int offset = 0;
char buf[BUFSIZ];
- if (argc != 3) {
- fprintf(stderr, "Usage: %s <mac num> <file name>\n", argv[0]);
+ if (argc != 5) {
+ fprintf(stderr, "Usage: %s <mac num> <file name> <nchars> <nlines>\n",
+ argv[0]);
exit(2);
}
@@ -34,48 +32,55 @@ int main(int argc, char **argv)
}
mac = atoi(argv[1]);
+ nchars = atoi(argv[3]);
+ nlines = atoi(argv[4]);
+
+ if (nchars > BUFSIZ) {
+ printf("Exceeded the maximum limit of the buffer (%d)\n", BUFSIZ);
+ exit(3);
+ }
/*
* Replace a line of characters by 1's if it is process one
- * else with 0's. Number of charcters in any line are BYTES-1,
+ * else with 0's. Number of charcters in any line are nchars-1,
* the last character being a newline character.
*/
- for (i = 0; i < BYTES - 1; i++) {
+ for (i = 0; i < nchars - 1; i++) {
if (mac == 1)
buf[i] = '1';
else
buf[i] = '0';
}
- buf[BYTES - 1] = '\n';
+ buf[nchars - 1] = '\n';
- for (i = 0; i < LINES; i++) {
+ for (i = 0; i < nlines; i++) {
if (mac == 1) { /* Set the offset to even lines */
if ((i % 2) == 0) {
if (i == 0)
offset = 0;
else
- offset += 2 * BYTES;
+ offset += 2 * nchars;
} else
continue;
} else { /* Set the offset to odd lines */
if ((i % 2) == 1) {
if (i == 1)
- offset = BYTES;
+ offset = nchars;
else
- offset += 2 * BYTES;
+ offset += 2 * nchars;
} else
continue;
}
- if (writeb_lock(fd, offset, SEEK_SET, BYTES) < 0)
+ if (writeb_lock(fd, offset, SEEK_SET, nchars) < 0)
printf("failed in writeb_lock, Errno = %d", errno);
lseek(fd, offset, SEEK_SET);
/* write to the test file */
- write(fd, buf, BYTES);
+ write(fd, buf, nchars);
- if (unb_lock(fd, offset, SEEK_SET, BYTES) < 0)
+ if (unb_lock(fd, offset, SEEK_SET, nchars) < 0)
printf("failed in unb_lock, Errno = %d", errno);
}
exit(0);
diff --git a/testcases/network/nfs/nfslock01/nfs_flock_dgen.c b/testcases/network/nfs/nfslock01/nfs_flock_dgen.c
index 129121d9e..4334e911d 100644
--- a/testcases/network/nfs/nfslock01/nfs_flock_dgen.c
+++ b/testcases/network/nfs/nfslock01/nfs_flock_dgen.c
@@ -16,17 +16,15 @@ int main(int argc, char **argv)
FILE *fp;
if (argc != 5) {
- printf
- ("usage: <nfs_flock_dgen> <file> <char/line> <lines> <ctype>\n");
+ printf("usage: <nfs_flock_dgen> <file> <char/line> <lines> <ctype>\n");
exit(2);
}
fp = fopen(argv[1], "w");
- nchars = atoi(argv[2]);
+ nchars = atoi(argv[2]) - 1;
if (nchars > BUFSIZ) {
- printf("Exceeded the maximum limit of the buffer (%d)\n",
- BUFSIZ);
+ printf("Exceeded the maximum limit of the buffer (%d)\n", BUFSIZ);
exit(3);
}
nlines = atoi(argv[3]);
diff --git a/testcases/network/nfs/nfslock01/nfslock01.sh b/testcases/network/nfs/nfslock01/nfslock01.sh
index fbcc3c00f..34eeb74a1 100755
--- a/testcases/network/nfs/nfslock01/nfslock01.sh
+++ b/testcases/network/nfs/nfslock01/nfslock01.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (c) Linux Test Project, 2002-2022
+# Copyright (c) Linux Test Project, 2002-2023
# Copyright (c) 2016-2018 Oracle and/or its affiliates. All Rights Reserved.
# Copyright (c) International Business Machines Corp., 2001
#
@@ -13,18 +13,24 @@
TST_SETUP="do_setup"
TST_TESTFUNC="do_test"
+NCHARS=${NCHARS:-64}
+NLINES=${NLINES:-16384}
+
do_setup()
{
+ local exp_size
+
nfs_setup
tst_res TINFO "creating test files"
- ROD nfs_flock_dgen flock_data 63 16384 0
- ROD nfs_flock_dgen flock_odata 63 16384 1
+ ROD nfs_flock_dgen flock_data $NCHARS $NLINES 0
+ ROD nfs_flock_dgen flock_odata $NCHARS $NLINES 1
- [ "$(wc -c flock_data | awk '{print $1}')" -ne 1048576 ] && \
+ exp_size=$(( NCHARS * NLINES ))
+ [ "$(wc -c flock_data | awk '{print $1}')" -ne $exp_size ] && \
tst_brk TBROK "could not create 'flock_data'"
- [ "$(wc -c flock_odata | awk '{print $1}')" -ne 1048576 ] && \
+ [ "$(wc -c flock_odata | awk '{print $1}')" -ne $exp_size ] && \
tst_brk TBROK "could not create 'flock_odata'"
}
@@ -36,9 +42,9 @@ do_test()
tst_res TINFO "locking 'flock_idata' file and writing data"
- nfs_flock 0 flock_idata &
+ nfs_flock 0 flock_idata $NCHARS $NLINES &
local pids=$!
- nfs_flock 1 flock_idata &
+ nfs_flock 1 flock_idata $NCHARS $NLINES &
pids="$pids $!"
tst_res TINFO "waiting for pids: $pids"
--
2.40.0
More information about the ltp
mailing list