From 1d795fa57b9f0b9c23cecfe0329a5e551ea903ee Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 12 Jan 2005 07:03:29 +0000 Subject: r4700: first attempt at a composite async function, smb_composite_loadfile(), which combineds ntcreatex, readx and close into a single call that behaves just like a normal libcli async call. (This used to be commit 516f68fb054f0717f0429e031aa820776ecc6597) --- source4/torture/raw/composite.c | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 source4/torture/raw/composite.c (limited to 'source4/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; +} -- cgit