svn commit: samba r20497 - in
branches/SAMBA_4_0/source/torture/raw: .
vlendec at samba.org
vlendec at samba.org
Wed Jan 3 06:29:22 GMT 2007
Author: vlendec
Date: 2007-01-03 06:29:22 +0000 (Wed, 03 Jan 2007)
New Revision: 20497
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20497
Log:
Two changes to RAW-OPEN that Samba does not fulfil:
Samba3 returns the SPARSE flag for files with size > allocation, and on many
configs Samba3 does not support EAs. Cope with both.
Tridge, please check this is acceptable for this test.
Volker
Modified:
branches/SAMBA_4_0/source/torture/raw/open.c
Changeset:
Modified: branches/SAMBA_4_0/source/torture/raw/open.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/open.c 2007-01-03 06:19:11 UTC (rev 20496)
+++ branches/SAMBA_4_0/source/torture/raw/open.c 2007-01-03 06:29:22 UTC (rev 20497)
@@ -396,8 +396,15 @@
io.openx.in.file_attrs = FILE_ATTRIBUTE_SYSTEM;
status = smb_raw_open(cli->tree, mem_ctx, &io);
CHECK_STATUS(status, NT_STATUS_OK);
- CHECK_ALL_INFO(FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE,
- attrib & ~FILE_ATTRIBUTE_NONINDEXED);
+ if (lp_parm_bool(-1, "torture", "samba3", False)) {
+ CHECK_ALL_INFO(FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE,
+ attrib & ~(FILE_ATTRIBUTE_NONINDEXED|
+ FILE_ATTRIBUTE_SPARSE));
+ }
+ else {
+ CHECK_ALL_INFO(FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE,
+ attrib & ~(FILE_ATTRIBUTE_NONINDEXED));
+ }
smbcli_close(cli->tree, io.openx.out.file.fnum);
smbcli_unlink(cli->tree, fname);
@@ -550,6 +557,7 @@
/* check all combinations of open_func */
for (i=0; i<ARRAY_SIZE(open_funcs); i++) {
+ again:
if (open_funcs[i].with_file) {
io.t2open.in.fname = fname1;
} else {
@@ -557,6 +565,15 @@
}
io.t2open.in.open_func = open_funcs[i].open_func;
status = smb_raw_open(cli->tree, mem_ctx, &io);
+ if ((io.t2open.in.num_eas != 0)
+ && NT_STATUS_EQUAL(status, NT_STATUS_EAS_NOT_SUPPORTED)
+ && lp_parm_bool(-1, "torture", "samba3", False)) {
+ printf("(%s) EAs not supported, not treating as fatal "
+ "in Samba3 test\n", __location__);
+ io.t2open.in.num_eas = 0;
+ goto again;
+ }
+
if (!NT_STATUS_EQUAL(status, open_funcs[i].correct_status)) {
printf("(%s) incorrect status %s should be %s (i=%d with_file=%d open_func=0x%x)\n",
__location__, nt_errstr(status), nt_errstr(open_funcs[i].correct_status),
@@ -592,11 +609,14 @@
smbcli_close(cli->tree, fnum);
status = torture_check_ea(cli, fname, ".CLASSINFO", "first value");
- CHECK_STATUS(status, NT_STATUS_OK);
+ CHECK_STATUS(status, io.t2open.in.num_eas
+ ? NT_STATUS_OK : NT_STATUS_EAS_NOT_SUPPORTED);
status = torture_check_ea(cli, fname, "EA TWO", "foo");
- CHECK_STATUS(status, NT_STATUS_OK);
+ CHECK_STATUS(status, io.t2open.in.num_eas
+ ? NT_STATUS_OK : NT_STATUS_EAS_NOT_SUPPORTED);
status = torture_check_ea(cli, fname, "X THIRD", "xy");
- CHECK_STATUS(status, NT_STATUS_OK);
+ CHECK_STATUS(status, io.t2open.in.num_eas
+ ? NT_STATUS_OK : NT_STATUS_EAS_NOT_SUPPORTED);
/* now check the search attrib for hidden files - win2003 ignores this? */
SET_ATTRIB(FILE_ATTRIBUTE_HIDDEN);
More information about the samba-cvs
mailing list