1adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines/*
2adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * Copyright (C) 2012 The Android Open Source Project
3adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines *
4adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * Licensed under the Apache License, Version 2.0 (the "License");
5adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * you may not use this file except in compliance with the License.
6adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * You may obtain a copy of the License at
7adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines *
8adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines *      http://www.apache.org/licenses/LICENSE-2.0
9adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines *
10adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * Unless required by applicable law or agreed to in writing, software
11adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * distributed under the License is distributed on an "AS IS" BASIS,
12adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * See the License for the specific language governing permissions and
14adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines * limitations under the License.
15adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines */
16adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
17adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hinespackage com.android.rs.test;
18adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
19adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hinesimport android.content.Context;
20adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hinesimport android.content.res.Resources;
21adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hinesimport android.renderscript.*;
22adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
23adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hinespublic class UT_array_alloc extends UnitTest {
24adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines    private Resources mRes;
25adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
26adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines    protected UT_array_alloc(RSTestCore rstc, Resources res, Context ctx) {
27adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        super(rstc, "Array Allocation", ctx);
28adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        mRes = res;
29adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines    }
30adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
31adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines    public void run() {
32adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        RenderScript pRS = RenderScript.create(mCtx);
3358b2b2412864891686bf0e2c9940ad2b58808822Stephen Hines        ScriptC_array_alloc s = new ScriptC_array_alloc(pRS);
34adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        pRS.setMessageHandler(mRsMessage);
35adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
36adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        int dimX = s.get_dimX();
37adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        Allocation[] Arr = new Allocation[dimX];
38adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        Type.Builder typeBuilder = new Type.Builder(pRS, Element.I32(pRS));
39adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        Type T = typeBuilder.setX(1).create();
40adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        for (int i = 0; i < dimX; i++) {
41adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines            Allocation A = Allocation.createTyped(pRS, T);
42adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines            Arr[i] = A;
43adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        }
44adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        s.set_a(Arr);
45adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines
46adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        s.invoke_array_alloc_test();
47adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        pRS.finish();
48adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        waitForMessage();
49adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        pRS.destroy();
50adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines        passTest();
51adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines    }
52adeb809201fcb77ba2b76a814ae4cdc9dacb326bStephen Hines}
53