Index: tests/Sk64Test.cpp |
diff --git a/tests/Sk64Test.cpp b/tests/Sk64Test.cpp |
index 1777d24d103ec6842cc9e212f3ca0ef69853c330..589801b272c2d7d5d86c700b2daee77b13140d45 100644 |
--- a/tests/Sk64Test.cpp |
+++ b/tests/Sk64Test.cpp |
@@ -25,9 +25,14 @@ static void bool_table_test(skiatest::Reporter* reporter, |
REPORTER_ASSERT(reporter, a.getSign() == table.sign); |
} |
-void Sk64::UnitTestWithReporter(void* reporterParam) { |
- skiatest::Reporter* reporter = (skiatest::Reporter*)reporterParam; |
+#ifdef SkLONGLONG |
+ static SkLONGLONG asLL(const Sk64& a) |
+ { |
+ return ((SkLONGLONG)a.fHi << 32) | a.fLo; |
+ } |
+#endif |
+DEF_TEST(Sk64Test, reporter) { |
enum BoolTests { |
kZero_BoolTest, |
kPos_BoolTest, |
@@ -91,7 +96,9 @@ void Sk64::UnitTestWithReporter(void* reporterParam) { |
REPORTER_ASSERT(reporter, c.get32() == aa - bb); |
} |
- for (i = 0; i < 1000; i++) { |
+#ifdef SkLONGLONG |
+ for (i = 0; i < 1000; i++) |
+ { |
rand.next64(&a); //a.fHi >>= 1; // avoid overflow |
rand.next64(&b); //b.fHi >>= 1; // avoid overflow |
@@ -106,8 +113,8 @@ void Sk64::UnitTestWithReporter(void* reporterParam) { |
b.fHi = 0; |
} |
- int64_t aa = a.as64(); |
- int64_t bb = b.as64(); |
+ SkLONGLONG aa = asLL(a); |
+ SkLONGLONG bb = asLL(b); |
REPORTER_ASSERT(reporter, (a < b) == (aa < bb)); |
REPORTER_ASSERT(reporter, (a <= b) == (aa <= bb)); |
@@ -117,31 +124,31 @@ void Sk64::UnitTestWithReporter(void* reporterParam) { |
REPORTER_ASSERT(reporter, (a != b) == (aa != bb)); |
c = a; c.add(b); |
- REPORTER_ASSERT(reporter, c.as64() == aa + bb); |
+ REPORTER_ASSERT(reporter, asLL(c) == aa + bb); |
c = a; c.sub(b); |
- REPORTER_ASSERT(reporter, c.as64() == aa - bb); |
+ REPORTER_ASSERT(reporter, asLL(c) == aa - bb); |
c = a; c.rsub(b); |
- REPORTER_ASSERT(reporter, c.as64() == bb - aa); |
+ REPORTER_ASSERT(reporter, asLL(c) == bb - aa); |
c = a; c.negate(); |
- REPORTER_ASSERT(reporter, c.as64() == -aa); |
+ REPORTER_ASSERT(reporter, asLL(c) == -aa); |
int bits = rand.nextU() & 63; |
c = a; c.shiftLeft(bits); |
- REPORTER_ASSERT(reporter, c.as64() == (aa << bits)); |
+ REPORTER_ASSERT(reporter, asLL(c) == (aa << bits)); |
c = a; c.shiftRight(bits); |
- REPORTER_ASSERT(reporter, c.as64() == (aa >> bits)); |
+ REPORTER_ASSERT(reporter, asLL(c) == (aa >> bits)); |
c = a; c.roundRight(bits); |
- int64_t tmp; |
+ SkLONGLONG tmp; |
tmp = aa; |
if (bits > 0) |
- tmp += (int64_t)1 << (bits - 1); |
- REPORTER_ASSERT(reporter, c.as64() == (tmp >> bits)); |
+ tmp += (SkLONGLONG)1 << (bits - 1); |
+ REPORTER_ASSERT(reporter, asLL(c) == (tmp >> bits)); |
c.setMul(a.fHi, b.fHi); |
- tmp = (int64_t)a.fHi * b.fHi; |
- REPORTER_ASSERT(reporter, c.as64() == tmp); |
+ tmp = (SkLONGLONG)a.fHi * b.fHi; |
+ REPORTER_ASSERT(reporter, asLL(c) == tmp); |
} |
@@ -153,11 +160,11 @@ void Sk64::UnitTestWithReporter(void* reporterParam) { |
while (denom == 0) |
denom = rand.nextS(); |
wide.setMul(rand.nextS(), rand.nextS()); |
- int64_t check = wide.getLongLong(); |
+ SkLONGLONG check = wide.getLongLong(); |
wide.div(denom, Sk64::kTrunc_DivOption); |
check /= denom; |
- int64_t w = wide.getLongLong(); |
+ SkLONGLONG w = wide.getLongLong(); |
REPORTER_ASSERT(reporter, check == w); |
@@ -168,8 +175,5 @@ void Sk64::UnitTestWithReporter(void* reporterParam) { |
int diff = denom - ck; |
REPORTER_ASSERT(reporter, SkAbs32(diff) <= 1); |
} |
-} |
- |
-DEF_TEST(Sk64Test, reporter) { |
- Sk64::UnitTestWithReporter(reporter); |
+#endif |
} |