1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-10 12:58:35 +03:00

r20474: Skip the delete-on-close test on a non-empty directory in raw-unlink for

Samba3. This is a known deficiency also taken care of in the base-delete
test.

Volker
This commit is contained in:
Volker Lendecke 2007-01-02 13:48:42 +00:00 committed by Gerald (Jerry) Carter
parent 8d80629c5d
commit 6b91bb93fa

View File

@ -252,34 +252,41 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
printf("Testing with non-empty directory delete_on_close\n");
status = create_directory_handle(cli->tree, dname, &fnum);
CHECK_STATUS(status, NT_STATUS_OK);
fnum2 = create_complex_file(cli, mem_ctx, inside);
if (!lp_parm_bool(-1, "torture", "samba3", False)) {
sfinfo.disposition_info.in.file.fnum = fnum;
sfinfo.disposition_info.in.delete_on_close = 1;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_DIRECTORY_NOT_EMPTY);
/*
* Known deficiency, also skipped in base-delete.
*/
sfinfo.disposition_info.in.file.fnum = fnum2;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_OK);
printf("Testing with non-empty directory delete_on_close\n");
status = create_directory_handle(cli->tree, dname, &fnum);
CHECK_STATUS(status, NT_STATUS_OK);
sfinfo.disposition_info.in.file.fnum = fnum;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_DIRECTORY_NOT_EMPTY);
fnum2 = create_complex_file(cli, mem_ctx, inside);
smbcli_close(cli->tree, fnum2);
sfinfo.disposition_info.in.file.fnum = fnum;
sfinfo.disposition_info.in.delete_on_close = 1;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_DIRECTORY_NOT_EMPTY);
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_OK);
sfinfo.disposition_info.in.file.fnum = fnum2;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_OK);
smbcli_close(cli->tree, fnum);
sfinfo.disposition_info.in.file.fnum = fnum;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_DIRECTORY_NOT_EMPTY);
status = smb_raw_rmdir(cli->tree, &dio);
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
smbcli_close(cli->tree, fnum2);
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
CHECK_STATUS(status, NT_STATUS_OK);
smbcli_close(cli->tree, fnum);
status = smb_raw_rmdir(cli->tree, &dio);
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
}
printf("Testing open dir with delete_on_close\n");
status = create_directory_handle(cli->tree, dname, &fnum);