Change random number generator for 'tests' to SkMWCRandom. Also removes some 
unused headers and fixes a couple of bugs exposed by changing the random 
number generator:

First, the function SkMatrix::getMaxStretch() had an error where it was testing
the square of a number against near-zero. This led to it occasionally taking a
cheaper but imprecise path for computing the eigenvalues of the matrix. It's 
been replaced with a check against the square of SK_ScalarNearlyZero. 

The second case was a failure in ClipStackTest, where it hit the rare case of 
a practically empty clip stack (it has a single Union) and we set a tight 
bounds. The bounds rect doesn't get set by GrReducedClip::ReduceClipStack() in 
this case, so when it clips the reduced stack it's clipping against garbage, 
and the resulting regions don't match. The solution is to initialize the 
tightBounds rect.


git-svn-id: http://skia.googlecode.com/svn/trunk@7952 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkFloat.cpp b/src/core/SkFloat.cpp
index b5cc4f1..721d8ec 100644
--- a/src/core/SkFloat.cpp
+++ b/src/core/SkFloat.cpp
@@ -291,7 +291,7 @@
     d.setAdd(c, b);
     SkDebugf("SkFloat: %d + %d = %d\n", c.getInt(), b.getInt(), d.getInt());
 
-    SkRandom    rand;
+    SkMWCRandom    rand;
 
     int i;
     for (i = 0; i < 1000; i++)
diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp
index 873d546..8e7c7cd 100644
--- a/src/core/SkGraphics.cpp
+++ b/src/core/SkGraphics.cpp
@@ -19,7 +19,6 @@
 #include "SkPath.h"
 #include "SkPathEffect.h"
 #include "SkPixelRef.h"
-#include "SkRandom.h"
 #include "SkRefCnt.h"
 #include "SkRTConf.h"
 #include "SkScalerContext.h"
diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp
index d420dd3..d9675f3 100644
--- a/src/core/SkMatrix.cpp
+++ b/src/core/SkMatrix.cpp
@@ -1808,7 +1808,7 @@
     SkScalar largerRoot;
     SkScalar bSqd = SkScalarMul(b,b);
     // if upper left 2x2 is orthogonal save some math
-    if (bSqd <= SK_ScalarNearlyZero) {
+    if (bSqd <= SK_ScalarNearlyZero*SK_ScalarNearlyZero) {
         largerRoot = SkMaxScalar(a, c);
     } else {
         SkScalar aminusc = a - c;
diff --git a/src/gpu/GrRedBlackTree.h b/src/gpu/GrRedBlackTree.h
index 2ccf77f..ba03be2 100644
--- a/src/gpu/GrRedBlackTree.h
+++ b/src/gpu/GrRedBlackTree.h
@@ -950,7 +950,7 @@
     GrRedBlackTree<int> tree;
     typedef GrRedBlackTree<int>::Iter iter;
 
-    SkRandom r;
+    SkMWCRandom r;
 
     int count[100] = {0};
     // add 10K ints
diff --git a/src/gpu/gl/GrGLEffectMatrix.h b/src/gpu/gl/GrGLEffectMatrix.h
index 49ddceb..1a11656 100644
--- a/src/gpu/gl/GrGLEffectMatrix.h
+++ b/src/gpu/gl/GrGLEffectMatrix.h
@@ -12,7 +12,6 @@
 #include "SkMatrix.h"
 
 class GrTexture;
-class SkRandom;
 
 /**
  * This is a helper to implement a texture matrix in a GrGLEffect.
diff --git a/tests/AAClipTest.cpp b/tests/AAClipTest.cpp
index 5c1d4e1..4c4ee60 100644
--- a/tests/AAClipTest.cpp
+++ b/tests/AAClipTest.cpp
@@ -87,7 +87,7 @@
     canvas.drawColor(SK_ColorBLACK);
 }
 
-static SkIRect rand_rect(SkRandom& rand, int n) {
+static SkIRect rand_rect(SkMWCRandom& rand, int n) {
     int x = rand.nextS() % n;
     int y = rand.nextS() % n;
     int w = rand.nextU() % n;
@@ -95,7 +95,7 @@
     return SkIRect::MakeXYWH(x, y, w, h);
 }
 
-static void make_rand_rgn(SkRegion* rgn, SkRandom& rand) {
+static void make_rand_rgn(SkRegion* rgn, SkMWCRandom& rand) {
     int count = rand.nextU() % 20;
     for (int i = 0; i < count; ++i) {
         rgn->op(rand_rect(rand, 100), SkRegion::kXOR_Op);
@@ -128,7 +128,7 @@
 
 // aaclip.setRegion should create idential masks to the region
 static void test_rgn(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
     for (int i = 0; i < 1000; i++) {
         SkRegion rgn;
         make_rand_rgn(&rgn, rand);
@@ -232,7 +232,7 @@
     REPORTER_ASSERT(reporter, mask.fBounds.isEmpty());
 }
 
-static void rand_irect(SkIRect* r, int N, SkRandom& rand) {
+static void rand_irect(SkIRect* r, int N, SkMWCRandom& rand) {
     r->setXYWH(0, 0, rand.nextU() % N, rand.nextU() % N);
     int dx = rand.nextU() % (2*N);
     int dy = rand.nextU() % (2*N);
@@ -241,7 +241,7 @@
 }
 
 static void test_irect(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
 
     for (int i = 0; i < 10000; i++) {
         SkAAClip clip0, clip1;
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
index c0d16f8..57dc940 100644
--- a/tests/BlurTest.cpp
+++ b/tests/BlurTest.cpp
@@ -10,7 +10,6 @@
 #include "SkCanvas.h"
 #include "SkMath.h"
 #include "SkPaint.h"
-#include "SkRandom.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/tests/ClampRangeTest.cpp b/tests/ClampRangeTest.cpp
index fa3804e..dc52071 100644
--- a/tests/ClampRangeTest.cpp
+++ b/tests/ClampRangeTest.cpp
@@ -107,7 +107,7 @@
     test_range(ff(1)/2, ff(16384), 100);
     test_range(ff(1)/2, ff(-16384), 100);
 
-    SkRandom rand;
+    SkMWCRandom rand;
 
     // test non-overflow cases
     for (int i = 0; i < 1000000; i++) {
diff --git a/tests/ClipStackTest.cpp b/tests/ClipStackTest.cpp
index 4709d22..4de6673 100644
--- a/tests/ClipStackTest.cpp
+++ b/tests/ClipStackTest.cpp
@@ -820,7 +820,7 @@
         add_oval,
     };
 
-    SkRandom r;
+    SkMWCRandom r;
 
     for (int i = 0; i < kNumTests; ++i) {
         // Randomly generate a clip stack.
@@ -864,7 +864,7 @@
         ElementList reducedClips;
 
         GrReducedClip::InitialState initial;
-        SkIRect tBounds;
+        SkIRect tBounds(inflatedIBounds);
         SkIRect* tightBounds = r.nextBool() ? &tBounds : NULL;
         GrReducedClip::ReduceClipStack(stack,
                                        inflatedIBounds,
diff --git a/tests/ColorFilterTest.cpp b/tests/ColorFilterTest.cpp
index 4016f21..0225649 100644
--- a/tests/ColorFilterTest.cpp
+++ b/tests/ColorFilterTest.cpp
@@ -35,7 +35,7 @@
 #define ILLEGAL_MODE    ((SkXfermode::Mode)-1)
 
 static void test_asColorMode(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
 
     for (int mode = 0; mode <= SkXfermode::kLastMode; mode++) {
         SkColor color = rand.nextU();
diff --git a/tests/ColorTest.cpp b/tests/ColorTest.cpp
index a720ff4..c6e5485 100644
--- a/tests/ColorTest.cpp
+++ b/tests/ColorTest.cpp
@@ -146,7 +146,7 @@
 */
 /*
 static void test_interp(skiatest::Reporter* reporter) {
-    SkRandom r;
+    SkMWCRandom r;
 
     U8CPU a0 = 0;
     U8CPU a255 = 255;
@@ -163,7 +163,7 @@
 */
 
 static inline void test_fast_interp(skiatest::Reporter* reporter) {
-    SkRandom r;
+    SkMWCRandom r;
 
     U8CPU a0 = 0;
     U8CPU a255 = 255;
diff --git a/tests/DrawBitmapRectTest.cpp b/tests/DrawBitmapRectTest.cpp
index ce33fcf..1917004 100644
--- a/tests/DrawBitmapRectTest.cpp
+++ b/tests/DrawBitmapRectTest.cpp
@@ -12,7 +12,7 @@
 #include "SkRandom.h"
 #include "SkMatrixUtils.h"
 
-static void rand_matrix(SkMatrix* mat, SkRandom& rand, unsigned mask) {
+static void rand_matrix(SkMatrix* mat, SkMWCRandom& rand, unsigned mask) {
     mat->setIdentity();
     if (mask & SkMatrix::kTranslate_Mask) {
         mat->postTranslate(rand.nextSScalar1(), rand.nextSScalar1());
@@ -29,7 +29,7 @@
     }
 }
 
-static void rand_size(SkISize* size, SkRandom& rand) {
+static void rand_size(SkISize* size, SkMWCRandom& rand) {
     size->set(rand.nextU() & 0xFFFF, rand.nextU() & 0xFFFF);
 }
 
@@ -43,7 +43,7 @@
 
     SkMatrix mat;
     SkISize  size;
-    SkRandom rand;
+    SkMWCRandom rand;
 
     // assert: translate-only no-filter can always be treated as sprite
     for (int i = 0; i < 1000; ++i) {
diff --git a/tests/GrMemoryPoolTest.cpp b/tests/GrMemoryPoolTest.cpp
index 8660ea2..73f26a9 100644
--- a/tests/GrMemoryPoolTest.cpp
+++ b/tests/GrMemoryPoolTest.cpp
@@ -47,7 +47,7 @@
 
     SK_DECLARE_INST_COUNT_ROOT(A);
 
-    static A* Create(SkRandom* r);
+    static A* Create(SkMWCRandom* r);
 
     static void SetAllocator(size_t preallocSize, size_t minAllocSize) {
 #if SK_ENABLE_INST_COUNT
@@ -160,7 +160,7 @@
     typedef A INHERITED;
 };
 
-A* A::Create(SkRandom* r) {
+A* A::Create(SkMWCRandom* r) {
     switch (r->nextRangeU(0, 4)) {
         case 0:
             return new A;
@@ -201,7 +201,7 @@
     // number of iterations
     static const int kCheckPeriod = 500;
 
-    SkRandom r;
+    SkMWCRandom r;
     for (size_t s = 0; s < SK_ARRAY_COUNT(gSizes); ++s) {
         A::SetAllocator(gSizes[s][0], gSizes[s][1]);
         for (size_t c = 0; c < SK_ARRAY_COUNT(gCreateFraction); ++c) {
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp
index 4d957dc..95ef4be 100644
--- a/tests/InfRectTest.cpp
+++ b/tests/InfRectTest.cpp
@@ -35,7 +35,7 @@
                         gData[index].fRect.centerY() == gData[index].fCenter.y());
     }
 
-    SkRandom rand;
+    SkMWCRandom rand;
     for (int i = 0; i < 10000; ++i) {
         SkIRect r;
 
diff --git a/tests/LListTest.cpp b/tests/LListTest.cpp
index ab36ef5..7c03ab5 100644
--- a/tests/LListTest.cpp
+++ b/tests/LListTest.cpp
@@ -124,7 +124,7 @@
 static void TestTLList(skiatest::Reporter* reporter) {
     typedef SkTLList<ListElement> ElList;
     typedef ElList::Iter Iter;
-    SkRandom random;
+    SkMWCRandom random;
 
     for (int i = 1; i <= 16; i *= 2) {
 
diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp
index 7fc53a9..105a3e4 100644
--- a/tests/MathTest.cpp
+++ b/tests/MathTest.cpp
@@ -173,7 +173,7 @@
     REPORTER_ASSERT(reporter, len > 0.999f && len < 1.001f);
 }
 
-static float nextFloat(SkRandom& rand) {
+static float nextFloat(SkMWCRandom& rand) {
     SkFloatIntUnion data;
     data.fSignBitInt = rand.nextU();
     return data.fFloat;
@@ -247,7 +247,7 @@
 }
 
 static void unittest_fastfloat(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
     size_t i;
 
     static const float gFloats[] = {
@@ -368,7 +368,7 @@
         REPORTER_ASSERT(reporter, sk_float_copysign(x, y) == expected);
     }
 
-    SkRandom rand;
+    SkMWCRandom rand;
     for (int j = 0; j < 1000; j++) {
         int ix = rand.nextS();
         REPORTER_ASSERT(reporter, SkCopySign32(ix, ix) == ix);
@@ -387,7 +387,7 @@
 static void TestMath(skiatest::Reporter* reporter) {
     int         i;
     int32_t     x;
-    SkRandom    rand;
+    SkMWCRandom    rand;
 
     // these should assert
 #if 0
diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp
index 56292dc..022e401 100644
--- a/tests/MatrixTest.cpp
+++ b/tests/MatrixTest.cpp
@@ -168,7 +168,7 @@
         bool invertable = mats[i].invert(&mats[i + SK_ARRAY_COUNT(baseMats)]);
         REPORTER_ASSERT(reporter, invertable);
     }
-    SkRandom rand;
+    SkMWCRandom rand;
     for (int m = 0; m < 1000; ++m) {
         SkMatrix mat;
         mat.reset();
diff --git a/tests/PackBitsTest.cpp b/tests/PackBitsTest.cpp
index f7d4b8e..59c8a8c 100644
--- a/tests/PackBitsTest.cpp
+++ b/tests/PackBitsTest.cpp
@@ -14,7 +14,7 @@
 static const uint16_t gTest3[] = { 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, 0, 0, 1 };
 
 #include "SkRandom.h"
-static SkRandom gRand;
+static SkMWCRandom gRand;
 static void rand_fill(uint16_t buffer[], int count) {
     for (int i = 0; i < count; i++)
         buffer[i] = (uint16_t)gRand.nextU();
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index a52e540..d8da95b 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -290,7 +290,7 @@
 // Note: PathBench::ArbRoundRectBench performs almost exactly
 // the same test (but with drawing)
 static void test_arb_round_rect_is_convex(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
     SkRect r;
 
     for (int i = 0; i < 5000; ++i) {
@@ -317,7 +317,7 @@
 // Note: PathBench::ArbRoundRectBench performs almost exactly
 // the same test (but with drawing)
 static void test_arb_zero_rad_round_rect_is_rect(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
     SkRect r;
 
     for (int i = 0; i < 5000; ++i) {
@@ -452,7 +452,7 @@
 
 static void test_addPoly(skiatest::Reporter* reporter) {
     SkPoint pts[32];
-    SkRandom rand;
+    SkMWCRandom rand;
 
     for (size_t i = 0; i < SK_ARRAY_COUNT(pts); ++i) {
         pts[i].fX = rand.nextSScalar1();
@@ -1862,7 +1862,7 @@
     }
 
     // Max of 10 segments, max 3 points per segment
-    SkRandom rand(9876543);
+    SkMWCRandom rand(9876543);
     SkPoint          expectedPts[31]; // May have leading moveTo
     SkPath::Verb     expectedVerbs[22]; // May have leading moveTo
     SkPath::Verb     nextVerb;
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index 0a562cf..6adfd5a 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -73,7 +73,7 @@
     return pic;
 }
 
-static void rand_rect(SkRect* rect, SkRandom& rand, SkScalar W, SkScalar H) {
+static void rand_rect(SkRect* rect, SkMWCRandom& rand, SkScalar W, SkScalar H) {
     rect->fLeft   = rand.nextRangeScalar(-W, 2*W);
     rect->fTop    = rand.nextRangeScalar(-H, 2*H);
     rect->fRight  = rect->fLeft + rand.nextRangeScalar(0, W);
@@ -176,7 +176,7 @@
         drawbitmap_proc, drawbitmaprect_proc, drawshader_proc
     };
 
-    SkRandom rand;
+    SkMWCRandom rand;
     for (size_t k = 0; k < SK_ARRAY_COUNT(procs); ++k) {
         SkAutoTUnref<SkPicture> pic(record_bitmaps(bm, pos, N, procs[k]));
 
@@ -259,7 +259,7 @@
 }
 #endif
 
-static void rand_op(SkCanvas* canvas, SkRandom& rand) {
+static void rand_op(SkCanvas* canvas, SkMWCRandom& rand) {
     SkPaint paint;
     SkRect rect = SkRect::MakeWH(50, 50);
 
@@ -280,10 +280,10 @@
 }
 
 static void test_peephole() {
-    SkRandom rand;
+    SkMWCRandom rand;
 
     for (int j = 0; j < 100; j++) {
-        SkRandom rand2(rand.getSeed()); // remember the seed
+        SkMWCRandom rand2(rand); // remember the seed
 
         SkPicture picture;
         SkCanvas* canvas = picture.beginRecording(100, 100);
@@ -292,6 +292,8 @@
             rand_op(canvas, rand);
         }
         picture.endRecording();
+
+        rand = rand2;
     }
 
     {
diff --git a/tests/RTreeTest.cpp b/tests/RTreeTest.cpp
index 6962c89..6296c4e 100644
--- a/tests/RTreeTest.cpp
+++ b/tests/RTreeTest.cpp
@@ -23,7 +23,7 @@
     void* data;
 };
 
-static SkIRect random_rect(SkRandom& rand) {
+static SkIRect random_rect(SkMWCRandom& rand) {
     SkIRect rect = {0,0,0,0};
     while (rect.isEmpty()) {
         rect.fLeft   = rand.nextS() % 1000;
@@ -35,7 +35,7 @@
     return rect;
 }
 
-static void random_data_rects(SkRandom& rand, DataRect out[], int n) {
+static void random_data_rects(SkMWCRandom& rand, DataRect out[], int n) {
     for (int i = 0; i < n; ++i) {
         out[i].rect = random_rect(rand);
         out[i].data = reinterpret_cast<void*>(i);
@@ -68,7 +68,7 @@
     return found == expected;
 }
 
-static void runQueries(skiatest::Reporter* reporter, SkRandom& rand, DataRect rects[],
+static void runQueries(skiatest::Reporter* reporter, SkMWCRandom& rand, DataRect rects[],
                        SkRTree& tree) {
     for (size_t i = 0; i < NUM_QUERIES; ++i) {
         SkTDArray<void*> hits;
@@ -80,7 +80,7 @@
 
 static void TestRTree(skiatest::Reporter* reporter) {
     DataRect rects[NUM_RECTS];
-    SkRandom rand;
+    SkMWCRandom rand;
     SkRTree* rtree = SkRTree::Create(MIN_CHILDREN, MAX_CHILDREN);
     SkAutoUnref au(rtree);
     REPORTER_ASSERT(reporter, NULL != rtree);
diff --git a/tests/RegionTest.cpp b/tests/RegionTest.cpp
index 5d3946e..1c06d7e 100644
--- a/tests/RegionTest.cpp
+++ b/tests/RegionTest.cpp
@@ -98,7 +98,7 @@
     H = 256
 };
 
-static SkIRect randRect(SkRandom& rand) {
+static SkIRect randRect(SkMWCRandom& rand) {
     int x = rand.nextU() % W;
     int y = rand.nextU() % H;
     int w = rand.nextU() % W;
@@ -106,7 +106,7 @@
     return SkIRect::MakeXYWH(x, y, w >> 1, h >> 1);
 }
 
-static void randRgn(SkRandom& rand, SkRegion* rgn, int n) {
+static void randRgn(SkMWCRandom& rand, SkRegion* rgn, int n) {
     rgn->setEmpty();
     for (int i = 0; i < n; ++i) {
         rgn->op(randRect(rand), SkRegion::kUnion_Op);
@@ -183,7 +183,7 @@
 static void test_proc(skiatest::Reporter* reporter,
                       void (*proc)(skiatest::Reporter*,
                                    const SkRegion& a, const SkRegion&)) {
-    SkRandom rand;
+    SkMWCRandom rand;
     for (int i = 0; i < 10000; ++i) {
         SkRegion outer;
         randRgn(rand, &outer, 8);
@@ -193,7 +193,7 @@
     }
 }
 
-static void rand_rect(SkIRect* rect, SkRandom& rand) {
+static void rand_rect(SkIRect* rect, SkMWCRandom& rand) {
     int bits = 6;
     int shift = 32 - bits;
     rect->set(rand.nextU() >> shift, rand.nextU() >> shift,
@@ -237,7 +237,7 @@
     };
     REPORTER_ASSERT(reporter, test_rects(rects, SK_ARRAY_COUNT(rects)));
 
-    SkRandom rand;
+    SkMWCRandom rand;
     for (int i = 0; i < 1000; i++) {
         SkRegion rgn0, rgn1;
 
diff --git a/tests/Sk64Test.cpp b/tests/Sk64Test.cpp
index 50b7ec7..e956cbb 100644
--- a/tests/Sk64Test.cpp
+++ b/tests/Sk64Test.cpp
@@ -75,7 +75,7 @@
 
     // Now test add/sub
 
-    SkRandom    rand;
+    SkMWCRandom    rand;
     int         i;
 
     for (i = 0; i < 1000; i++)
diff --git a/tests/SortTest.cpp b/tests/SortTest.cpp
index 28c6e68..6bfb300 100644
--- a/tests/SortTest.cpp
+++ b/tests/SortTest.cpp
@@ -15,7 +15,7 @@
     }
 }
 
-static void rand_array(SkRandom& rand, int array[], int n) {
+static void rand_array(SkMWCRandom& rand, int array[], int n) {
     for (int j = 0; j < n; j++) {
         array[j] = rand.nextS() & 0xFF;
     }
@@ -40,7 +40,7 @@
     /** The random numbers are copied into this array, sorted by an SkSort,
         then this array is compared against the reference sort. */
     int workingArray[SK_ARRAY_COUNT(randomArray)];
-    SkRandom    rand;
+    SkMWCRandom    rand;
 
     for (int i = 0; i < 10000; i++) {
         int count = rand.nextRangeU(1, SK_ARRAY_COUNT(randomArray));
diff --git a/tests/StreamTest.cpp b/tests/StreamTest.cpp
index 3174511..2b86e7b 100644
--- a/tests/StreamTest.cpp
+++ b/tests/StreamTest.cpp
@@ -17,7 +17,7 @@
 
 #define MAX_SIZE    (256 * 1024)
 
-static void random_fill(SkRandom& rand, void* buffer, size_t size) {
+static void random_fill(SkMWCRandom& rand, void* buffer, size_t size) {
     char* p = (char*)buffer;
     char* stop = p + size;
     while (p < stop) {
@@ -26,7 +26,7 @@
 }
 
 static void test_buffer(skiatest::Reporter* reporter) {
-    SkRandom rand;
+    SkMWCRandom rand;
     SkAutoMalloc am(MAX_SIZE * 2);
     char* storage = (char*)am.get();
     char* storage2 = storage + MAX_SIZE;
@@ -62,7 +62,7 @@
     static const char s[] =
         "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
     char            copy[sizeof(s)];
-    SkRandom        rand;
+    SkMWCRandom        rand;
 
     for (int i = 0; i < 65; i++) {
         char*           copyPtr = copy;
diff --git a/tests/UtilsTest.cpp b/tests/UtilsTest.cpp
index 7f27f7e..bdabb57 100644
--- a/tests/UtilsTest.cpp
+++ b/tests/UtilsTest.cpp
@@ -54,7 +54,7 @@
 
 static void test_search(skiatest::Reporter* reporter) {
     int         i, array[kSEARCH_COUNT];
-    SkRandom    rand;
+    SkMWCRandom    rand;
 
     for (i = 0; i < kSEARCH_COUNT; i++) {
         array[i] = rand.nextS();
diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp
index 33777a1..498be9c 100644
--- a/tests/Writer32Test.cpp
+++ b/tests/Writer32Test.cpp
@@ -134,7 +134,7 @@
 
     SkAutoMalloc originalData(dataSize);
     {
-        SkRandom rand(0);
+        SkMWCRandom rand(0);
         uint32_t* ptr = static_cast<uint32_t*>(originalData.get());
         uint32_t* stop = ptr + (dataSize>>2);
         while (ptr < stop) {