Update smbtorture in line with SAMBA_2_2
authorAndrew Bartlett <abartlet@samba.org>
Sat, 7 Jul 2001 06:21:32 +0000 (06:21 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 7 Jul 2001 06:21:32 +0000 (06:21 +0000)
Andrew Bartlett

source/torture/torture.c

index fcf48e0560adf0f105523567e6b4e2cef3c1d285..c1eb4371f6f500338bc6495f8935c9b9c722dce1 100644 (file)
@@ -566,10 +566,10 @@ static BOOL run_readwritelarge(int dummy)
        }
 
        if (fsize == sizeof(buf))
-               printf("readwritelarge test succeeded (size = %x)\n", fsize);
+               printf("readwritelarge test succeeded (size = %x)\n", fsize);
        else {
-              printf("readwritelarge test failed (size = %x)\n", fsize);
-              correct = False;
+               printf("readwritelarge test 1 failed (size = %x)\n", fsize);
+               correct = False;
        }
 
        if (!cli_unlink(&cli1, lockfname)) {
@@ -577,11 +577,24 @@ static BOOL run_readwritelarge(int dummy)
                correct = False;
        }
 
+       fnum1 = cli_open(&cli1, lockfname, O_RDWR | O_CREAT | O_EXCL, DENY_NONE);
+       if (fnum1 == -1) {
+               printf("open read/write of %s failed (%s)\n", lockfname, cli_errstr(&cli1));
+               return False;
+       }
+       
+       cli_smbwrite(&cli1, fnum1, buf, 0, sizeof(buf));
+       
+       if (!cli_close(&cli1, fnum1)) {
+               printf("close failed (%s)\n", cli_errstr(&cli1));
+               correct = False;
+       }
+       
        if (!close_connection(&cli1)) {
                correct = False;
        }
        return correct;
-}
+       }
 
 int line_count = 0;
 
@@ -981,11 +994,27 @@ static BOOL run_locktest2(int dummy)
                if (!check_error(&cli, ERRDOS, ERRlock, 0)) return False;
        }
 
+       if (!cli_lock(&cli, fnum1, 100, 4, 0, WRITE_LOCK)) {
+               printf("lock at 100 failed (%s)\n", cli_errstr(&cli));
+       }
        cli_setpid(&cli, 2);
+       if (cli_unlock(&cli, fnum1, 100, 4)) {
+               printf("unlock at 100 succeeded! This is a locking bug\n");
+               correct = False;
+       }
 
-       if (cli_unlock(&cli, fnum1, 0, 8)) {
+       if (cli_unlock(&cli, fnum1, 0, 4)) {
                printf("unlock1 succeeded! This is a locking bug\n");
                correct = False;
+       } else {
+               if (!check_error(&cli, ERRDOS, ERRnotlocked, 0)) return False;
+       }
+
+       if (cli_unlock(&cli, fnum1, 0, 8)) {
+               printf("unlock2 succeeded! This is a locking bug\n");
+               correct = False;
+       } else {
+               if (!check_error(&cli, ERRDOS, ERRnotlocked, 0)) return False;
        }
 
        if (cli_lock(&cli, fnum3, 0, 4, 0, WRITE_LOCK)) {