1da9f173879716082b590606389ae42c7ed15c947Stephen Hines/* 2da9f173879716082b590606389ae42c7ed15c947Stephen Hines * Copyright (C) 2013 The Android Open Source Project 3da9f173879716082b590606389ae42c7ed15c947Stephen Hines * 4da9f173879716082b590606389ae42c7ed15c947Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 5da9f173879716082b590606389ae42c7ed15c947Stephen Hines * you may not use this file except in compliance with the License. 6da9f173879716082b590606389ae42c7ed15c947Stephen Hines * You may obtain a copy of the License at 7da9f173879716082b590606389ae42c7ed15c947Stephen Hines * 8da9f173879716082b590606389ae42c7ed15c947Stephen Hines * http://www.apache.org/licenses/LICENSE-2.0 9da9f173879716082b590606389ae42c7ed15c947Stephen Hines * 10da9f173879716082b590606389ae42c7ed15c947Stephen Hines * Unless required by applicable law or agreed to in writing, software 11da9f173879716082b590606389ae42c7ed15c947Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 12da9f173879716082b590606389ae42c7ed15c947Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13da9f173879716082b590606389ae42c7ed15c947Stephen Hines * See the License for the specific language governing permissions and 14da9f173879716082b590606389ae42c7ed15c947Stephen Hines * limitations under the License. 15da9f173879716082b590606389ae42c7ed15c947Stephen Hines */ 16da9f173879716082b590606389ae42c7ed15c947Stephen Hines 17da9f173879716082b590606389ae42c7ed15c947Stephen Hinespackage com.android.rs.test; 18da9f173879716082b590606389ae42c7ed15c947Stephen Hines 19da9f173879716082b590606389ae42c7ed15c947Stephen Hinesimport android.content.Context; 20da9f173879716082b590606389ae42c7ed15c947Stephen Hinesimport android.content.res.Resources; 21da9f173879716082b590606389ae42c7ed15c947Stephen Hinesimport android.renderscript.*; 22da9f173879716082b590606389ae42c7ed15c947Stephen Hines 23da9f173879716082b590606389ae42c7ed15c947Stephen Hinespublic class UT_check_dims extends UnitTest { 24da9f173879716082b590606389ae42c7ed15c947Stephen Hines private Resources mRes; 25da9f173879716082b590606389ae42c7ed15c947Stephen Hines byte mFailedArr[]; 26da9f173879716082b590606389ae42c7ed15c947Stephen Hines int mData[]; 27da9f173879716082b590606389ae42c7ed15c947Stephen Hines Allocation mA; 28da9f173879716082b590606389ae42c7ed15c947Stephen Hines static final int Pattern = 0xA5A5A5A5; 29da9f173879716082b590606389ae42c7ed15c947Stephen Hines 30da9f173879716082b590606389ae42c7ed15c947Stephen Hines protected UT_check_dims(RSTestCore rstc, Resources res, Context ctx) { 31da9f173879716082b590606389ae42c7ed15c947Stephen Hines super(rstc, "Check Dims", ctx); 32da9f173879716082b590606389ae42c7ed15c947Stephen Hines mRes = res; 33da9f173879716082b590606389ae42c7ed15c947Stephen Hines } 34da9f173879716082b590606389ae42c7ed15c947Stephen Hines 35da9f173879716082b590606389ae42c7ed15c947Stephen Hines private void initializeGlobals(RenderScript RS, ScriptC_check_dims s) { 36da9f173879716082b590606389ae42c7ed15c947Stephen Hines Type.Builder typeBuilder = new Type.Builder(RS, Element.U8(RS)); 37da9f173879716082b590606389ae42c7ed15c947Stephen Hines typeBuilder.setX(1); 38da9f173879716082b590606389ae42c7ed15c947Stephen Hines Allocation AFailed = Allocation.createTyped(RS, typeBuilder.create()); 39da9f173879716082b590606389ae42c7ed15c947Stephen Hines s.set_aFailed(AFailed); 40da9f173879716082b590606389ae42c7ed15c947Stephen Hines 41da9f173879716082b590606389ae42c7ed15c947Stephen Hines mFailedArr = new byte[1]; 42da9f173879716082b590606389ae42c7ed15c947Stephen Hines mFailedArr[0] = 0; 43da9f173879716082b590606389ae42c7ed15c947Stephen Hines AFailed.copyFrom(mFailedArr); 44da9f173879716082b590606389ae42c7ed15c947Stephen Hines 45da9f173879716082b590606389ae42c7ed15c947Stephen Hines typeBuilder = new Type.Builder(RS, Element.I32(RS)); 46da9f173879716082b590606389ae42c7ed15c947Stephen Hines int X = 5; 47da9f173879716082b590606389ae42c7ed15c947Stephen Hines int Y = 7; 48da9f173879716082b590606389ae42c7ed15c947Stephen Hines typeBuilder.setX(X).setY(Y); 49da9f173879716082b590606389ae42c7ed15c947Stephen Hines mA = Allocation.createTyped(RS, typeBuilder.create()); 50da9f173879716082b590606389ae42c7ed15c947Stephen Hines s.set_pattern(Pattern); 51da9f173879716082b590606389ae42c7ed15c947Stephen Hines 52da9f173879716082b590606389ae42c7ed15c947Stephen Hines mData = new int[X*Y]; 53da9f173879716082b590606389ae42c7ed15c947Stephen Hines for (int i = 0; i < X*Y; i++) { 54da9f173879716082b590606389ae42c7ed15c947Stephen Hines mData[i] = Pattern; 55da9f173879716082b590606389ae42c7ed15c947Stephen Hines } 56da9f173879716082b590606389ae42c7ed15c947Stephen Hines mA.copyFrom(mData); 57da9f173879716082b590606389ae42c7ed15c947Stephen Hines 58da9f173879716082b590606389ae42c7ed15c947Stephen Hines return; 59da9f173879716082b590606389ae42c7ed15c947Stephen Hines } 60da9f173879716082b590606389ae42c7ed15c947Stephen Hines 61da9f173879716082b590606389ae42c7ed15c947Stephen Hines public void run() { 62da9f173879716082b590606389ae42c7ed15c947Stephen Hines RenderScript pRS = RenderScript.create(mCtx); 63da9f173879716082b590606389ae42c7ed15c947Stephen Hines ScriptC_check_dims s = new ScriptC_check_dims(pRS); 64da9f173879716082b590606389ae42c7ed15c947Stephen Hines pRS.setMessageHandler(mRsMessage); 65da9f173879716082b590606389ae42c7ed15c947Stephen Hines initializeGlobals(pRS, s); 66da9f173879716082b590606389ae42c7ed15c947Stephen Hines s.forEach_root(mA); 67da9f173879716082b590606389ae42c7ed15c947Stephen Hines s.invoke_check_dims_test(); 68da9f173879716082b590606389ae42c7ed15c947Stephen Hines pRS.finish(); 69da9f173879716082b590606389ae42c7ed15c947Stephen Hines waitForMessage(); 70da9f173879716082b590606389ae42c7ed15c947Stephen Hines pRS.destroy(); 71da9f173879716082b590606389ae42c7ed15c947Stephen Hines } 72da9f173879716082b590606389ae42c7ed15c947Stephen Hines} 73