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:
parent
8d80629c5d
commit
6b91bb93fa
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user