source: trunk/server/source4/torture/smbtorture.h

Last change on this file was 745, checked in by Silvan Scherrer, 13 years ago

Samba Server: updated trunk to 3.6.0

File size: 5.1 KB
Line 
1/*
2 Unix SMB/CIFS implementation.
3 SMB torture tester
4 Copyright (C) Andrew Tridgell 1997-2003
5 Copyright (C) Jelmer Vernooij 2006
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifndef __SMBTORTURE_H__
22#define __SMBTORTURE_H__
23
24#include "../lib/torture/torture.h"
25
26struct smbcli_state;
27
28extern struct torture_suite *torture_root;
29
30extern int torture_entries;
31extern int torture_seed;
32extern int torture_numops;
33extern int torture_failures;
34extern int torture_numasync;
35
36struct torture_test;
37int torture_init(void);
38bool torture_register_suite(struct torture_suite *suite);
39void torture_shell(struct torture_context *tctx);
40void torture_print_testsuites(bool structured);
41bool torture_run_named_tests(struct torture_context *torture, const char *name,
42 const char **restricted);
43bool torture_parse_target(struct loadparm_context *lp_ctx, const char *target);
44
45/* Server Functionality Support */
46
47/* Not all SMB server implementations support every aspect of the protocol.
48 * To allow smbtorture to provide useful data when run against these servers we
49 * define support parameters here, that will cause some tests to be skipped or
50 * the correctness checking of some tests to be conditional.
51 *
52 * The idea is that different server implementations can be specified on the
53 * command line such as "--target=win7" which will define the list of server
54 * parameters that are not supported. This is mostly a black list of
55 * unsupported features with the default expectation being that all features are
56 * supported.
57 *
58 * Because we use parametric options we do not need to define these parameters
59 * anywhere, we just define the meaning of each here.*/
60
61/* torture:cn_max_buffer_size
62 *
63 * This parameter specifies the maximum buffer size given in a change notify
64 * request. If an overly large buffer is requested by a client, the server
65 * will return a STATUS_INVALID_PARAMETER. The max buffer size on Windows
66 * server pre-Win7 was 0x00080000. In Win7 this was reduced to 0x00010000.
67 */
68
69/* torture:invalid_lock_range_support
70 *
71 * This parameter specifies whether the server will return
72 * STATUS_INVALID_LOCK_RANGE in response to a LockingAndX request where the
73 * combined offset and range overflow the 63-bit boundary. On Windows servers
74 * before Win7, this request would return STATUS_OK, but the actual lock
75 * behavior was undefined. */
76
77/* torture:openx_deny_dos_support
78 *
79 * This parameter specifies whether the server supports the DENY_DOS open mode
80 * of the SMBOpenX PDU. */
81
82/* torture:range_not_locked_on_file_close
83 *
84 * When a byte range lock is pending, and the file which is being locked is
85 * closed, Windows servers return the error NT_STATUS_RANGE_NOT_LOCKED. This
86 * is strange, as this error is meant to be returned only for unlock requests.
87 * When true, torture will expect the Windows behavior, otherwise it will
88 * expect the more logical NT_STATUS_LOCK_NOT_GRANTED.
89 */
90
91/* torture:sacl_support
92 *
93 * This parameter specifies whether the server supports the setting and
94 * retrieval of System Access Control Lists. This includes whether the server
95 * supports the use of the SEC_FLAG_SYSTEM_SECURITY bit in the open access
96 * mask.*/
97
98/* torture:smbexit_pdu_support
99 *
100 * This parameter specifies whether the server supports the SMBExit (0x11) PDU. */
101
102/* torture:smblock_pdu_support
103 *
104 * This parameter specifies whether the server supports the SMBLock (0x0C) PDU. */
105
106/* torture:2_step_break_to_none
107 *
108 * If true this parameter tests servers that break from level 1 to none in two
109 * steps rather than 1.
110 */
111
112/* torture:resume_key_support
113 *
114 * Server supports resuming search via key.
115 */
116
117/* torture:rewind_support
118 *
119 * Server supports rewinding during search.
120 */
121
122/* torture:ea_support
123 *
124 * Server supports OS/2 style EAs.
125 */
126
127/* torture:search_ea_support
128 *
129 * Server supports RAW_SEARCH_DATA_EA_LIST - Torture currently
130 * does not interact correctly with win7, this flag disables
131 * the appropriate test.
132 */
133
134/* torture:hide_on_acess_denied
135 *
136 * Some servers (win7) choose to hide files when certain access has been
137 * denied. When true, torture will expect NT_STATUS_OBJECT_NAME_NOT_FOUND
138 * rather than NT_STATUS_ACCESS_DENIED when trying to open one of these files.
139 */
140
141/* torture:raw_search_search
142 *
143 * Server supports RAW_SEARCH_SEARCH level.
144 */
145
146/* torture:search_ea_size
147 *
148 * Server supports RAW_SEARCH_DATA_EA_SIZE - This flag disables
149 * the appropriate test.
150 */
151
152#endif /* __SMBTORTURE_H__ */
Note: See TracBrowser for help on using the repository browser.