git: 0733afdb4dad - main - lockf: Test that lockf does not spin on fd

From: Dag-Erling Smørgrav <des_at_FreeBSD.org>
Date: Sun, 03 May 2026 15:35:35 UTC
The branch main has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=0733afdb4dad58cfe7ad7f5994e26bf148d78199

commit 0733afdb4dad58cfe7ad7f5994e26bf148d78199
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-05-03 15:35:15 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-05-03 15:35:15 +0000

    lockf: Test that lockf does not spin on fd
    
    PR:             294832
    MFC after:      1 week
    Reviewed by:    markj
    Differential Revision:  https://reviews.freebsd.org/D56723
---
 usr.bin/lockf/tests/lockf_test.sh | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/usr.bin/lockf/tests/lockf_test.sh b/usr.bin/lockf/tests/lockf_test.sh
index 823b5673a176..16ee5a03bb9e 100644
--- a/usr.bin/lockf/tests/lockf_test.sh
+++ b/usr.bin/lockf/tests/lockf_test.sh
@@ -177,6 +177,23 @@ fdlock_body()
 	atf_check test "$status2" -eq 0
 }
 
+atf_test_case fdlockspin
+fdlockspin_head()
+{
+	atf_set "descr" "Don't spin when locking a file descriptor"
+}
+fdlockspin_body()
+{
+	# Start background locker and give it time to get settled
+	lockf foo sleep 2 & sleep 1
+	# Start foreground locker in fdlock mode
+	atf_check ktrace -tc lockf -t 3 0 <foo
+	# Background locker quit and foreground locker succeeded
+	atf_check -o save:trace kdump -tc
+	# Check how many times foreground locker called flock()
+	atf_check -o inline:"2\n" egrep -c 'CALL +flock' trace
+}
+
 atf_test_case keep
 keep_body()
 {
@@ -334,6 +351,7 @@ atf_init_test_cases()
 	atf_add_test_case basic
 	atf_add_test_case bubble_error
 	atf_add_test_case fdlock
+	atf_add_test_case fdlockspin
 	atf_add_test_case keep
 	atf_add_test_case needfile
 	atf_add_test_case termchild