1ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines/* 2ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * Copyright (C) 2010 The Android Open Source Project 3ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * 4ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 5ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * you may not use this file except in compliance with the License. 6ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * You may obtain a copy of the License at 7ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * 8ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * http://www.apache.org/licenses/LICENSE-2.0 9ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * 10ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * Unless required by applicable law or agreed to in writing, software 11ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 12ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * See the License for the specific language governing permissions and 14ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines * limitations under the License. 15ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines */ 16ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines 17ff4d70872aa48675a06fc4673c732860c1619758Stephen Hinespackage com.android.rs.test; 18ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines 196b32fab1dbfd8bc1cc176557fe0a7b2ebd4966bdShih-wei Liaoimport android.content.Context; 20ff4d70872aa48675a06fc4673c732860c1619758Stephen Hinesimport android.content.res.Resources; 21ff4d70872aa48675a06fc4673c732860c1619758Stephen Hinesimport android.renderscript.*; 22ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines 23ff4d70872aa48675a06fc4673c732860c1619758Stephen Hinespublic class UT_primitives extends UnitTest { 24ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines private Resources mRes; 25ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines 266b32fab1dbfd8bc1cc176557fe0a7b2ebd4966bdShih-wei Liao protected UT_primitives(RSTestCore rstc, Resources res, Context ctx) { 276b32fab1dbfd8bc1cc176557fe0a7b2ebd4966bdShih-wei Liao super(rstc, "Primitives", ctx); 28ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines mRes = res; 29ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines } 30ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines 31031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines private boolean initializeGlobals(ScriptC_primitives s) { 32031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines float pF = s.get_floatTest(); 33031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pF != 1.99f) { 34031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 35031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 36031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.set_floatTest(2.99f); 37031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 38031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines double pD = s.get_doubleTest(); 39031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pD != 2.05) { 40031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 41031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 42031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.set_doubleTest(3.05); 43031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 44031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines byte pC = s.get_charTest(); 45031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pC != -8) { 46031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 47031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 48031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.set_charTest((byte)-16); 49031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 50031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines short pS = s.get_shortTest(); 51031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pS != -16) { 52031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 53031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 54031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.set_shortTest((short)-32); 55031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 56031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines int pI = s.get_intTest(); 57031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pI != -32) { 58031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 59031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 60031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.set_intTest(-64); 61031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 622332340b0e4b4202962b5307194addf44cf88236Stephen Hines long pL = s.get_longTest(); 63031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pL != 17179869184l) { 64031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 65031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 662332340b0e4b4202962b5307194addf44cf88236Stephen Hines s.set_longTest(17179869185l); 67031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 6852d836332f6aae74ed97fda1b53681f36710af64Stephen Hines long puL = s.get_ulongTest(); 6952d836332f6aae74ed97fda1b53681f36710af64Stephen Hines if (puL != 4611686018427387904L) { 7052d836332f6aae74ed97fda1b53681f36710af64Stephen Hines return false; 7152d836332f6aae74ed97fda1b53681f36710af64Stephen Hines } 7252d836332f6aae74ed97fda1b53681f36710af64Stephen Hines s.set_ulongTest(4611686018427387903L); 7352d836332f6aae74ed97fda1b53681f36710af64Stephen Hines 7452d836332f6aae74ed97fda1b53681f36710af64Stephen Hines 75031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines long pLL = s.get_longlongTest(); 76031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (pLL != 68719476736L) { 77031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return false; 78031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 79031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.set_longlongTest(68719476735L); 8052d836332f6aae74ed97fda1b53681f36710af64Stephen Hines 8152d836332f6aae74ed97fda1b53681f36710af64Stephen Hines long pu64 = s.get_uint64_tTest(); 8252d836332f6aae74ed97fda1b53681f36710af64Stephen Hines if (pu64 != 117179869184l) { 8352d836332f6aae74ed97fda1b53681f36710af64Stephen Hines return false; 8452d836332f6aae74ed97fda1b53681f36710af64Stephen Hines } 8552d836332f6aae74ed97fda1b53681f36710af64Stephen Hines s.set_uint64_tTest(117179869185l); 86031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 87031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines return true; 88031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 89031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines 90ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines public void run() { 916b32fab1dbfd8bc1cc176557fe0a7b2ebd4966bdShih-wei Liao RenderScript pRS = RenderScript.create(mCtx); 9258b2b2412864891686bf0e2c9940ad2b58808822Stephen Hines ScriptC_primitives s = new ScriptC_primitives(pRS); 93bf6ef8d78fffbce6c1849a4a28fb3f4401ad039eJason Sams pRS.setMessageHandler(mRsMessage); 94031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines if (!initializeGlobals(s)) { 95071abd1a5c0b405cd7989a625f34a1e5516db8b7Stephen Hines failTest(); 96031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } else { 97031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines s.invoke_primitives_test(0, 0); 98031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines pRS.finish(); 99031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines waitForMessage(); 100031ec58cfc7a20927302a5300eba3f5fc1709b50Stephen Hines } 101ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines pRS.destroy(); 102ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines } 103ff4d70872aa48675a06fc4673c732860c1619758Stephen Hines} 104