Mercurial > flash_v2
changeset 1078:5ba0f0c110c8
* tests/clock.c (main): Add a fudge factor in case the absolute values
from clock() are small, in which case the percentage variation
would be large.
| author | jlarmour |
|---|---|
| date | Thu, 26 Jun 2003 04:52:38 +0000 |
| parents | e4850e482c80 |
| children | b4dd94e7d372 |
| files | packages/language/c/libc/time/current/ChangeLog packages/language/c/libc/time/current/tests/clock.c |
| diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/language/c/libc/time/current/ChangeLog +++ b/packages/language/c/libc/time/current/ChangeLog @@ -1,3 +1,10 @@ +2003-06-26 Brij Bihari Pandey <fuzzhead012@yahoo.com> +2003-06-26 Jonathan Larmour <jifl@eCosCentric.com> + + * tests/clock.c (main): Add a fudge factor in case the absolute values + from clock() are small, in which case the percentage variation + would be large. + 2003-06-13 Jonathan Larmour <jifl@eCosCentric.com> * tests/clock.c (main): Avoid div-by-zero if mean==0.
--- a/packages/language/c/libc/time/current/tests/clock.c +++ b/packages/language/c/libc/time/current/tests/clock.c @@ -96,6 +96,11 @@ cyg_start(void) // Percentage error before we declare fail: range 0 - 100 #define TOLERANCE 40 +// Permissible absolute deviation from mean value to take care of incorrect +// failure conclusions in case of small mean values (if absolute values of +// clock() are small, percentage variation can be large) +#define FUDGE_FACTOR 6 + // Number of samples to take #define SAMPLES 30 @@ -160,6 +165,7 @@ main(int argc, char *argv[]) { unsigned long mean=0, sum=0, maxerr=0; int i; + unsigned int absdev; CYG_TEST_INIT(); @@ -221,9 +227,10 @@ main(int argc, char *argv[]) for (i=SKIPPED_SAMPLES;i<SAMPLES;i++) { unsigned long err; + absdev = my_abs(ctrs[i]-mean); // use mean+1 as divisor to avoid div-by-zero - err = (100 * my_abs(ctrs[i]-mean)) / (mean+1); - if (err > TOLERANCE) { + err = (100 * absdev) / (mean+1); + if (err > TOLERANCE && absdev > FUDGE_FACTOR) { diag_printf("mean=%d, ctrs[%d]=%d, err=%d\n", mean, i, ctrs[i], err); CYG_TEST_FAIL_FINISH("clock() within tolerance");
