tests/ctime: ensure times change by the right amount

Previously, we only checked if the times changed at all, which missed a
bug where the atime was being set to an undefined value.

Now ensure the times change by two seconds (or thereabouts), ensuring we
catch cases where we set the time to something bonkers

Signed-off-by: Rob Norris <robn@despairlabs.com>
Sponsored-by: https://despairlabs.com/sponsor/
This commit is contained in:
Rob Norris 2024-01-15 09:01:39 +11:00
parent a1771d243a
commit 49b2dee41a
1 changed files with 11 additions and 3 deletions

View File

@ -362,12 +362,20 @@ main(void)
return (1);
}
if (t1 == t2) {
(void) fprintf(stderr, "%s: t1(%ld) == t2(%ld)\n",
/*
* Ideally, time change would be exactly two seconds, but allow
* a little slack in case of scheduling delays or similar.
*/
long delta = (long)t2 - (long)t1;
if (delta < 2 || delta > 4) {
(void) fprintf(stderr,
"%s: BAD time change: t1(%ld), t2(%ld)\n",
timetest_table[i].name, (long)t1, (long)t2);
return (1);
} else {
(void) fprintf(stderr, "%s: t1(%ld) != t2(%ld)\n",
(void) fprintf(stderr,
"%s: good time change: t1(%ld), t2(%ld)\n",
timetest_table[i].name, (long)t1, (long)t2);
}
}