diff options
Diffstat (limited to 'source4/torture/basic/delaywrite.c')
-rw-r--r-- | source4/torture/basic/delaywrite.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/source4/torture/basic/delaywrite.c b/source4/torture/basic/delaywrite.c index edb3dc9a91..4230340059 100644 --- a/source4/torture/basic/delaywrite.c +++ b/source4/torture/basic/delaywrite.c @@ -129,6 +129,8 @@ static bool test_delayed_write_update1(struct torture_context *tctx, struct smbc double sec = ((double)used_delay) / ((double)normal_delay); int msec = 1000 * sec; char buf[2048]; + bool first; + bool updated; torture_comment(tctx, "\nRunning test_delayed_write_update1\n"); @@ -173,6 +175,8 @@ static bool test_delayed_write_update1(struct torture_context *tctx, struct smbc start = timeval_current(); end = timeval_add(&start, (120 * sec), 0); + first = true; + updated = false; while (!timeval_expired(&end)) { status = smb_raw_fileinfo(cli->tree, tctx, &finfo2); @@ -184,31 +188,27 @@ static bool test_delayed_write_update1(struct torture_context *tctx, struct smbc torture_comment(tctx, "write time %s\n", nt_time_string(tctx, finfo2.all_info.out.write_time)); - if (finfo1.all_info.out.write_time != finfo2.all_info.out.write_time) { - double diff = timeval_elapsed(&start); - if (diff > (0.25 * (used_delay / (double)1000000))) { - torture_result(tctx, TORTURE_FAIL, "After SMBwrite truncate " - "server updated write_time after %.2f seconds" - "(write time update dealy == %.2f)(wrong!)\n", - diff, used_delay / (double)1000000); - ret = false; - break; - } - torture_comment(tctx, "After SMBwrite truncate " - "server updated write_time after %.2f seconds" - "(1 sec == %.2f)(correct)\n", - diff, used_delay / (double)1000000); + if (finfo1.all_info.out.write_time != + finfo2.all_info.out.write_time) + { + updated = true; break; } + fflush(stdout); smb_msleep(1 * msec); + first = false; } - torture_assert_u64_not_equal(tctx, - finfo2.all_info.out.write_time, - finfo1.all_info.out.write_time, - "Server did not update write time"); + torture_assert(tctx, updated, + "Server did not update write time within 120 seconds"); + + torture_assert(tctx, first, talloc_asprintf(tctx, + "Server did not update write time immediately but only " + "after %.2f seconds!", timeval_elapsed(&start))); + + torture_comment(tctx, "Server updated write time immediately. Good!\n"); fflush(stdout); smb_msleep(2 * msec); |