summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/tests/unit/translate_test.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/gallium/tests/unit/translate_test.c b/src/gallium/tests/unit/translate_test.c
index a6f0f548976..960c70f2b50 100644
--- a/src/gallium/tests/unit/translate_test.c
+++ b/src/gallium/tests/unit/translate_test.c
@@ -30,6 +30,20 @@
#include <util/u_cpu_detect.h>
#include <rtasm/rtasm_cpu.h>
+/* don't use this for serious use */
+static double rand_double()
+{
+ const double rm = (double)RAND_MAX + 1;
+ double div = 1;
+ double v = 0;
+ for(unsigned i = 0; i < 4; ++i)
+ {
+ div *= rm;
+ v += (double)rand() / div;
+ }
+ return v;
+}
+
int main(int argc, char** argv)
{
struct translate *(*create_fn)(const struct translate_key *key) = 0;
@@ -129,17 +143,17 @@ int main(int argc, char** argv)
key.element[0].type = TRANSLATE_ELEMENT_NORMAL;
key.element[0].instance_divisor = 0;
- srand48(4359025);
+ srand(4359025);
/* avoid negative values that work badly when converted to unsigned format*/
- for (i = 0; i < buffer_size / sizeof(unsigned); ++i)
- ((unsigned*)byte_buffer)[i] = mrand48() & 0x7f7f7f7f;
+ for (i = 0; i < buffer_size; ++i)
+ byte_buffer[i] = rand() & 0x7f7f7f7f;
for (i = 0; i < buffer_size / sizeof(float); ++i)
- float_buffer[i] = (float)drand48();
+ float_buffer[i] = (float)rand_double();
for (i = 0; i < buffer_size / sizeof(double); ++i)
- double_buffer[i] = drand48();
+ double_buffer[i] = rand_double();
for (output_format = 1; output_format < PIPE_FORMAT_COUNT; ++output_format)
{