char *vol_node = vol_nodes[vol_id];
unsigned char *wbuf = wbufs[vol_id];
unsigned char *rbuf = rbufs[vol_id];
+ unsigned int seed = seed_random_generator();
fd = open(vol_node, O_RDWR);
if (fd == -1) {
}
for (i = 0; i < bytes; i++)
- wbuf[i] = rand() % 255;
+ wbuf[i] = rand_r(&seed) % 255;
memset(rbuf, '\0', bytes);
ret = ubi_update_start(libubi, fd, bytes);
}
while (written < bytes) {
- int to_write = rand() % (bytes - written);
+ int to_write = rand_r(&seed) % (bytes - written);
if (to_write == 0)
to_write = 1;
/* read data back and check */
while (rd < bytes) {
- int to_read = rand() % (bytes - rd);
+ int to_read = rand_r(&seed) % (bytes - rd);
if (to_read == 0)
to_read = 1;
static void *update_thread(void *ptr)
{
int vol_id = (long)ptr, i;
+ unsigned int seed = seed_random_generator();
for (i = 0; i < ITERATIONS; i++) {
- int ret, bytes = (rand() % (vol_size - 1)) + 1;
- int remove = !(rand() % 16);
+ int ret, bytes = (rand_r(&seed) % (vol_size - 1)) + 1;
+ int remove = !(rand_r(&seed) % 16);
/* From time to time remove the volume */
if (remove) {
char *vol_node = vol_nodes[vol_id];
unsigned char *wbuf = wbufs[vol_id];
unsigned char *rbuf = rbufs[vol_id];
+ unsigned int seed = seed_random_generator();
fd = open(vol_node, O_RDWR);
if (fd == -1) {
}
for (i = 0; i < ITERATIONS * VOL_LEBS; i++) {
- int j, leb = rand() % VOL_LEBS;
+ int j, leb = rand_r(&seed) % VOL_LEBS;
off_t offs = dev_info.leb_size * leb;
ret = ubi_leb_unmap(fd, leb);
}
for (j = 0; j < dev_info.leb_size; j++)
- wbuf[j] = rand() % 255;
+ wbuf[j] = rand_r(&seed) % 255;
memset(rbuf, '\0', dev_info.leb_size);
ret = pwrite(fd, wbuf, dev_info.leb_size, offs);
int i, ret;
pthread_t threads[THREADS_NUM];
- seed_random_generator();
if (initial_check(argc, argv))
return 1;