From 16d887b3c4058184c826d60a6e9ca823cb5a59ba Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 5 Feb 2007 03:04:01 +0000 Subject: r21139: make the RAW-MUX test fail if the locking subsystem doesn't trigger early byte range lock retries (ie. PENDING locks in brlock) (This used to be commit 09237e3acf524f7e772acce2e652ef30b8ba4d65) --- source4/torture/raw/mux.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source4/torture/raw') diff --git a/source4/torture/raw/mux.c b/source4/torture/raw/mux.c index f7d8b430df..a5fd0ed3f0 100644 --- a/source4/torture/raw/mux.c +++ b/source4/torture/raw/mux.c @@ -206,6 +206,7 @@ static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) BOOL ret = True; struct smbcli_request *req; struct smb_lock_entry lock[1]; + struct timeval t; printf("TESTING MULTIPLEXED LOCK/LOCK/UNLOCK\n"); @@ -238,6 +239,7 @@ static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); printf("this will too, but we'll unlock while waiting\n"); + t = timeval_current(); req = smb_raw_lock_send(cli->tree, &io); printf("unlock the first range\n"); @@ -252,6 +254,12 @@ static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) status = smbcli_request_simple_recv(req); CHECK_STATUS(status, NT_STATUS_OK); + printf("async lock took %.2f msec\n", timeval_elapsed(&t) * 1000); + if (timeval_elapsed(&t) > 0.1) { + printf("failed to trigger early lock retry\n"); + return False; + } + printf("reopening with an exit\n"); smb_raw_exit(cli->session); fnum = smbcli_open(cli->tree, BASEDIR "\\write.dat", O_RDWR | O_CREAT, DENY_NONE); -- cgit