mtest vs. test: add possibility to exit testing

'mtest' can now optionally only run a given amount of loops.
the first parameter <n> when invoking 'mtest' is considered to determine
the amount
when <n> is in the range -63..-1: mtest will run 2^-n runs
when <n> is > 0: mtest will run n runs
else: mtest will exit immediately
This commit is contained in:
Steffen Jaeckel 2014-10-15 16:22:35 +02:00
parent 545980169c
commit 9ca37ca01c
2 changed files with 31 additions and 1 deletions

View File

@ -798,6 +798,9 @@ printf("compare no compare!\n"); return EXIT_FAILURE; }
printf("d == %d\n", ix);
return EXIT_FAILURE;
}
} else if (!strcmp(cmd, "exit")) {
printf("\nokay, exiting now\n");
break;
}
}
#endif

View File

@ -96,9 +96,10 @@ void rand_num2(mp_int *a)
#define mp_to64(a, b) mp_toradix(a, b, 64)
int main(void)
int main(int argc, char *argv[])
{
int n, tmp;
long long max;
mp_int a, b, c, d, e;
#ifdef MTEST_NO_FULLSPEED
clock_t t1;
@ -111,6 +112,22 @@ int main(void)
mp_init(&d);
mp_init(&e);
if (argc > 1) {
max = strtol(argv[1], NULL, 0);
if (max < 0) {
if (max > -64) {
max = (1 << -(max)) + 1;
} else {
max = 1;
}
} else if (max == 0) {
max = 1;
}
}
else {
max = 0;
}
/* initial (2^n - 1)^2 testing, makes sure the comba multiplier works [it has the new carry code] */
/*
@ -154,6 +171,12 @@ int main(void)
#endif
n = getRandChar() % 15;
if (max != 0) {
--max;
if (max == 0)
n = 255;
}
if (n == 0) {
/* add tests */
rand_num(&a);
@ -334,7 +357,11 @@ int main(void)
printf("%s\n%d\n", buf, tmp);
mp_to64(&b, buf);
printf("%s\n", buf);
} else if (n == 255) {
printf("exit\n");
break;
}
}
#ifdef LTM_MTEST_REAL_RAND
fclose(rng);