RSTestCorepublic class RSTestCore extends Object
Fields Summary |
---|
int | mWidth | int | mHeight | android.content.Context | mCtx | private android.content.res.Resources | mRes | private RenderScriptGL | mRS | private Font | mFont | ScriptField_ListAllocs_s | mListAllocs | int | mLastX | int | mLastY | private ScriptC_rslist | mScript | private ArrayList | unitTests | private ListIterator | test_iter | private UnitTest | activeTest | private boolean | stopTesting | private Timer | mTimer | public static final int | RS_TIMER_PERIOD |
Methods Summary |
---|
public void | checkAndRunNextTest()
if (activeTest != null) {
if (!activeTest.isAlive()) {
/* Properly clean up on our last test */
try {
activeTest.join();
}
catch (InterruptedException e) {
}
activeTest = null;
}
}
if (!stopTesting && activeTest == null) {
if (test_iter.hasNext()) {
activeTest = test_iter.next();
activeTest.start();
/* This routine will only get called once when a new test
* should start running. The message handler in UnitTest.java
* ensures this. */
}
else {
if (mTimer != null) {
mTimer.cancel();
mTimer.purge();
mTimer = null;
}
}
}
| public void | cleanup()
stopTesting = true;
UnitTest t = activeTest;
/* Stop periodic refresh of testing */
if (mTimer != null) {
mTimer.cancel();
mTimer.purge();
mTimer = null;
}
/* Wait to exit until we finish the current test */
if (t != null) {
try {
t.join();
}
catch (InterruptedException e) {
}
t = null;
}
| public void | init(RenderScriptGL rs, android.content.res.Resources res, int width, int height)
mRS = rs;
mRes = res;
mWidth = width;
mHeight = height;
stopTesting = false;
mScript = new ScriptC_rslist(mRS);
unitTests = new ArrayList<UnitTest>();
unitTests.add(new UT_primitives(this, mRes, mCtx));
unitTests.add(new UT_vector(this, mRes, mCtx));
unitTests.add(new UT_rsdebug(this, mRes, mCtx));
unitTests.add(new UT_rstime(this, mRes, mCtx));
unitTests.add(new UT_rstypes(this, mRes, mCtx));
unitTests.add(new UT_alloc(this, mRes, mCtx));
unitTests.add(new UT_refcount(this, mRes, mCtx));
unitTests.add(new UT_foreach(this, mRes, mCtx));
unitTests.add(new UT_math(this, mRes, mCtx));
unitTests.add(new UT_fp_mad(this, mRes, mCtx));
/*
unitTests.add(new UnitTest(null, "<Pass>", 1));
unitTests.add(new UnitTest());
unitTests.add(new UnitTest(null, "<Fail>", -1));
for (int i = 0; i < 20; i++) {
unitTests.add(new UnitTest(null, "<Pass>", 1));
}
*/
UnitTest [] uta = new UnitTest[unitTests.size()];
uta = unitTests.toArray(uta);
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, Allocation.USAGE_SCRIPT);
listElem.result = uta[i].result;
mListAllocs.set(listElem, i, false);
uta[i].setItem(listElem);
}
mListAllocs.copyAll();
mScript.bind_gList(mListAllocs);
mFont = Font.create(mRS, mRes, "serif", Font.Style.BOLD, 8);
mScript.set_gFont(mFont);
mRS.bindRootScript(mScript);
test_iter = unitTests.listIterator();
refreshTestResults(); /* Kick off the first test */
TimerTask pTask = new TimerTask() {
public void run() {
refreshTestResults();
}
};
mTimer = new Timer();
mTimer.schedule(pTask, RS_TIMER_PERIOD, RS_TIMER_PERIOD);
| public void | newTouchPosition(float x, float y, float pressure, int id)
| public void | onActionDown(int x, int y)
mScript.set_gDY(0.0f);
mLastX = x;
mLastY = y;
refreshTestResults();
| public void | onActionMove(int x, int y)
int dx = mLastX - x;
int dy = mLastY - y;
if (Math.abs(dy) <= 2) {
dy = 0;
}
mScript.set_gDY(dy);
mLastX = x;
mLastY = y;
refreshTestResults();
| public void | refreshTestResults()
checkAndRunNextTest();
if (mListAllocs != null && mScript != null && mRS != null) {
mListAllocs.copyAll();
mScript.bind_gList(mListAllocs);
mRS.bindRootScript(mScript);
}
|
|