1b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni/* 2b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * Copyright (C) 2015 The Android Open Source Project 3b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * 4b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * Licensed under the Apache License, Version 2.0 (the "License"); 5b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * you may not use this file except in compliance with the License. 6b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * You may obtain a copy of the License at 7b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * 8b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * http://www.apache.org/licenses/LICENSE-2.0 9b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * 10b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * Unless required by applicable law or agreed to in writing, software 11b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * distributed under the License is distributed on an "AS IS" BASIS, 12b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * See the License for the specific language governing permissions and 14b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni * limitations under the License. 15b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni */ 16b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 17b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Nipackage com.android.rs.test_compat; 18b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 19b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Niimport android.content.Context; 20b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Niimport android.content.res.Resources; 21b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Niimport android.support.v8.renderscript.*; 22b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 23b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Nipublic class UT_single_source_script extends UnitTest { 24b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni private Resources mRes; 25b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni private Allocation testAllocation1, testAllocation2; 26b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 27b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni protected UT_single_source_script(RSTestCore rstc, Resources res, Context ctx) { 28b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni super(rstc, "SingleSourceScript", ctx); 29b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni mRes = res; 30b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni } 31b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 32b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni private void initializeGlobals(RenderScript RS, ScriptC_single_source_script s) { 33b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni Type.Builder i32TypeBuilder = new Type.Builder(RS, Element.I32(RS)); 34b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni int X = 1024; 35b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni int Y = 768; 36b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni s.set_dimX(X); 37b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni s.set_dimY(Y); 38b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni i32TypeBuilder.setX(X).setY(Y); 39b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni testAllocation1 = Allocation.createTyped(RS, i32TypeBuilder.create()); 40b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni testAllocation2 = Allocation.createTyped(RS, i32TypeBuilder.create()); 41b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni } 42b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 43b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni public void run() { 44b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni RenderScript pRS = RenderScript.create(mCtx); 45b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni ScriptC_single_source_script s = new ScriptC_single_source_script(pRS); 46b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni pRS.setMessageHandler(mRsMessage); 47b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni initializeGlobals(pRS, s); 48b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 49b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni s.invoke_entrypoint(testAllocation1, testAllocation2); 50b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni s.forEach_oldFoo(testAllocation2, testAllocation2); 51b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni s.forEach_oldGoo(testAllocation2, testAllocation2); 52b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni s.invoke_validate(testAllocation2); 53b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni 54b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni pRS.finish(); 55b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni waitForMessage(); 561c3a11a3287d971458a021d16a54e16b37f391f9Yang Ni s.destroy(); 571c3a11a3287d971458a021d16a54e16b37f391f9Yang Ni testAllocation1.getType().destroy(); 581c3a11a3287d971458a021d16a54e16b37f391f9Yang Ni testAllocation1.destroy(); 591c3a11a3287d971458a021d16a54e16b37f391f9Yang Ni testAllocation2.getType().destroy(); 601c3a11a3287d971458a021d16a54e16b37f391f9Yang Ni testAllocation2.destroy(); 61b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni pRS.destroy(); 62b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni } 63b9b6366fd0188be38161a54d4e8ead0161dbb008Yang Ni} 64