Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afb05db2 authored by Stephen Hines's avatar Stephen Hines Committed by Android (Google) Code Review
Browse files

Merge "Adding new unit test for rsDebug()."

parents 16b8bf07 e2a26e15
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ public class RSTestCore {
        unitTests = new ArrayList<UnitTest>();

        unitTests.add(new UT_primitives(this, mRes));
        unitTests.add(new UT_rsdebug(this, mRes));
        unitTests.add(new UT_fp_mad(this, mRes));
        /*
        unitTests.add(new UnitTest(null, "<Pass>", 1));
+40 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.rs.test;

import android.content.res.Resources;
import android.renderscript.*;

public class UT_rsdebug extends UnitTest {
    private Resources mRes;

    protected UT_rsdebug(RSTestCore rstc, Resources res) {
        super(rstc, "rsDebug");
        mRes = res;
    }

    public void run() {
        RenderScript pRS = RenderScript.create();
        ScriptC_rsdebug s = new ScriptC_rsdebug(pRS, mRes, R.raw.rsdebug, true);
        pRS.mMessageCallback = mRsMessage;
        s.invoke_test_rsdebug(0, 0);
        pRS.finish();
        waitForMessage();
        pRS.destroy();
    }
}
+58 −0
Original line number Diff line number Diff line
#include "shared.rsh"

#pragma rs export_func(test_rsdebug)

// Testing primitive types
float floatTest = 1.99f;
double doubleTest = 2.05;
char charTest = -8;
short shortTest = -16;
int intTest = -32;
long longTest = 17179869184l; // 1 << 34
long long longlongTest = 68719476736l; // 1 << 36

uchar ucharTest = 8;
ushort ushortTest = 16;
uint uintTest = 32;
ulong ulongTest = 4611686018427387904L;
int64_t int64_tTest = -17179869184l; // - 1 << 34
uint64_t uint64_tTest = 117179869184l;

static bool basic_test(uint32_t index) {
    bool failed = false;

    // This test focuses primarily on compilation-time, not run-time.
    // For this reason, none of the outputs are actually checked.

    rsDebug("floatTest", floatTest);
    rsDebug("doubleTest", doubleTest);
    rsDebug("charTest", charTest);
    rsDebug("shortTest", shortTest);
    rsDebug("intTest", intTest);
    rsDebug("longTest", longTest);
    rsDebug("longlongTest", longlongTest);

    rsDebug("ucharTest", ucharTest);
    rsDebug("ushortTest", ushortTest);
    rsDebug("uintTest", uintTest);
    rsDebug("ulongTest", ulongTest);
    rsDebug("int64_tTest", int64_tTest);
    rsDebug("uint64_tTest", uint64_tTest);

    return failed;
}

void test_rsdebug(uint32_t index, int test_num) {
    bool failed = false;
    failed |= basic_test(index);

    if (failed) {
        rsSendToClientBlocking(RS_MSG_TEST_FAILED);
        rsDebug("rsdebug_test FAILED", -1);
    }
    else {
        rsSendToClientBlocking(RS_MSG_TEST_PASSED);
        rsDebug("rsdebug_test PASSED", 0);
    }
}