diff options
-rw-r--r-- | java/tests/src/com/android/rs/test/UT_primitives.java | 58 | ||||
-rw-r--r-- | java/tests/src/com/android/rs/test/UnitTest.java | 22 | ||||
-rw-r--r-- | java/tests/src/com/android/rs/test/primitives.rs | 12 | ||||
-rw-r--r-- | rs.spec | 6 | ||||
-rw-r--r-- | rsScript.cpp | 6 |
5 files changed, 85 insertions, 19 deletions
diff --git a/java/tests/src/com/android/rs/test/UT_primitives.java b/java/tests/src/com/android/rs/test/UT_primitives.java index fb355dd4..32b55d91 100644 --- a/java/tests/src/com/android/rs/test/UT_primitives.java +++ b/java/tests/src/com/android/rs/test/UT_primitives.java @@ -27,13 +27,65 @@ public class UT_primitives extends UnitTest { mRes = res; } + private boolean initializeGlobals(ScriptC_primitives s) { + float pF = s.get_floatTest(); + if (pF != 1.99f) { + return false; + } + s.set_floatTest(2.99f); + + double pD = s.get_doubleTest(); + if (pD != 2.05) { + return false; + } + s.set_doubleTest(3.05); + + byte pC = s.get_charTest(); + if (pC != -8) { + return false; + } + s.set_charTest((byte)-16); + + short pS = s.get_shortTest(); + if (pS != -16) { + return false; + } + s.set_shortTest((short)-32); + + int pI = s.get_intTest(); + if (pI != -32) { + return false; + } + s.set_intTest(-64); + + /*long pL = s.get_longTest(); + if (pL != 17179869184l) { + return false; + } + s.set_longTest(17179869185l);*/ + + long pLL = s.get_longlongTest(); + if (pLL != 68719476736L) { + return false; + } + s.set_longlongTest(68719476735L); + //s.set_longlongTest(0); + + return true; + } + public void run() { RenderScript pRS = RenderScript.create(); ScriptC_primitives s = new ScriptC_primitives(pRS, mRes, R.raw.primitives, true); pRS.mMessageCallback = mRsMessage; - s.invoke_primitives_test(0, 0); - pRS.finish(); - waitForMessage(); + if (!initializeGlobals(s)) { + // initializeGlobals failed + result = -1; + } else { + s.invoke_primitives_test(0, 0); + pRS.finish(); + waitForMessage(); + } pRS.destroy(); } } diff --git a/java/tests/src/com/android/rs/test/UnitTest.java b/java/tests/src/com/android/rs/test/UnitTest.java index c9d88a6e..90bb8a38 100644 --- a/java/tests/src/com/android/rs/test/UnitTest.java +++ b/java/tests/src/com/android/rs/test/UnitTest.java @@ -55,16 +55,18 @@ public class UnitTest extends Thread { protected RSMessage mRsMessage = new RSMessage() { public void run() { - switch (mID) { - case RS_MSG_TEST_PASSED: - result = 1; - break; - case RS_MSG_TEST_FAILED: - result = -1; - break; - default: - android.util.Log.v("RenderScript", "Unit test got unexpected message"); - return; + if (result == 0) { + switch (mID) { + case RS_MSG_TEST_PASSED: + result = 1; + break; + case RS_MSG_TEST_FAILED: + result = -1; + break; + default: + android.util.Log.v("RenderScript", "Unit test got unexpected message"); + return; + } } if (mItem != null) { diff --git a/java/tests/src/com/android/rs/test/primitives.rs b/java/tests/src/com/android/rs/test/primitives.rs index ac0dc12e..2db82dad 100644 --- a/java/tests/src/com/android/rs/test/primitives.rs +++ b/java/tests/src/com/android/rs/test/primitives.rs @@ -20,13 +20,13 @@ static bool test_primitive_types(uint32_t index) { bool failed = false; start(); - _RS_ASSERT(floatTest == 1.99f); - _RS_ASSERT(doubleTest == 2.05); - _RS_ASSERT(charTest == -8); - _RS_ASSERT(shortTest == -16); - _RS_ASSERT(intTest == -32); + _RS_ASSERT(floatTest == 2.99f); + _RS_ASSERT(doubleTest == 3.05); + _RS_ASSERT(charTest == -16); + _RS_ASSERT(shortTest == -32); + _RS_ASSERT(intTest == -64); _RS_ASSERT(longTest == 17179869184l); - _RS_ASSERT(longlongTest == 68719476736l); + _RS_ASSERT(longlongTest == 68719476735l); _RS_ASSERT(ucharTest == 8); _RS_ASSERT(ushortTest == 16); @@ -338,6 +338,12 @@ ScriptSetVarI { param int value } +ScriptSetVarJ { + param RsScript s + param uint32_t slot + param int64_t value + } + ScriptSetVarF { param RsScript s param uint32_t slot diff --git a/rsScript.cpp b/rsScript.cpp index c2f96891..c5632b53 100644 --- a/rsScript.cpp +++ b/rsScript.cpp @@ -115,6 +115,12 @@ void rsi_ScriptSetVarI(Context *rsc, RsScript vs, uint32_t slot, int value) s->setVar(slot, &value, sizeof(value)); } +void rsi_ScriptSetVarJ(Context *rsc, RsScript vs, uint32_t slot, long long value) +{ + Script *s = static_cast<Script *>(vs); + s->setVar(slot, &value, sizeof(value)); +} + void rsi_ScriptSetVarF(Context *rsc, RsScript vs, uint32_t slot, float value) { Script *s = static_cast<Script *>(vs); |