r21139: make the RAW-MUX test fail if the locking subsystem doesn't trigger
authorAndrew Tridgell <tridge@samba.org>
Mon, 5 Feb 2007 03:04:01 +0000 (03:04 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:44:32 +0000 (14:44 -0500)
early byte range lock retries (ie. PENDING locks in brlock)
(This used to be commit 09237e3acf524f7e772acce2e652ef30b8ba4d65)

source4/torture/raw/mux.c

index f7d8b430df96d84a3f54c191e2656174baed37b1..a5fd0ed3f039ff02a7dba972d1a0d0b064a69154 100644 (file)
@@ -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);