112398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni/* 212398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * Copyright (C) 2015 The Android Open Source Project 312398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * 412398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * Licensed under the Apache License, Version 2.0 (the "License"); 512398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * you may not use this file except in compliance with the License. 612398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * You may obtain a copy of the License at 712398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * 812398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * http://www.apache.org/licenses/LICENSE-2.0 912398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * 1012398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * Unless required by applicable law or agreed to in writing, software 1112398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * distributed under the License is distributed on an "AS IS" BASIS, 1212398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1312398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * See the License for the specific language governing permissions and 1412398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni * limitations under the License. 1512398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni */ 1612398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 1712398d81f32e5e0479d02b8608a83c75cd991bb3Yang Nipackage com.android.rs.test; 1812398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 1912398d81f32e5e0479d02b8608a83c75cd991bb3Yang Niimport android.content.Context; 20c619e32616d4f6f02fb4bc74a6e6907270fc7c4eMiao Wangimport android.renderscript.Allocation; 21c619e32616d4f6f02fb4bc74a6e6907270fc7c4eMiao Wangimport android.renderscript.Element; 22c619e32616d4f6f02fb4bc74a6e6907270fc7c4eMiao Wangimport android.renderscript.RenderScript; 23c619e32616d4f6f02fb4bc74a6e6907270fc7c4eMiao Wangimport android.renderscript.Type; 2412398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 2512398d81f32e5e0479d02b8608a83c75cd991bb3Yang Nipublic class UT_single_source_script extends UnitTest { 2612398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni private Allocation testAllocation1, testAllocation2; 2712398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 2833709e1da5e801ca331642c25a61847ced8539e8Miao Wang protected UT_single_source_script(RSTestCore rstc, Context ctx) { 2912398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni super(rstc, "SingleSourceScript", ctx); 3012398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni } 3112398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 3212398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni private void initializeGlobals(RenderScript RS, ScriptC_single_source_script s) { 3312398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni Type.Builder i32TypeBuilder = new Type.Builder(RS, Element.I32(RS)); 3412398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni int X = 1024; 3512398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni int Y = 768; 3612398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni s.set_dimX(X); 3712398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni s.set_dimY(Y); 3812398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni i32TypeBuilder.setX(X).setY(Y); 3912398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni testAllocation1 = Allocation.createTyped(RS, i32TypeBuilder.create()); 4012398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni testAllocation2 = Allocation.createTyped(RS, i32TypeBuilder.create()); 4112398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni } 4212398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 4312398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni public void run() { 4412398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni RenderScript pRS = RenderScript.create(mCtx); 4512398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni ScriptC_single_source_script s = new ScriptC_single_source_script(pRS); 4612398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni pRS.setMessageHandler(mRsMessage); 4712398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni initializeGlobals(pRS, s); 4812398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 4912398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni s.invoke_entrypoint(testAllocation1, testAllocation2); 503228dc83f2f3ca03b975e9e78885a7cad4d6ec6cYang Ni s.forEach_oldFoo(testAllocation2, testAllocation2); 513228dc83f2f3ca03b975e9e78885a7cad4d6ec6cYang Ni s.forEach_oldGoo(testAllocation2, testAllocation2); 523228dc83f2f3ca03b975e9e78885a7cad4d6ec6cYang Ni s.invoke_validate(testAllocation2); 5312398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni 5412398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni pRS.finish(); 5512398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni waitForMessage(); 561c3a11a3287d971458a021d16a54e16b37f391f9Yang Ni s.destroy(); 5712398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni pRS.destroy(); 5812398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni } 5912398d81f32e5e0479d02b8608a83c75cd991bb3Yang Ni} 60