diff options
Diffstat (limited to 'source4/torture/raw')
-rw-r--r-- | source4/torture/raw/lock.c | 402 |
1 files changed, 168 insertions, 234 deletions
diff --git a/source4/torture/raw/lock.c b/source4/torture/raw/lock.c index 7e3ac29809..f756622f8f 100644 --- a/source4/torture/raw/lock.c +++ b/source4/torture/raw/lock.c @@ -32,25 +32,28 @@ #define CHECK_STATUS(status, correct) do { \ if (!NT_STATUS_EQUAL(status, correct)) { \ - printf("(%s) Incorrect status %s - should be %s\n", \ - __location__, nt_errstr(status), nt_errstr(correct)); \ + torture_result(tctx, TORTURE_FAIL, \ + "(%s) Incorrect status %s - should be %s\n", \ + __location__, nt_errstr(status), nt_errstr(correct)); \ ret = false; \ goto done; \ }} while (0) #define CHECK_STATUS_CONT(status, correct) do { \ if (!NT_STATUS_EQUAL(status, correct)) { \ - printf("(%s) Incorrect status %s - should be %s\n", \ - __location__, nt_errstr(status), nt_errstr(correct)); \ + torture_result(tctx, TORTURE_FAIL, \ + "(%s) Incorrect status %s - should be %s\n", \ + __location__, nt_errstr(status), nt_errstr(correct)); \ ret = false; \ }} while (0) #define CHECK_STATUS_OR(status, correct1, correct2) do { \ if ((!NT_STATUS_EQUAL(status, correct1)) && \ (!NT_STATUS_EQUAL(status, correct2))) { \ - printf("(%s) Incorrect status %s - should be %s or %s\n", \ - __location__, nt_errstr(status), nt_errstr(correct1), \ - nt_errstr(correct2)); \ + torture_result(tctx, TORTURE_FAIL, \ + "(%s) Incorrect status %s - should be %s or %s\n", \ + __location__, nt_errstr(status), nt_errstr(correct1), \ + nt_errstr(correct2)); \ ret = false; \ goto done; \ }} while (0) @@ -58,9 +61,10 @@ #define CHECK_STATUS_OR_CONT(status, correct1, correct2) do { \ if ((!NT_STATUS_EQUAL(status, correct1)) && \ (!NT_STATUS_EQUAL(status, correct2))) { \ - printf("(%s) Incorrect status %s - should be %s or %s\n", \ - __location__, nt_errstr(status), nt_errstr(correct1), \ - nt_errstr(correct2)); \ + torture_result(tctx, TORTURE_FAIL, \ + "(%s) Incorrect status %s - should be %s or %s\n", \ + __location__, nt_errstr(status), nt_errstr(correct1), \ + nt_errstr(correct2)); \ ret = false; \ }} while (0) #define BASEDIR "\\testlock" @@ -82,17 +86,15 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli) return false; } - printf("Testing RAW_LOCK_LOCK\n"); + torture_comment(tctx, "Testing RAW_LOCK_LOCK\n"); io.generic.level = RAW_LOCK_LOCK; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); - printf("Trying 0/0 lock\n"); + torture_comment(tctx, "Trying 0/0 lock\n"); io.lock.level = RAW_LOCK_LOCK; io.lock.in.file.fnum = fnum; io.lock.in.count = 0; @@ -107,7 +109,7 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_OK); - printf("Trying 0/1 lock\n"); + torture_comment(tctx, "Trying 0/1 lock\n"); io.lock.level = RAW_LOCK_LOCK; io.lock.in.file.fnum = fnum; io.lock.in.count = 1; @@ -125,7 +127,7 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying 0xEEFFFFFF lock\n"); + torture_comment(tctx, "Trying 0xEEFFFFFF lock\n"); io.lock.level = RAW_LOCK_LOCK; io.lock.in.file.fnum = fnum; io.lock.in.count = 4000; @@ -143,7 +145,7 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying 0xEF000000 lock\n"); + torture_comment(tctx, "Trying 0xEF000000 lock\n"); io.lock.level = RAW_LOCK_LOCK; io.lock.in.file.fnum = fnum; io.lock.in.count = 4000; @@ -161,7 +163,7 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying max lock\n"); + torture_comment(tctx, "Trying max lock\n"); io.lock.level = RAW_LOCK_LOCK; io.lock.in.file.fnum = fnum; io.lock.in.count = 4000; @@ -179,7 +181,7 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying wrong pid unlock\n"); + torture_comment(tctx, "Trying wrong pid unlock\n"); io.lock.level = RAW_LOCK_LOCK; io.lock.in.file.fnum = fnum; io.lock.in.count = 4002; @@ -218,15 +220,13 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) return false; } - printf("Testing RAW_LOCK_LOCKX\n"); + torture_comment(tctx, "Testing RAW_LOCK_LOCKX\n"); io.generic.level = RAW_LOCK_LOCKX; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; @@ -242,7 +242,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) CHECK_STATUS(status, NT_STATUS_OK); - printf("Trying 0xEEFFFFFF lock\n"); + torture_comment(tctx, "Trying 0xEEFFFFFF lock\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 4000; @@ -260,7 +260,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying 0xEF000000 lock\n"); + torture_comment(tctx, "Trying 0xEF000000 lock\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 4000; @@ -278,7 +278,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying zero lock\n"); + torture_comment(tctx, "Trying zero lock\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 0; @@ -296,7 +296,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying max lock\n"); + torture_comment(tctx, "Trying max lock\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 0; @@ -314,7 +314,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying 2^63\n"); + torture_comment(tctx, "Trying 2^63\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 1; @@ -333,7 +333,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying 2^63 - 1\n"); + torture_comment(tctx, "Trying 2^63 - 1\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 1; @@ -353,7 +353,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - printf("Trying max lock 2\n"); + torture_comment(tctx, "Trying max lock 2\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; lock[0].count = 1; @@ -408,20 +408,20 @@ static bool test_pidhigh(struct torture_context *tctx, return false; } - printf("Testing high pid\n"); + torture_comment(tctx, "Testing high pid\n"); io.generic.level = RAW_LOCK_LOCKX; cli->session->pid = 1; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); if (smbcli_write(cli->tree, fnum, 0, &c, 0, 1) != 1) { - printf("Failed to write 1 byte - %s\n", smbcli_errstr(cli->tree)); + torture_result(tctx, TORTURE_FAIL, + "Failed to write 1 byte - %s\n", + smbcli_errstr(cli->tree)); ret = false; goto done; } @@ -440,7 +440,9 @@ static bool test_pidhigh(struct torture_context *tctx, CHECK_STATUS(status, NT_STATUS_OK); if (smbcli_read(cli->tree, fnum, &c, 0, 1) != 1) { - printf("Failed to read 1 byte - %s\n", smbcli_errstr(cli->tree)); + torture_result(tctx, TORTURE_FAIL, + "Failed to read 1 byte - %s\n", + smbcli_errstr(cli->tree)); ret = false; goto done; } @@ -448,7 +450,8 @@ static bool test_pidhigh(struct torture_context *tctx, cli->session->pid = 2; if (smbcli_read(cli->tree, fnum, &c, 0, 1) == 1) { - printf("pid is incorrect handled for read with lock!\n"); + torture_result(tctx, TORTURE_FAIL, + "pid is incorrect handled for read with lock!\n"); ret = false; goto done; } @@ -456,10 +459,11 @@ static bool test_pidhigh(struct torture_context *tctx, cli->session->pid = 0x10001; if (smbcli_read(cli->tree, fnum, &c, 0, 1) != 1) { - printf("High pid is used on this server!\n"); + torture_result(tctx, TORTURE_FAIL, + "High pid is used on this server!\n"); ret = false; } else { - printf("High pid is not used on this server (correct)\n"); + torture_warning(tctx, "High pid is not used on this server (correct)\n"); } done: @@ -497,15 +501,13 @@ static bool test_async(struct torture_context *tctx, lp_smbcli_session_options(tctx->lp_ctx, &options); - printf("Testing LOCKING_ANDX_CANCEL_LOCK\n"); + torture_comment(tctx, "Testing LOCKING_ANDX_CANCEL_LOCK\n"); io.generic.level = RAW_LOCK_LOCKX; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; @@ -522,16 +524,13 @@ static bool test_async(struct torture_context *tctx, t = time(NULL); - printf("testing cancel by CANCEL_LOCK\n"); + torture_comment(tctx, "testing cancel by CANCEL_LOCK\n"); /* setup a timed lock */ io.lockx.in.timeout = 10000; req = smb_raw_lock_send(cli->tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); /* cancel the wrong range */ lock[0].offset = 0; @@ -558,13 +557,10 @@ static bool test_async(struct torture_context *tctx, status = smbcli_request_simple_recv(req); CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); - if (time(NULL) > t+2) { - printf("lock cancel was not immediate (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) > t+2), talloc_asprintf(tctx, + "lock cancel was not immediate (%s)\n", __location__)); - printf("testing cancel by unlock\n"); + torture_comment(tctx, "testing cancel by unlock\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -574,11 +570,8 @@ static bool test_async(struct torture_context *tctx, io.lockx.in.timeout = 5000; req = smb_raw_lock_send(cli->tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); io.lockx.in.ulock_cnt = 1; io.lockx.in.lock_cnt = 0; @@ -589,14 +582,11 @@ static bool test_async(struct torture_context *tctx, status = smbcli_request_simple_recv(req); CHECK_STATUS(status, NT_STATUS_OK); - if (time(NULL) > t+2) { - printf("lock cancel by unlock was not immediate (%s) - took %d secs\n", - __location__, (int)(time(NULL)-t)); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) > t+2), talloc_asprintf(tctx, + "lock cancel by unlock was not immediate (%s) - took %d secs\n", + __location__, (int)(time(NULL)-t))); - printf("testing cancel by close\n"); + torture_comment(tctx, "testing cancel by close\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -607,11 +597,8 @@ static bool test_async(struct torture_context *tctx, t = time(NULL); io.lockx.in.timeout = 10000; req = smb_raw_lock_send(cli->tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); status = smbcli_close(cli->tree, fnum); CHECK_STATUS(status, NT_STATUS_OK); @@ -619,13 +606,10 @@ static bool test_async(struct torture_context *tctx, status = smbcli_request_simple_recv(req); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - if (time(NULL) > t+2) { - printf("lock cancel by close was not immediate (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) > t+2), talloc_asprintf(tctx, + "lock cancel by close was not immediate (%s)\n", __location__)); - printf("create a new sessions\n"); + torture_comment(tctx, "create a new sessions\n"); session = smbcli_session_init(cli->transport, tctx, false, options); setup.in.sesskey = cli->transport->negotiate.sesskey; setup.in.capabilities = cli->transport->negotiate.capabilities; @@ -636,7 +620,7 @@ static bool test_async(struct torture_context *tctx, CHECK_STATUS(status, NT_STATUS_OK); session->vuid = setup.out.vuid; - printf("create new tree context\n"); + torture_comment(tctx, "create new tree context\n"); share = torture_setting_string(tctx, "share", NULL); host = torture_setting_string(tctx, "host", NULL); tree = smbcli_tree_init(session, tctx, false); @@ -649,14 +633,13 @@ static bool test_async(struct torture_context *tctx, CHECK_STATUS(status, NT_STATUS_OK); tree->tid = tcon.tconx.out.tid; - printf("testing cancel by exit\n"); + torture_comment(tctx, "testing cancel by exit\n"); fname = BASEDIR "\\test_exit.txt"; fnum = smbcli_open(tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to reopen %s - %s\n", + fname, smbcli_errstr(tree))); + io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -680,11 +663,8 @@ static bool test_async(struct torture_context *tctx, io.lockx.in.timeout = 10000; t = time(NULL); req = smb_raw_lock_send(tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); status = smb_raw_exit(session); CHECK_STATUS(status, NT_STATUS_OK); @@ -692,20 +672,16 @@ static bool test_async(struct torture_context *tctx, status = smbcli_request_simple_recv(req); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - if (time(NULL) > t+2) { - printf("lock cancel by exit was not immediate (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) > t+2), talloc_asprintf(tctx, + "lock cancel by exit was not immediate (%s)\n", __location__)); - printf("testing cancel by ulogoff\n"); + torture_comment(tctx, "testing cancel by ulogoff\n"); fname = BASEDIR "\\test_ulogoff.txt"; fnum = smbcli_open(tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to reopen %s - %s\n", + fname, smbcli_errstr(tree))); + io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -729,18 +705,16 @@ static bool test_async(struct torture_context *tctx, io.lockx.in.timeout = 10000; t = time(NULL); req = smb_raw_lock_send(tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); status = smb_raw_ulogoff(session); CHECK_STATUS(status, NT_STATUS_OK); status = smbcli_request_simple_recv(req); if (NT_STATUS_EQUAL(NT_STATUS_FILE_LOCK_CONFLICT, status)) { - printf("lock not canceled by ulogoff - %s (ignored because of vfs_vifs fails it)\n", + torture_result(tctx, TORTURE_FAIL, + "lock not canceled by ulogoff - %s (ignored because of vfs_vifs fails it)\n", nt_errstr(status)); smb_tree_disconnect(tree); smb_raw_exit(session); @@ -748,22 +722,18 @@ static bool test_async(struct torture_context *tctx, } CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - if (time(NULL) > t+2) { - printf("lock cancel by ulogoff was not immediate (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) > t+2), talloc_asprintf(tctx, + "lock cancel by ulogoff was not immediate (%s)\n", __location__)); - printf("testing cancel by tdis\n"); + torture_comment(tctx, "testing cancel by tdis\n"); tree->session = cli->session; fname = BASEDIR "\\test_tdis.txt"; fnum = smbcli_open(tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to reopen %s - %s\n", + fname, smbcli_errstr(tree))); + io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -783,11 +753,8 @@ static bool test_async(struct torture_context *tctx, io.lockx.in.timeout = 10000; t = time(NULL); req = smb_raw_lock_send(tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); status = smb_tree_disconnect(tree); CHECK_STATUS(status, NT_STATUS_OK); @@ -795,11 +762,8 @@ static bool test_async(struct torture_context *tctx, status = smbcli_request_simple_recv(req); CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED); - if (time(NULL) > t+2) { - printf("lock cancel by tdis was not immediate (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) > t+2), talloc_asprintf(tctx, + "lock cancel by tdis was not immediate (%s)\n", __location__)); done: smb_raw_exit(cli->session); @@ -828,9 +792,9 @@ static bool test_errorcode(struct torture_context *tctx, return false; } - printf("Testing LOCK_NOT_GRANTED vs. FILE_LOCK_CONFLICT\n"); + torture_comment(tctx, "Testing LOCK_NOT_GRANTED vs. FILE_LOCK_CONFLICT\n"); - printf("testing with timeout = 0\n"); + torture_comment(tctx, "testing with timeout = 0\n"); fname = BASEDIR "\\test0.txt"; t = 0; @@ -1126,7 +1090,7 @@ next_run: /* end of the loop */ if (t == 0) { smb_raw_exit(cli->session); - printf("testing with timeout > 0 (=1)\n"); + torture_comment(tctx, "testing with timeout > 0 (=1)\n"); fname = BASEDIR "\\test1.txt"; t = 1; goto next_run; @@ -1138,14 +1102,13 @@ next_run: * to the client (after the timeout went by) */ smb_raw_exit(cli->session); - printf("testing a conflict while a lock is pending\n"); + torture_comment(tctx, "testing a conflict while a lock is pending\n"); fname = BASEDIR "\\test2.txt"; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to reopen %s - %s\n", + fname, smbcli_errstr(cli->tree))); + io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -1162,11 +1125,8 @@ next_run: start = time(NULL); io.lockx.in.timeout = 1000; req = smb_raw_lock_send(cli->tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); io.lockx.in.timeout = 0; lock[0].offset = 105; @@ -1180,20 +1140,16 @@ next_run: status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_LOCK_NOT_GRANTED); - if (time(NULL) < start+1) { - printf("lock comes back to early (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) < start+1), talloc_asprintf(tctx, + "lock comes back to early (%s)\n", __location__)); smbcli_close(cli->tree, fnum); fname = BASEDIR "\\test3.txt"; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to reopen %s - %s\n", + fname, smbcli_errstr(cli->tree))); + io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -1210,11 +1166,8 @@ next_run: start = time(NULL); io.lockx.in.timeout = 1000; req = smb_raw_lock_send(cli->tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); io.lockx.in.timeout = 0; lock[0].offset = 105; @@ -1230,20 +1183,16 @@ next_run: status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); - if (time(NULL) < start+1) { - printf("lock comes back to early (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) < start+1), talloc_asprintf(tctx, + "lock comes back to early (%s)\n", __location__)); smbcli_close(cli->tree, fnum); fname = BASEDIR "\\test4.txt"; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to reopen %s - %s\n", + fname, smbcli_errstr(cli->tree))); + io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; @@ -1260,11 +1209,8 @@ next_run: start = time(NULL); io.lockx.in.timeout = 1000; req = smb_raw_lock_send(cli->tree, &io); - if (req == NULL) { - printf("Failed to setup timed lock (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup timed lock (%s)\n", __location__)); io.lockx.in.timeout = 0; status = smb_raw_lock(cli->tree, &io); @@ -1276,11 +1222,8 @@ next_run: status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); - if (time(NULL) < start+1) { - printf("lock comes back to early (%s)\n", __location__); - ret = false; - goto done; - } + torture_assert(tctx,!(time(NULL) < start+1), talloc_asprintf(tctx, + "lock comes back to early (%s)\n", __location__)); done: smb_raw_exit(cli->session); @@ -1307,15 +1250,13 @@ static bool test_changetype(struct torture_context *tctx, return false; } - printf("Testing LOCKING_ANDX_CHANGE_LOCKTYPE\n"); + torture_comment(tctx, "Testing LOCKING_ANDX_CHANGE_LOCKTYPE\n"); io.generic.level = RAW_LOCK_LOCKX; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); io.lockx.level = RAW_LOCK_LOCKX; io.lockx.in.file.fnum = fnum; @@ -1331,7 +1272,8 @@ static bool test_changetype(struct torture_context *tctx, CHECK_STATUS(status, NT_STATUS_OK); if (smbcli_write(cli->tree, fnum, 0, &c, 100, 1) == 1) { - printf("allowed write on read locked region (%s)\n", __location__); + torture_result(tctx, TORTURE_FAIL, + "allowed write on read locked region (%s)\n", __location__); ret = false; goto done; } @@ -1342,7 +1284,8 @@ static bool test_changetype(struct torture_context *tctx, CHECK_STATUS(status, NT_STATUS_DOS(ERRDOS, ERRnoatomiclocks)); if (smbcli_write(cli->tree, fnum, 0, &c, 100, 1) == 1) { - printf("allowed write after lock change (%s)\n", __location__); + torture_result(tctx, TORTURE_FAIL, + "allowed write after lock change (%s)\n", __location__); ret = false; goto done; } @@ -1403,7 +1346,7 @@ static bool test_zerobytelocks(struct torture_context *tctx, struct smbcli_state int fnum, i; const char *fname = BASEDIR "\\zero.txt"; - printf("Testing zero length byte range locks:\n"); + torture_comment(tctx, "Testing zero length byte range locks:\n"); if (!torture_setup_dir(cli, BASEDIR)) { return false; @@ -1412,11 +1355,9 @@ static bool test_zerobytelocks(struct torture_context *tctx, struct smbcli_state io.generic.level = RAW_LOCK_LOCKX; fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); /* Setup initial parameters */ io.lockx.level = RAW_LOCK_LOCKX; @@ -1430,7 +1371,7 @@ static bool test_zerobytelocks(struct torture_context *tctx, struct smbcli_state for (i = 0; i < sizeof(zero_byte_tests) / sizeof(struct double_lock_test); i++) { - printf(" ... {%d, %llu, %llu} + {%d, %llu, %llu} = %s\n", + torture_comment(tctx, " ... {%d, %llu, %llu} + {%d, %llu, %llu} = %s\n", zero_byte_tests[i].lock1.pid, zero_byte_tests[i].lock1.offset, zero_byte_tests[i].lock1.count, @@ -1494,24 +1435,21 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) struct smb_lock_entry lock1; struct smb_lock_entry lock2; - printf("Testing LOCKX unlock:\n"); + torture_comment(tctx, "Testing LOCKX unlock:\n"); if (!torture_setup_dir(cli, BASEDIR)) { return false; } fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum1 == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum1 != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); + fnum2 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum2 == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum2 != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); /* Setup initial parameters */ io.lockx.level = RAW_LOCK_LOCKX; @@ -1527,7 +1465,7 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) /** * Take exclusive lock, then unlock it with a shared-unlock call. */ - printf(" taking exclusive lock.\n"); + torture_comment(tctx, " taking exclusive lock.\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; io.lockx.in.mode = 0; @@ -1536,7 +1474,7 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_OK); - printf(" unlock the exclusive with a shared unlock call.\n"); + torture_comment(tctx, " unlock the exclusive with a shared unlock call.\n"); io.lockx.in.ulock_cnt = 1; io.lockx.in.lock_cnt = 0; io.lockx.in.mode = LOCKING_ANDX_SHARED_LOCK; @@ -1545,7 +1483,7 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_OK); - printf(" try shared lock on pid2/fnum2, testing the unlock.\n"); + torture_comment(tctx, " try shared lock on pid2/fnum2, testing the unlock.\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; io.lockx.in.mode = LOCKING_ANDX_SHARED_LOCK; @@ -1557,7 +1495,7 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) /** * Unlock a shared lock with an exclusive-unlock call. */ - printf(" unlock new shared lock with exclusive unlock call.\n"); + torture_comment(tctx, " unlock new shared lock with exclusive unlock call.\n"); io.lockx.in.ulock_cnt = 1; io.lockx.in.lock_cnt = 0; io.lockx.in.mode = 0; @@ -1566,7 +1504,7 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_OK); - printf(" try exclusive lock on pid1, testing the unlock.\n"); + torture_comment(tctx, " try exclusive lock on pid1, testing the unlock.\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; io.lockx.in.mode = 0; @@ -1585,7 +1523,7 @@ static bool test_unlock(struct torture_context *tctx, struct smbcli_state *cli) * Test unlocking of 0-byte locks. */ - printf(" lock shared and exclusive 0-byte locks, testing that Windows " + torture_comment(tctx, " lock shared and exclusive 0-byte locks, testing that Windows " "always unlocks the exclusive first.\n"); lock1.pid = cli->session->pid; lock1.offset = 10; @@ -1680,18 +1618,16 @@ static bool test_multiple_unlock(struct torture_context *tctx, struct smbcli_sta struct smb_lock_entry lock2; struct smb_lock_entry locks[2]; - printf("Testing LOCKX multiple unlock:\n"); + torture_comment(tctx, "Testing LOCKX multiple unlock:\n"); if (!torture_setup_dir(cli, BASEDIR)) { return false; } fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum1 == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum1 != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); /* Setup initial parameters */ io.lockx.level = RAW_LOCK_LOCKX; @@ -1711,7 +1647,7 @@ static bool test_multiple_unlock(struct torture_context *tctx, struct smbcli_sta io.lockx.in.mode = 0; /* exclusive */ /** Test1: Take second lock, but not first. */ - printf(" unlock 2 locks, first one not locked. Expect no locks " + torture_comment(tctx, " unlock 2 locks, first one not locked. Expect no locks " "unlocked. \n"); io.lockx.in.ulock_cnt = 0; @@ -1743,7 +1679,7 @@ static bool test_multiple_unlock(struct torture_context *tctx, struct smbcli_sta CHECK_STATUS(status, NT_STATUS_OK); /** Test2: Take first lock, but not second. */ - printf(" unlock 2 locks, second one not locked. Expect first lock " + torture_comment(tctx, " unlock 2 locks, second one not locked. Expect first lock " "unlocked.\n"); io.lockx.in.ulock_cnt = 0; @@ -1796,7 +1732,7 @@ static bool test_stacking(struct torture_context *tctx, struct smbcli_state *cli struct smb_lock_entry lock1; struct smb_lock_entry lock2; - printf("Testing stacking:\n"); + torture_comment(tctx, "Testing stacking:\n"); if (!torture_setup_dir(cli, BASEDIR)) { return false; @@ -1805,11 +1741,9 @@ static bool test_stacking(struct torture_context *tctx, struct smbcli_state *cli io.generic.level = RAW_LOCK_LOCKX; fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE); - if (fnum1 == -1) { - printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree)); - ret = false; - goto done; - } + torture_assert(tctx,(fnum1 != -1), talloc_asprintf(tctx, + "Failed to create %s - %s\n", + fname, smbcli_errstr(cli->tree))); /* Setup initial parameters */ io.lockx.level = RAW_LOCK_LOCKX; @@ -1825,7 +1759,7 @@ static bool test_stacking(struct torture_context *tctx, struct smbcli_state *cli /** * Try to take a shared lock, then stack an exclusive. */ - printf(" stacking an exclusive on top of a shared lock fails.\n"); + torture_comment(tctx, " stacking an exclusive on top of a shared lock fails.\n"); io.lockx.in.file.fnum = fnum1; io.lockx.in.locks = &lock1; @@ -1851,7 +1785,7 @@ static bool test_stacking(struct torture_context *tctx, struct smbcli_state *cli /** * Prove that two exclusive locks do not stack. */ - printf(" two exclusive locks do not stack.\n"); + torture_comment(tctx, " two exclusive locks do not stack.\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; io.lockx.in.mode = 0; |