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:
		
							parent
							
								
									545980169c
								
							
						
					
					
						commit
						9ca37ca01c
					
				| @ -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 | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user