diff options
Diffstat (limited to 'tests/helpers/c/prng.c')
| -rw-r--r-- | tests/helpers/c/prng.c | 103 | 
1 files changed, 48 insertions, 55 deletions
diff --git a/tests/helpers/c/prng.c b/tests/helpers/c/prng.c index 0f78366fcd..e2173d4515 100644 --- a/tests/helpers/c/prng.c +++ b/tests/helpers/c/prng.c @@ -31,20 +31,18 @@  #include "prng.h" -struct prng -{ -  uint64_t state; +struct prng { +	uint64_t state;  }; -struct prng* -prng_new(unsigned long long seed) +struct prng *prng_new(unsigned long long seed)  { -  struct prng *rv = calloc(sizeof(*rv), 1); -  assert(rv); +	struct prng *rv = calloc(sizeof(*rv), 1); +	assert(rv); -  rv->state = seed; +	rv->state = seed; -  return rv; +	return rv;  }  /* @@ -54,62 +52,57 @@ prng_new(unsigned long long seed)   * It is a simple LCG which D.E. Knuth attributes to C.E. Haynes in   * TAOCP Vol2 3.3.4   */ -int -prng_rand(struct prng *prng) +int prng_rand(struct prng *prng)  { -  prng->state = 6364136223846793005ULL*prng->state + 1; -  return prng->state>>33; +	prng->state = 6364136223846793005ULL * prng->state + 1; +	return prng->state >> 33;  } -const char * -prng_fuzz(struct prng *prng, -          const char *string, -          const char *charset, -          unsigned int operations) +const char *prng_fuzz(struct prng *prng, const char *string, +		      const char *charset, unsigned int operations)  { -  static char buf[256]; -  unsigned int charset_len; -  unsigned int i; -  unsigned int offset; -  unsigned int op; -  unsigned int character; +	static char buf[256]; +	unsigned int charset_len; +	unsigned int i; +	unsigned int offset; +	unsigned int op; +	unsigned int character; -  assert(strlen(string) < sizeof(buf)); +	assert(strlen(string) < sizeof(buf)); -  strncpy(buf, string, sizeof(buf)); -  charset_len = strlen(charset); +	strncpy(buf, string, sizeof(buf)); +	charset_len = strlen(charset); -  for (i = 0; i < operations; i++) -    { -      offset = prng_rand(prng) % strlen(buf); -      op = prng_rand(prng) % 3; +	for (i = 0; i < operations; i++) { +		offset = prng_rand(prng) % strlen(buf); +		op = prng_rand(prng) % 3; -      switch (op) -        { -        case 0: -          /* replace */ -          character = prng_rand(prng) % charset_len; -          buf[offset] = charset[character]; -          break; -        case 1: -          /* remove */ -          memmove(buf + offset, buf + offset + 1, strlen(buf) - offset); -          break; -        case 2: -          /* insert */ -          assert(strlen(buf) + 1 < sizeof(buf)); +		switch (op) { +		case 0: +			/* replace */ +			character = prng_rand(prng) % charset_len; +			buf[offset] = charset[character]; +			break; +		case 1: +			/* remove */ +			memmove(buf + offset, buf + offset + 1, +				strlen(buf) - offset); +			break; +		case 2: +			/* insert */ +			assert(strlen(buf) + 1 < sizeof(buf)); -          memmove(buf + offset + 1, buf + offset, strlen(buf) + 1 - offset); -          character = prng_rand(prng) % charset_len; -          buf[offset] = charset[character]; -          break; -        } -    } -  return buf; +			memmove(buf + offset + 1, buf + offset, +				strlen(buf) + 1 - offset); +			character = prng_rand(prng) % charset_len; +			buf[offset] = charset[character]; +			break; +		} +	} +	return buf;  } -void -prng_free(struct prng *prng) +void prng_free(struct prng *prng)  { -  free(prng); +	free(prng);  }  | 
