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); } |
