1572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams/* 2572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * Copyright (C) 2010 The Android Open Source Project 3572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 4572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * you may not use this file except in compliance with the License. 6572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * You may obtain a copy of the License at 7572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 8572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 10572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * Unless required by applicable law or agreed to in writing, software 11572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * See the License for the specific language governing permissions and 14572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * limitations under the License. 15572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams */ 16572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 17572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samspackage com.android.rs.test; 18572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 19572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.content.Context; 20572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.content.res.Resources; 21572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.renderscript.*; 22572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 23572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samspublic class UT_primitives extends UnitTest { 24572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private Resources mRes; 25572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 26572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams protected UT_primitives(RSTestCore rstc, Resources res, Context ctx) { 27572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams super(rstc, "Primitives", ctx); 28572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mRes = res; 29572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 30572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 31572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private boolean initializeGlobals(ScriptC_primitives s) { 32572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams float pF = s.get_floatTest(); 33572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pF != 1.99f) { 34572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 35572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 36572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_floatTest(2.99f); 37572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 38572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams double pD = s.get_doubleTest(); 39572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pD != 2.05) { 40572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 41572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 42572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_doubleTest(3.05); 43572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 44572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams byte pC = s.get_charTest(); 45572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pC != -8) { 46572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 47572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 48572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_charTest((byte)-16); 49572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 50572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams short pS = s.get_shortTest(); 51572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pS != -16) { 52572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 53572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 54572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_shortTest((short)-32); 55572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 56572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams int pI = s.get_intTest(); 57572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pI != -32) { 58572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 59572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 60572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_intTest(-64); 61572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 62572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams long pL = s.get_longTest(); 63572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pL != 17179869184l) { 64572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 65572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 66572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_longTest(17179869185l); 67572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 68572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams long puL = s.get_ulongTest(); 69572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (puL != 4611686018427387904L) { 70572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 71572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 72572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_ulongTest(4611686018427387903L); 73572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 74572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 75572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams long pLL = s.get_longlongTest(); 76572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pLL != 68719476736L) { 77572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 78572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 79572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_longlongTest(68719476735L); 80572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 81572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams long pu64 = s.get_uint64_tTest(); 82572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (pu64 != 117179869184l) { 83572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return false; 84572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 85572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.set_uint64_tTest(117179869185l); 86572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 87572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return true; 88572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 89572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 90572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void run() { 91572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams RenderScript pRS = RenderScript.create(mCtx); 92572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams ScriptC_primitives s = new ScriptC_primitives(pRS); 93572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams pRS.setMessageHandler(mRsMessage); 94572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams if (!initializeGlobals(s)) { 95572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams failTest(); 96572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } else { 97572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams s.invoke_primitives_test(0, 0); 98572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams pRS.finish(); 99572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams waitForMessage(); 100572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 101572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams pRS.destroy(); 102572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 103572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams} 104