141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines/* 241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * Copyright (C) 2010 The Android Open Source Project 341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * 441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * you may not use this file except in compliance with the License. 641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * You may obtain a copy of the License at 741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * 841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * http://www.apache.org/licenses/LICENSE-2.0 941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * 1041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * Unless required by applicable law or agreed to in writing, software 1141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 1241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * See the License for the specific language governing permissions and 1441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * limitations under the License. 1541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines */ 1641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 1741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinespackage com.android.rs.test_v14; 1841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 1941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinesimport android.content.Context; 2041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinesimport android.content.res.Resources; 2141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinesimport android.renderscript.*; 2241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 2341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinespublic class UT_primitives extends UnitTest { 2441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private Resources mRes; 2541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 2641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines protected UT_primitives(RSTestCore rstc, Resources res, Context ctx) { 2741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines super(rstc, "Primitives", ctx); 2841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines mRes = res; 2941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 3041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 3141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private boolean initializeGlobals(ScriptC_primitives s) { 3241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines float pF = s.get_floatTest(); 3341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pF != 1.99f) { 3441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 3541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 3641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_floatTest(2.99f); 3741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 3841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines double pD = s.get_doubleTest(); 3941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pD != 2.05) { 4041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 4141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 4241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_doubleTest(3.05); 4341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 4441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines byte pC = s.get_charTest(); 4541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pC != -8) { 4641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 4741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 4841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_charTest((byte)-16); 4941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 5041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines short pS = s.get_shortTest(); 5141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pS != -16) { 5241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 5341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 5441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_shortTest((short)-32); 5541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 5641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines int pI = s.get_intTest(); 5741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pI != -32) { 5841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 5941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 6041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_intTest(-64); 6141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 6241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines long pL = s.get_longTest(); 6341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pL != 17179869184l) { 6441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 6541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 6641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_longTest(17179869185l); 6741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 6841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines long puL = s.get_ulongTest(); 6941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (puL != 4611686018427387904L) { 7041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 7141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 7241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_ulongTest(4611686018427387903L); 7341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 7441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 7541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines long pLL = s.get_longlongTest(); 7641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pLL != 68719476736L) { 7741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 7841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 7941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_longlongTest(68719476735L); 8041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 8141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines long pu64 = s.get_uint64_tTest(); 8241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (pu64 != 117179869184l) { 8341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return false; 8441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 8541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_uint64_tTest(117179869185l); 8641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 8741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return true; 8841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 8941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 9041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines public void run() { 9141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines RenderScript pRS = RenderScript.create(mCtx); 9241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines ScriptC_primitives s = new ScriptC_primitives(pRS, mRes, R.raw.primitives); 9341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.setMessageHandler(mRsMessage); 9441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines if (!initializeGlobals(s)) { 9541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines // initializeGlobals failed 9641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines result = -1; 9741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } else { 9841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.invoke_primitives_test(0, 0); 9941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.finish(); 10041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines waitForMessage(); 10141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 10241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.destroy(); 10341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 10441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines} 105