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