diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-08-14 01:03:56 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-08-14 01:03:56 +0000 |
commit | b34df4fa86e7336244914acbbc48b99432a3b5c4 (patch) | |
tree | 2dda9886d9a823f5f83cbe9a356a3389612dd027 | |
parent | 11d32f259f3a7b6634218c6625113aeb05f3f56b (diff) | |
download | samba-b34df4fa86e7336244914acbbc48b99432a3b5c4.tar.gz samba-b34df4fa86e7336244914acbbc48b99432a3b5c4.tar.bz2 samba-b34df4fa86e7336244914acbbc48b99432a3b5c4.zip |
added read/write seek testing
(This used to be commit 66691dc9582d4752ff1ab04a1b53c1e3c8fe64a1)
-rw-r--r-- | source4/torture/raw/seek.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/source4/torture/raw/seek.c b/source4/torture/raw/seek.c index 7a69283347..de62f88695 100644 --- a/source4/torture/raw/seek.c +++ b/source4/torture/raw/seek.c @@ -50,6 +50,7 @@ static BOOL test_seek(struct cli_state *cli, TALLOC_CTX *mem_ctx) BOOL ret = True; int fnum, fnum2; const char *fname = BASEDIR "\\test.txt"; + char c[2]; if (cli_deltree(cli, BASEDIR) == -1 || !cli_mkdir(cli, BASEDIR)) { @@ -121,6 +122,29 @@ static BOOL test_seek(struct cli_state *cli, TALLOC_CTX *mem_ctx) CHECK_STATUS(status, NT_STATUS_OK); CHECK_VALUE(io.out.offset, 999); + printf("trying read to update offset\n"); + ZERO_STRUCT(c); + if (cli_write(cli, fnum, 0, c, 0, 2) != 2) { + printf("Write failed - %s\n", cli_errstr(cli)); + ret = False; + goto done; + } + io.in.fnum = fnum; + io.in.mode = SEEK_MODE_CURRENT; + io.in.offset = 0; + status = smb_raw_seek(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + CHECK_VALUE(io.out.offset, 2); + + if (cli_read(cli, fnum, c, 0, 1) != 1) { + printf("Read failed - %s\n", cli_errstr(cli)); + ret = False; + goto done; + } + status = smb_raw_seek(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + CHECK_VALUE(io.out.offset, 1); + printf("Testing position information\n"); fnum2 = cli_open(cli, fname, O_RDWR, DENY_NONE); if (fnum2 == -1) { @@ -144,7 +168,7 @@ static BOOL test_seek(struct cli_state *cli, TALLOC_CTX *mem_ctx) finfo.position_information.in.fnum = fnum; status = smb_raw_fileinfo(cli->tree, mem_ctx, &finfo); CHECK_STATUS(status, NT_STATUS_OK); - CHECK_VALUE(finfo.position_information.out.position, 0); + CHECK_VALUE(finfo.position_information.out.position, 1); printf("position_information via paths\n"); |