diff options
Diffstat (limited to 'source4/torture/basic/unlink.c')
-rw-r--r-- | source4/torture/basic/unlink.c | 60 |
1 files changed, 19 insertions, 41 deletions
diff --git a/source4/torture/basic/unlink.c b/source4/torture/basic/unlink.c index b64c52e110..a8469e4bf6 100644 --- a/source4/torture/basic/unlink.c +++ b/source4/torture/basic/unlink.c @@ -34,49 +34,36 @@ 1) the server does not allow an unlink on a file that is open */ -BOOL torture_unlinktest(struct torture_context *torture) +BOOL torture_unlinktest(struct torture_context *tctx, struct smbcli_state *cli) { - struct smbcli_state *cli; const char *fname = BASEDIR "\\unlink.tst"; int fnum; BOOL correct = True; union smb_open io; NTSTATUS status; - if (!torture_open_connection(&cli, 0)) { - return False; - } - - printf("starting unlink test\n"); - - if (!torture_setup_dir(cli, BASEDIR)) { - return False; - } + torture_assert(tctx, torture_setup_dir(cli, BASEDIR), + talloc_asprintf(tctx, "Failed setting up %s", BASEDIR)); cli->session->pid = 1; - printf("Opening a file\n"); + torture_comment(tctx, "Opening a file\n"); fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE); - if (fnum == -1) { - printf("open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree)); - return False; - } - - printf("Unlinking a open file\n"); - - if (NT_STATUS_IS_OK(smbcli_unlink(cli->tree, fname))) { - printf("(%s) error: server allowed unlink on an open file\n", __location__); - correct = False; - } else { - correct = check_error(__location__, cli, ERRDOS, ERRbadshare, + torture_assert(tctx, fnum != -1, talloc_asprintf(tctx, "open of %s failed (%s)", fname, smbcli_errstr(cli->tree))); + + torture_comment(tctx, "Unlinking a open file\n"); + + torture_assert(tctx, !NT_STATUS_IS_OK(smbcli_unlink(cli->tree, fname)), + "server allowed unlink on an open file"); + + correct = check_error(__location__, cli, ERRDOS, ERRbadshare, NT_STATUS_SHARING_VIOLATION); - } smbcli_close(cli->tree, fnum); smbcli_unlink(cli->tree, fname); - printf("testing unlink after ntcreatex with DELETE access\n"); + torture_comment(tctx, "testing unlink after ntcreatex with DELETE access\n"); io.ntcreatex.level = RAW_OPEN_NTCREATEX; io.ntcreatex.in.root_fid = 0; @@ -92,23 +79,14 @@ BOOL torture_unlinktest(struct torture_context *torture) io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL; status = smb_raw_open(cli->tree, cli, &io); - if (!NT_STATUS_IS_OK(status)) { - printf("(%s) failed to open %s\n", __location__, fname); - } - if (NT_STATUS_IS_OK(smbcli_unlink(cli->tree, fname))) { - printf("(%s) error: server allowed unlink on an open file\n", __location__); - correct = False; - } else { - correct = check_error(__location__, cli, ERRDOS, ERRbadshare, - NT_STATUS_SHARING_VIOLATION); - } + torture_assert_ntstatus_ok(tctx, status, talloc_asprintf(tctx, "failed to open %s", fname)); - if (!torture_close_connection(cli)) { - correct = False; - } + torture_assert(tctx, !NT_STATUS_IS_OK(smbcli_unlink(cli->tree, fname)), + "server allowed unlink on an open file"); + + correct = check_error(__location__, cli, ERRDOS, ERRbadshare, + NT_STATUS_SHARING_VIOLATION); - printf("unlink test finished\n"); - return correct; } |