diff options
Diffstat (limited to 'source4/torture')
-rw-r--r-- | source4/torture/config.mk | 3 | ||||
-rw-r--r-- | source4/torture/raw/composite.c | 77 | ||||
-rw-r--r-- | source4/torture/torture.c | 1 |
3 files changed, 80 insertions, 1 deletions
diff --git a/source4/torture/config.mk b/source4/torture/config.mk index 172d8c02f1..0e74d7c040 100644 --- a/source4/torture/config.mk +++ b/source4/torture/config.mk @@ -50,7 +50,8 @@ ADD_OBJ_FILES = \ torture/raw/eas.o \ torture/raw/streams.o \ torture/raw/acls.o \ - torture/raw/seek.o + torture/raw/seek.o \ + torture/raw/composite.o REQUIRED_SUBSYSTEMS = \ LIBSMB LIBCLI_LSA # End SUBSYSTEM TORTURE_RAW diff --git a/source4/torture/raw/composite.c b/source4/torture/raw/composite.c new file mode 100644 index 0000000000..97f820c9e5 --- /dev/null +++ b/source4/torture/raw/composite.c @@ -0,0 +1,77 @@ +/* + Unix SMB/CIFS implementation. + + libcli composite function testing + + Copyright (C) Andrew Tridgell 2005 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +#include "libcli/raw/libcliraw.h" +#include "libcli/composite/composite.h" + +#define BASEDIR "\\composite" + +static BOOL test_loadfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) +{ + const char *fname = BASEDIR "\\test.txt"; + int fnum; + NTSTATUS status; + struct smb_composite_loadfile io; + + fnum = create_complex_file(cli, mem_ctx, fname); + smbcli_close(cli->tree, fnum); + + io.in.fname = fname; + + status = smb_composite_loadfile(cli->tree, mem_ctx, &io); + if (!NT_STATUS_IS_OK(status)) { + printf("Loadfile failed: %s\n", nt_errstr(status)); + return False; + } + + return True; +} + +/* + basic testing of libcli composite calls +*/ +BOOL torture_raw_composite(void) +{ + struct smbcli_state *cli; + BOOL ret = True; + TALLOC_CTX *mem_ctx; + + if (!torture_open_connection(&cli)) { + return False; + } + + mem_ctx = talloc_init("torture_raw_composite"); + + if (!torture_setup_dir(cli, BASEDIR)) { + return False; + } + + ret &= test_loadfile(cli, mem_ctx); + + smb_raw_exit(cli->session); + smbcli_deltree(cli->tree, BASEDIR); + + torture_close_connection(cli); + talloc_destroy(mem_ctx); + return ret; +} diff --git a/source4/torture/torture.c b/source4/torture/torture.c index bc4feef3e9..cc960b6ec7 100644 --- a/source4/torture/torture.c +++ b/source4/torture/torture.c @@ -2410,6 +2410,7 @@ static struct { {"RAW-STREAMS", torture_raw_streams, 0}, {"RAW-ACLS", torture_raw_acls, 0}, {"RAW-RAP", torture_raw_rap, 0}, + {"RAW-COMPOSITE", torture_raw_composite, 0}, /* protocol scanners */ {"SCAN-TRANS2", torture_trans2_scan, 0}, |