mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
torture/ioctl: test compression responses when unsupported
Confirm that Samba matches Windows Server 2016 ReFS behaviour here. Bug: https://bugzilla.samba.org/show_bug.cgi?id=12144 Reported-by: Nick Barrett Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Thu Oct 6 06:14:34 CEST 2016 on sn-devel-144
This commit is contained in:
parent
7a10002228
commit
f6f6263f1f
@ -173,6 +173,7 @@
|
||||
^samba3.smb2.replay.replay3
|
||||
^samba3.smb2.replay.replay4
|
||||
^samba3.smb2.lock.*replay
|
||||
^samba4.smb2.ioctl.compress_notsup.*\(ad_dc_ntvfs\)
|
||||
^samba3.raw.session.*reauth2 # maybe fix this?
|
||||
^samba3.rpc.lsa.secrets.seal # This gives NT_STATUS_LOCAL_USER_SESSION_KEY
|
||||
^samba3.rpc.samr.passwords.badpwdcount.samr.badPwdCount\(nt4_dc\) # We fail this test currently
|
||||
|
@ -2543,6 +2543,78 @@ static bool test_ioctl_compress_perms(struct torture_context *torture,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool test_ioctl_compress_notsup_get(struct torture_context *torture,
|
||||
struct smb2_tree *tree)
|
||||
{
|
||||
struct smb2_handle fh;
|
||||
NTSTATUS status;
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(tree);
|
||||
bool ok;
|
||||
uint16_t compression_fmt;
|
||||
|
||||
ok = test_setup_create_fill(torture, tree, tmp_ctx,
|
||||
FNAME, &fh, 0, SEC_RIGHTS_FILE_ALL,
|
||||
FILE_ATTRIBUTE_NORMAL);
|
||||
torture_assert(torture, ok, "setup compression file");
|
||||
|
||||
/* skip if the server DOES support compression */
|
||||
status = test_ioctl_compress_fs_supported(torture, tree, tmp_ctx, &fh,
|
||||
&ok);
|
||||
torture_assert_ntstatus_ok(torture, status, "SMB2_GETINFO_FS");
|
||||
if (ok) {
|
||||
smb2_util_close(tree, fh);
|
||||
torture_skip(torture, "FS compression supported\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Despite not supporting compression, we should get a successful
|
||||
* response indicating that the file is uncompressed - like WS2016.
|
||||
*/
|
||||
status = test_ioctl_compress_get(torture, tmp_ctx, tree, fh,
|
||||
&compression_fmt);
|
||||
torture_assert_ntstatus_ok(torture, status, "FSCTL_GET_COMPRESSION");
|
||||
|
||||
torture_assert(torture, (compression_fmt == COMPRESSION_FORMAT_NONE),
|
||||
"initial compression state not NONE");
|
||||
|
||||
smb2_util_close(tree, fh);
|
||||
talloc_free(tmp_ctx);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool test_ioctl_compress_notsup_set(struct torture_context *torture,
|
||||
struct smb2_tree *tree)
|
||||
{
|
||||
struct smb2_handle fh;
|
||||
NTSTATUS status;
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(tree);
|
||||
bool ok;
|
||||
|
||||
ok = test_setup_create_fill(torture, tree, tmp_ctx,
|
||||
FNAME, &fh, 0, SEC_RIGHTS_FILE_ALL,
|
||||
FILE_ATTRIBUTE_NORMAL);
|
||||
torture_assert(torture, ok, "setup compression file");
|
||||
|
||||
/* skip if the server DOES support compression */
|
||||
status = test_ioctl_compress_fs_supported(torture, tree, tmp_ctx, &fh,
|
||||
&ok);
|
||||
torture_assert_ntstatus_ok(torture, status, "SMB2_GETINFO_FS");
|
||||
if (ok) {
|
||||
smb2_util_close(tree, fh);
|
||||
torture_skip(torture, "FS compression supported\n");
|
||||
}
|
||||
|
||||
status = test_ioctl_compress_set(torture, tmp_ctx, tree, fh,
|
||||
COMPRESSION_FORMAT_DEFAULT);
|
||||
torture_assert_ntstatus_equal(torture, status,
|
||||
NT_STATUS_NOT_SUPPORTED,
|
||||
"FSCTL_GET_COMPRESSION");
|
||||
|
||||
smb2_util_close(tree, fh);
|
||||
talloc_free(tmp_ctx);
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
basic testing of the SMB2 FSCTL_QUERY_NETWORK_INTERFACE_INFO ioctl
|
||||
*/
|
||||
@ -6169,6 +6241,10 @@ struct torture_suite *torture_smb2_ioctl_init(void)
|
||||
test_ioctl_compress_set_file_attr);
|
||||
torture_suite_add_1smb2_test(suite, "compress_perms",
|
||||
test_ioctl_compress_perms);
|
||||
torture_suite_add_1smb2_test(suite, "compress_notsup_get",
|
||||
test_ioctl_compress_notsup_get);
|
||||
torture_suite_add_1smb2_test(suite, "compress_notsup_set",
|
||||
test_ioctl_compress_notsup_set);
|
||||
torture_suite_add_1smb2_test(suite, "network_interface_info",
|
||||
test_ioctl_network_interface_info);
|
||||
torture_suite_add_1smb2_test(suite, "sparse_file_flag",
|
||||
|
Loading…
Reference in New Issue
Block a user