diff options
-rw-r--r-- | source4/torture/basic/delaywrite.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/source4/torture/basic/delaywrite.c b/source4/torture/basic/delaywrite.c index 0566e26cb9..51fe2814e2 100644 --- a/source4/torture/basic/delaywrite.c +++ b/source4/torture/basic/delaywrite.c @@ -124,6 +124,7 @@ static BOOL test_delayed_write_update2(struct smbcli_state *cli, TALLOC_CTX *mem BOOL ret = True; ssize_t written; time_t t; + struct smb_flush flsh; printf("Testing delayed update of write time using 2 connections\n"); @@ -231,13 +232,27 @@ static BOOL test_delayed_write_update2(struct smbcli_state *cli, TALLOC_CTX *mem nt_time_string(mem_ctx, finfo1.basic_info.out.write_time)); - written = smbcli_write(cli->tree, fnum1, 0, "x", 0, 1); + printf("Doing a 10 byte write to extend the file and see if this changes the last write time.\n"); - if (written != 1) { + written = smbcli_write(cli->tree, fnum1, 0, "0123456789", 1, 10); + + if (written != 10) { printf("write failed - wrote %d bytes (%s)\n", written, __location__); return False; } + /* Just to prove to tridge that the an smbflush has no effect on + the write time :-). The setfileinfo IS STICKY. JRA. */ + + printf("Doing flush after write\n"); + + flsh.in.fnum = fnum1; + status = smb_raw_flush(cli->tree, &flsh); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(0, ("smbflush failed: %s\n", nt_errstr(status))); + return False; + } + t = time(NULL); /* Once the time was set using setfileinfo then it stays set - writes |