185dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines/*
285dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * Copyright (C) 2012 The Android Open Source Project
385dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines *
485dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License");
585dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * you may not use this file except in compliance with the License.
685dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * You may obtain a copy of the License at
785dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines *
885dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines *      http://www.apache.org/licenses/LICENSE-2.0
985dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines *
1085dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * Unless required by applicable law or agreed to in writing, software
1185dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS,
1285dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1385dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * See the License for the specific language governing permissions and
1485dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines * limitations under the License.
1585dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines */
1685dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
1785dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hinespackage com.android.rs.test;
1885dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
1985dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hinesimport android.content.Context;
2085dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hinesimport android.content.res.Resources;
2185dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hinesimport android.renderscript.*;
2285dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
2385dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hinespublic class UT_unsigned extends UnitTest {
2485dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    private Resources mRes;
2585dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
2685dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    protected UT_unsigned(RSTestCore rstc, Resources res, Context ctx) {
2785dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        super(rstc, "Unsigned", ctx);
2885dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        mRes = res;
2985dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    }
3085dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
3185dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    private boolean initializeGlobals(ScriptC_unsigned s) {
3285dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        short pUC = s.get_uc();
3385dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        if (pUC != 5) {
3485dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines            return false;
3585dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        }
3685dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        s.set_uc((short)129);
3785dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
3885dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        long pUI = s.get_ui();
3985dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        if (pUI != 37) {
4085dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines            return false;
4185dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        }
4285dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        s.set_ui(0x7fffffff);
4385dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
4485dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        return true;
4585dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    }
4685dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines
4785dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    public void run() {
4885dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        RenderScript pRS = RenderScript.create(mCtx);
4958b2b2412864891686bf0e2c9940ad2b58808822Stephen Hines        ScriptC_unsigned s = new ScriptC_unsigned(pRS);
5085dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        pRS.setMessageHandler(mRsMessage);
5185dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        if (!initializeGlobals(s)) {
5285dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines            failTest();
5385dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        } else {
5485dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines            s.invoke_unsigned_test();
5585dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines            pRS.finish();
5685dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines            waitForMessage();
5785dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        }
5885dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines        pRS.destroy();
5985dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines    }
6085dae98ca1b9c9a941744c8e757cff86465fe783Stephen Hines}
61