diff --git a/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java b/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java index da64e021a0fa1..cd8f814898ab1 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java +++ b/libs/rs/java/tests/src/com/android/rs/test/RSTestCore.java @@ -51,8 +51,8 @@ public class RSTestCore { unitTests = new ArrayList(); - unitTests.add(new UT_primitives(mRes)); - unitTests.add(new UT_fp_mad(mRes)); + unitTests.add(new UT_primitives(this, mRes)); + unitTests.add(new UT_fp_mad(this, mRes)); /* unitTests.add(new UnitTest("", 1)); unitTests.add(new UnitTest()); @@ -62,23 +62,26 @@ public class RSTestCore { UnitTest [] uta = new UnitTest[unitTests.size()]; uta = unitTests.toArray(uta); - /* Run the actual unit tests */ - ListIterator test_iter = unitTests.listIterator(); - while (test_iter.hasNext()) { - UnitTest t = test_iter.next(); - t.start(); - try { - t.join(); - } catch (InterruptedException e) { - } - } - mListAllocs = new ScriptField_ListAllocs_s(mRS, uta.length); for (int i = 0; i < uta.length; i++) { ScriptField_ListAllocs_s.Item listElem = new ScriptField_ListAllocs_s.Item(); listElem.text = Allocation.createFromString(mRS, uta[i].name); listElem.result = uta[i].result; mListAllocs.set(listElem, i, false); + uta[i].setItem(listElem); + } + + /* Run the actual unit tests */ + ListIterator test_iter = unitTests.listIterator(); + while (test_iter.hasNext()) { + UnitTest t = test_iter.next(); + t.start(); + /* + try { + t.join(); + } catch (InterruptedException e) { + } + */ } mListAllocs.copyAll(); @@ -92,6 +95,15 @@ public class RSTestCore { mRS.finish(); } + public void refreshTestResults() { + if (mListAllocs != null && mScript != null && mRS != null) { + mListAllocs.copyAll(); + + mScript.bind_gList(mListAllocs); + mRS.contextBindRootScript(mScript); + } + } + public void newTouchPosition(float x, float y, float pressure, int id) { } diff --git a/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java b/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java index c4e57e87cb6e0..8391fb344e979 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java +++ b/libs/rs/java/tests/src/com/android/rs/test/UT_fp_mad.java @@ -22,8 +22,8 @@ import android.renderscript.*; public class UT_fp_mad extends UnitTest { private Resources mRes; - protected UT_fp_mad(Resources res) { - super("Fp_Mad"); + protected UT_fp_mad(RSTestCore rstc, Resources res) { + super(rstc, "Fp_Mad"); mRes = res; } diff --git a/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java b/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java index 629f0b2a9ef78..bef6ec52fa7e4 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java +++ b/libs/rs/java/tests/src/com/android/rs/test/UT_primitives.java @@ -22,8 +22,8 @@ import android.renderscript.*; public class UT_primitives extends UnitTest { private Resources mRes; - protected UT_primitives(Resources res) { - super("Primitives"); + protected UT_primitives(RSTestCore rstc, Resources res) { + super(rstc, "Primitives"); mRes = res; } @@ -33,8 +33,6 @@ public class UT_primitives extends UnitTest { pRS.mMessageCallback = mRsMessage; s.invoke_primitives_test(0, 0); pRS.finish(); - //android.util.Log.v("UT", "After pRS.finish"); - pRS.destroy(); } } diff --git a/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java b/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java index 5b5577914b9ea..d98b763356172 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java +++ b/libs/rs/java/tests/src/com/android/rs/test/UnitTest.java @@ -20,23 +20,30 @@ import android.renderscript.RenderScript.RSMessage; public class UnitTest extends Thread { public String name; public int result; + private ScriptField_ListAllocs_s.Item mItem; + private RSTestCore mRSTC; /* These constants must match those in shared.rsh */ public static final int RS_MSG_TEST_PASSED = 100; public static final int RS_MSG_TEST_FAILED = 101; - protected UnitTest(String n, int initResult) { + protected UnitTest(RSTestCore rstc, String n, int initResult) { super(); + mRSTC = rstc; name = n; result = initResult; } - protected UnitTest(String n) { - this(n, 0); + protected UnitTest(RSTestCore rstc, String n) { + this(rstc, n, 0); + } + + protected UnitTest(RSTestCore rstc) { + this (rstc, ""); } protected UnitTest() { - this (""); + this (null); } protected RSMessage mRsMessage = new RSMessage() { @@ -51,9 +58,18 @@ public class UnitTest extends Thread { default: break; } + + if (mItem != null) { + mItem.result = result; + mRSTC.refreshTestResults(); + } } }; + public void setItem(ScriptField_ListAllocs_s.Item item) { + mItem = item; + } + public void run() { /* This method needs to be implemented for each subclass */ } diff --git a/libs/rs/java/tests/src/com/android/rs/test/rslist.rs b/libs/rs/java/tests/src/com/android/rs/test/rslist.rs index fcea3abfb6ff8..72d185004cfb9 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/rslist.rs +++ b/libs/rs/java/tests/src/com/android/rs/test/rslist.rs @@ -71,8 +71,10 @@ int root(int launchID) { case -1: /* Failed */ rsgFontColor(0.9f, 0.5f, 0.5f, 1.0f); break; - case 0: /* Unknown */ - default: + case 0: /* Still Testing */ + rsgFontColor(0.9f, 0.9f, 0.5f, 1.0f); + break; + default: /* Unknown */ rsgFontColor(0.9f, 0.9f, 0.9f, 1.0f); break; }