diff options
Diffstat (limited to 'source3/torture')
-rw-r--r-- | source3/torture/proto.h | 1 | ||||
-rw-r--r-- | source3/torture/test_buffersize.c | 56 | ||||
-rw-r--r-- | source3/torture/torture.c | 1 |
3 files changed, 58 insertions, 0 deletions
diff --git a/source3/torture/proto.h b/source3/torture/proto.h index 4f4c9e2718..f6453fd526 100644 --- a/source3/torture/proto.h +++ b/source3/torture/proto.h @@ -111,5 +111,6 @@ bool run_notify_bench3(int dummy); bool run_dbwrap_watch1(int dummy); bool run_idmap_tdb_common_test(int dummy); bool run_local_dbwrap_ctdb(int dummy); +bool run_qpathinfo_bufsize(int dummy); #endif /* __TORTURE_H__ */ diff --git a/source3/torture/test_buffersize.c b/source3/torture/test_buffersize.c new file mode 100644 index 0000000000..6e86374212 --- /dev/null +++ b/source3/torture/test_buffersize.c @@ -0,0 +1,56 @@ +/* + Unix SMB/CIFS implementation. + Test buffer sizes in cli_qpathinfo + Copyright (C) Volker Lendecke 2012 + + 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 3 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, see <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "torture/proto.h" +#include "libsmb/libsmb.h" +#include "libcli/security/dom_sid.h" +#include "libcli/security/secdesc.h" +#include "libcli/security/security.h" +#include "trans2.h" +#include "source3/libsmb/clirap.h" + +bool run_qpathinfo_bufsize(int dummy) +{ + struct cli_state *cli = NULL; + NTSTATUS status, status2; + bool ret = false; + int i; + + printf("Starting qpathinfo_bufsize\n"); + + if (!torture_open_connection(&cli, 0)) { + printf("torture_open_connection failed\n"); + goto fail; + } + + for (i=0; i<500; i++) { + uint8_t *rdata; + uint32_t num_rdata; + cli_qpathinfo(cli, cli, "\\", SMB_FILE_ALL_INFORMATION, + 0, i, &rdata, &num_rdata); + } + + ret = true; +fail: + if (cli != NULL) { + torture_close_connection(cli); + } + return ret; +} diff --git a/source3/torture/torture.c b/source3/torture/torture.c index 4a8e3ed451..359baa9cb4 100644 --- a/source3/torture/torture.c +++ b/source3/torture/torture.c @@ -9579,6 +9579,7 @@ static struct { { "local-tdb-opener", run_local_tdb_opener, 0 }, { "local-tdb-writer", run_local_tdb_writer, 0 }, { "LOCAL-DBWRAP-CTDB", run_local_dbwrap_ctdb, 0 }, + { "qpathinfo-bufsize", run_qpathinfo_bufsize, 0 }, {NULL, NULL, 0}}; /* |