]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (lslocks) add cases testing HOLDERS column
authorMasatake YAMATO <yamato@redhat.com>
Tue, 21 Nov 2023 19:37:30 +0000 (04:37 +0900)
committerMasatake YAMATO <yamato@redhat.com>
Thu, 23 Nov 2023 13:29:47 +0000 (22:29 +0900)
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
tests/expected/lslocks/lslocks-flock-ex+HOLDERS [new file with mode: 0644]
tests/expected/lslocks/lslocks-flock-sh+HOLDERS [new file with mode: 0644]
tests/expected/lslocks/lslocks-lease-w+HOLDERS [new file with mode: 0644]
tests/expected/lslocks/lslocks-ofd--w+HOLDERS [new file with mode: 0644]
tests/expected/lslocks/lslocks-ofd-r-+HOLDERS [new file with mode: 0644]
tests/expected/lslocks/lslocks-ofd-rw+HOLDERS [new file with mode: 0644]
tests/ts/lslocks/lslocks

diff --git a/tests/expected/lslocks/lslocks-flock-ex+HOLDERS b/tests/expected/lslocks/lslocks-flock-ex+HOLDERS
new file mode 100644 (file)
index 0000000..3a817e2
--- /dev/null
@@ -0,0 +1,2 @@
+test_mkfds FLOCK  WRITE 0 0 1,test_mkfds,17\x0a1,test_mkfds,18
+# flock-ex + COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + --raw --noheadings: 0
diff --git a/tests/expected/lslocks/lslocks-flock-sh+HOLDERS b/tests/expected/lslocks/lslocks-flock-sh+HOLDERS
new file mode 100644 (file)
index 0000000..37996b1
--- /dev/null
@@ -0,0 +1,2 @@
+test_mkfds FLOCK  READ 0 0 1,test_mkfds,17\x0a1,test_mkfds,18
+# flock-sh + COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + --raw --noheadings: 0
diff --git a/tests/expected/lslocks/lslocks-lease-w+HOLDERS b/tests/expected/lslocks/lslocks-lease-w+HOLDERS
new file mode 100644 (file)
index 0000000..8c6ab5d
--- /dev/null
@@ -0,0 +1,2 @@
+test_mkfds LEASE  WRITE 0 0 1,test_mkfds,17\x0a1,test_mkfds,18
+# lease-w + COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + --raw --noheadings: 0
diff --git a/tests/expected/lslocks/lslocks-ofd--w+HOLDERS b/tests/expected/lslocks/lslocks-ofd--w+HOLDERS
new file mode 100644 (file)
index 0000000..4ff9158
--- /dev/null
@@ -0,0 +1,2 @@
+test_mkfds OFDLCK 1B WRITE 0 0 1,test_mkfds,17\x0a1,test_mkfds,18
+# ofd--w + COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + --raw --noheadings: 0
diff --git a/tests/expected/lslocks/lslocks-ofd-r-+HOLDERS b/tests/expected/lslocks/lslocks-ofd-r-+HOLDERS
new file mode 100644 (file)
index 0000000..1abbf44
--- /dev/null
@@ -0,0 +1,2 @@
+test_mkfds OFDLCK 1B READ 0 0 1,test_mkfds,17\x0a1,test_mkfds,18
+# ofd-r- + COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + --raw --noheadings: 0
diff --git a/tests/expected/lslocks/lslocks-ofd-rw+HOLDERS b/tests/expected/lslocks/lslocks-ofd-rw+HOLDERS
new file mode 100644 (file)
index 0000000..a105d32
--- /dev/null
@@ -0,0 +1,3 @@
+test_mkfds OFDLCK 3B READ 0 0 1,test_mkfds,17\x0a1,test_mkfds,18
+test_mkfds OFDLCK 3B WRITE 2 2 1,test_mkfds,17\x0a1,test_mkfds,18
+# ofd-rw + COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + --raw --noheadings: 0
index 57e31d447e953bb0af9a677f467935f028d9b451..280dda3655ed1f97ce0ded5d8fadb866a04d3034 100755 (executable)
@@ -29,6 +29,7 @@ ts_cd "$TS_OUTDIR"
 FILE0=util-linux-lslocks-target-file
 FILE=${FILE0}--$$
 FD=17
+DFD=18
 COLS=COMMAND,TYPE,SIZE,MODE,START,END
 OPTS="--raw --noheadings"
 METHODS=(
@@ -43,6 +44,17 @@ METHODS=(
     lease-w
 )
 
+OFD_METHODS=(
+    flock-sh
+    flock-ex
+    ofd-r-
+    ofd--w
+    ofd-rw
+    lease-w
+)
+
+DFD=18
+COLS_WITH_HOLDERS=COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS
 run_lslocks()
 {
     local m=$1
@@ -62,8 +74,31 @@ run_lslocks()
     wait "${MKFDS_PID}"
 }
 
+run_lslocks_with_co_holders()
+{
+    local m=$1
+
+    {
+       rm -f "${FILE}"
+       coproc MKFDS { "$TS_HELPER_MKFDS" make-regular-file $FD file="$FILE" lock=$m dupfd=$DFD; }
+       if read -r -u "${MKFDS[0]}" PID; then
+           "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o "${COLS_WITH_HOLDERS}" | sed -e "s/${PID},/1,/g"
+           echo "# $m + ${COLS_WITH_HOLDERS} + ${OPTS}": ${PIPESTATUS[0]}
+           echo DONE >&"${MKFDS[1]}"
+       fi
+    } > "$TS_OUTPUT" 2>&1
+
+    wait "${MKFDS_PID}"
+}
+
 for m in "${METHODS[@]}"; do
     ts_init_subtest "$m"
-    run_lslocks "$m"  
+    run_lslocks "$m"
+    ts_finalize_subtest
+done
+
+for m in "${OFD_METHODS[@]}"; do
+    ts_init_subtest "$m+HOLDERS"
+    run_lslocks_with_co_holders "$m"
     ts_finalize_subtest
 done