diff options
| author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-04-22 18:32:23 +0300 | 
|---|---|---|
| committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-04-24 19:12:30 +0300 | 
| commit | 1fa184a5be96d5c927b4c64d965afd417997e8fc (patch) | |
| tree | 7e8d90b3b772439092330ab42d6faca8638ab6b1 /tests/fs-tests | |
| parent | 548a96fa716666d0bb6095f1f38aa167c47215cd (diff) | |
fs-tests: use independent random generators for ops and data
Currently integck uses the same global random generator for everything -
for choosing the operation, generating the data, and for checking. This
makes integck to become stuck sometimes. My guess this is because of
we somehow re-set it back with srand() when checking files.
This patch makes integck use different generators for data and for
choosing operations by using rand_r() with own seed for operations.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'tests/fs-tests')
| -rw-r--r-- | tests/fs-tests/integrity/integck.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index fbd6cc5..5fb990e 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -214,6 +214,8 @@ static uint64_t operation_count = 0; /* Number of operations used to fill                                          up the file system */  static unsigned int check_run_no; +static unsigned int random_seed; +  /*   * A buffer which is used by 'make_name()' to return the generated random name.   */ @@ -260,7 +262,7 @@ static unsigned int random_no(unsigned int max)  	assert(max < RAND_MAX);  	if (max == 0)  		return 0; -	return rand() % max; +	return rand_r(&random_seed) % max;  }  /* @@ -2952,6 +2954,7 @@ int main(int argc, char *argv[])  {  	int ret;  	long rpt; +	unsigned int pid = getpid();  	ret = parse_opts(argc, argv);  	if (ret) @@ -2960,7 +2963,8 @@ int main(int argc, char *argv[])  	get_tested_fs_info();  	/* Seed the random generator with out PID */ -	srand(getpid()); +	srand(pid); +	random_seed = pid;  	random_name_buf = malloc(fsinfo.max_name_len + 1);  	CHECK(random_name_buf != NULL); | 
