Vector type tests.
Change-Id: Ib7d2fa7e200ab24929e30e9d428f49d253d7d6f8
diff --git a/tests/res/raw/sphere.a3d b/tests/res/raw/sphere.a3d
new file mode 100644
index 0000000..3d78b01
--- /dev/null
+++ b/tests/res/raw/sphere.a3d
Binary files differ
diff --git a/tests/src/android/renderscript/cts/primitives.rs b/tests/src/android/renderscript/cts/primitives.rs
old mode 100644
new mode 100755
index d2ffd26..55710cd
--- a/tests/src/android/renderscript/cts/primitives.rs
+++ b/tests/src/android/renderscript/cts/primitives.rs
@@ -1,4 +1,5 @@
#include "shared.rsh"
+#include "structs.rsh"
// Testing primitive types
float floatTest = 1.99f;
@@ -47,9 +48,65 @@
return failed;
}
+static bool test_vector_types() {
+ bool failed = false;
+ start();
+ _RS_ASSERT(avt->b2.x == 1);
+ _RS_ASSERT(avt->b2.y == 2);
+ _RS_ASSERT(avt->b3.x == 1);
+ _RS_ASSERT(avt->b3.y == 2);
+ _RS_ASSERT(avt->b3.z == 3);
+ _RS_ASSERT(avt->b4.x == 1);
+ _RS_ASSERT(avt->b4.y == 2);
+ _RS_ASSERT(avt->b4.z == 3);
+ _RS_ASSERT(avt->b4.w == 4);
+
+ _RS_ASSERT(avt->s2.x == 1);
+ _RS_ASSERT(avt->s2.y == 2);
+ _RS_ASSERT(avt->s3.x == 1);
+ _RS_ASSERT(avt->s3.y == 2);
+ _RS_ASSERT(avt->s3.z == 3);
+ _RS_ASSERT(avt->s4.x == 1);
+ _RS_ASSERT(avt->s4.y == 2);
+ _RS_ASSERT(avt->s4.z == 3);
+ _RS_ASSERT(avt->s4.w == 4);
+
+ _RS_ASSERT(avt->i2.x == 1);
+ _RS_ASSERT(avt->i2.y == 2);
+ _RS_ASSERT(avt->i3.x == 1);
+ _RS_ASSERT(avt->i3.y == 2);
+ _RS_ASSERT(avt->i3.z == 3);
+ _RS_ASSERT(avt->i4.x == 1);
+ _RS_ASSERT(avt->i4.y == 2);
+ _RS_ASSERT(avt->i4.z == 3);
+ _RS_ASSERT(avt->i4.w == 4);
+
+ _RS_ASSERT(avt->f2.x == 1.0f);
+ _RS_ASSERT(avt->f2.y == 2.0f);
+ _RS_ASSERT(avt->f3.x == 1.0f);
+ _RS_ASSERT(avt->f3.y == 2.0f);
+ _RS_ASSERT(avt->f3.z == 3.0f);
+ _RS_ASSERT(avt->f4.x == 1.0f);
+ _RS_ASSERT(avt->f4.y == 2.0f);
+ _RS_ASSERT(avt->f4.z == 3.0f);
+ _RS_ASSERT(avt->f4.w == 4.0f);
+
+ float time = end();
+
+ if (failed) {
+ rsDebug("test_vector_types FAILED", time);
+ }
+ else {
+ rsDebug("test_vector_types PASSED", time);
+ }
+
+ return failed;
+}
+
void test() {
bool failed = false;
failed |= test_primitive_types();
+ failed |= test_vector_types();
if (failed) {
rsSendToClientBlocking(RS_MSG_TEST_FAILED);
diff --git a/tests/src/android/renderscript/cts/structs.rsh b/tests/src/android/renderscript/cts/structs.rsh
old mode 100644
new mode 100755
index bfc57c6..58f6186
--- a/tests/src/android/renderscript/cts/structs.rsh
+++ b/tests/src/android/renderscript/cts/structs.rsh
@@ -36,3 +36,21 @@
} ConstExtra_s;
ConstExtra_s *c3;
+typedef struct AllVectorTypes {
+ char2 b2;
+ char3 b3;
+ char4 b4;
+
+ short2 s2;
+ short3 s3;
+ short4 s4;
+
+ int2 i2;
+ int3 i3;
+ int4 i4;
+
+ float2 f2;
+ float3 f3;
+ float4 f4;
+} AllVectorTypes_s;
+AllVectorTypes_s *avt;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
old mode 100644
new mode 100755
index a5c4f16..009c3ca
--- a/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
@@ -20,11 +20,113 @@
import android.content.res.Resources;
import android.renderscript.RenderScript;
import android.renderscript.RenderScript.RSMessageHandler;
+
+import android.renderscript.Allocation;
+
+import android.renderscript.Byte2;
+import android.renderscript.Byte3;
+import android.renderscript.Byte4;
+
+import android.renderscript.Float2;
+import android.renderscript.Float3;
+import android.renderscript.Float4;
+
+import android.renderscript.Int2;
+import android.renderscript.Int3;
+import android.renderscript.Int4;
+
+import android.renderscript.Long2;
+import android.renderscript.Long3;
+import android.renderscript.Long4;
+
+import android.renderscript.Short2;
+import android.renderscript.Short3;
+import android.renderscript.Short4;
+
import android.test.AndroidTestCase;
import com.android.cts.stub.R;
public class ComputeTest extends RSBaseCompute {
+ public void testJavaVectorTypes() {
+ Byte2 b2 = new Byte2();
+ b2.x = 1;
+ b2.y = 2;
+ Byte3 b3 = new Byte3();
+ b3.x = 1;
+ b3.y = 2;
+ b3.z = 2;
+ Byte4 b4 = new Byte4();
+ b4.x = 1;
+ b4.y = 2;
+ b4.x = 3;
+ b4.w = 4;
+
+ Float2 f2 = new Float2();
+ f2.x = 1.0f;
+ f2.y = 2.0f;
+ f2 = new Float2(1.0f, 2.0f);
+ assertTrue(f2.x == 1.0f);
+ assertTrue(f2.y == 2.0f);
+ Float3 f3 = new Float3();
+ f3.x = 1.0f;
+ f3.y = 2.0f;
+ f3.z = 3.0f;
+ f3 = new Float3(1.0f, 2.0f, 3.0f);
+ assertTrue(f3.x == 1.0f);
+ assertTrue(f3.y == 2.0f);
+ assertTrue(f3.z == 3.0f);
+ Float4 f4 = new Float4();
+ f4.x = 1.0f;
+ f4.y = 2.0f;
+ f4.x = 3.0f;
+ f4.w = 4.0f;
+ f4 = new Float4(1.0f, 2.0f, 3.0f, 4.0f);
+ assertTrue(f4.x == 1.0f);
+ assertTrue(f4.y == 2.0f);
+ assertTrue(f4.z == 3.0f);
+ assertTrue(f4.w == 4.0f);
+
+ Int2 i2 = new Int2();
+ i2.x = 1;
+ i2.y = 2;
+ Int3 i3 = new Int3();
+ i3.x = 1;
+ i3.y = 2;
+ i3.z = 3;
+ Int4 i4 = new Int4();
+ i4.x = 1;
+ i4.y = 2;
+ i4.x = 3;
+ i4.w = 4;
+
+ Long2 l2 = new Long2();
+ l2.x = 1;
+ l2.y = 2;
+ Long3 l3 = new Long3();
+ l3.x = 1;
+ l3.y = 2;
+ l3.z = 3;
+ Long4 l4 = new Long4();
+ l4.x = 1;
+ l4.y = 2;
+ l4.x = 3;
+ l4.w = 4;
+
+ Short2 s2 = new Short2();
+ s2.x = 1;
+ s2.y = 2;
+ Short3 s3 = new Short3();
+ s3.x = 1;
+ s3.y = 2;
+ s3.z = 3;
+ Short4 s4 = new Short4();
+ s4.x = 1;
+ s4.y = 2;
+ s4.x = 3;
+ s4.w = 4;
+ }
+
private boolean initializeGlobals(ScriptC_primitives s) {
float pF = s.get_floatTest();
if (pF != 1.99f) {
@@ -68,7 +170,6 @@
}
s.set_ulongTest(4611686018427387903L);
-
long pLL = s.get_longlongTest();
if (pLL != 68719476736L) {
return false;
@@ -81,6 +182,54 @@
}
s.set_uint64_tTest(117179869185l);
+ ScriptField_AllVectorTypes avt;
+ avt = new ScriptField_AllVectorTypes(mRS, 1,
+ Allocation.USAGE_SCRIPT);
+ ScriptField_AllVectorTypes.Item avtItem;
+ avtItem = new ScriptField_AllVectorTypes.Item();
+ avtItem.b2.x = 1;
+ avtItem.b2.y = 2;
+ avtItem.b3.x = 1;
+ avtItem.b3.y = 2;
+ avtItem.b3.z = 3;
+ avtItem.b4.x = 1;
+ avtItem.b4.y = 2;
+ avtItem.b4.z = 3;
+ avtItem.b4.w = 4;
+
+ avtItem.s2.x = 1;
+ avtItem.s2.y = 2;
+ avtItem.s3.x = 1;
+ avtItem.s3.y = 2;
+ avtItem.s3.z = 3;
+ avtItem.s4.x = 1;
+ avtItem.s4.y = 2;
+ avtItem.s4.z = 3;
+ avtItem.s4.w = 4;
+
+ avtItem.i2.x = 1;
+ avtItem.i2.y = 2;
+ avtItem.i3.x = 1;
+ avtItem.i3.y = 2;
+ avtItem.i3.z = 3;
+ avtItem.i4.x = 1;
+ avtItem.i4.y = 2;
+ avtItem.i4.z = 3;
+ avtItem.i4.w = 4;
+
+ avtItem.f2.x = 1.0f;
+ avtItem.f2.y = 2.0f;
+ avtItem.f3.x = 1.0f;
+ avtItem.f3.y = 2.0f;
+ avtItem.f3.z = 3.0f;
+ avtItem.f4.x = 1.0f;
+ avtItem.f4.y = 2.0f;
+ avtItem.f4.z = 3.0f;
+ avtItem.f4.w = 4.0f;
+
+ avt.set(avtItem, 0, true);
+ s.bind_avt(avt);
+
return true;
}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FileA3DTest.java b/tests/tests/renderscript/src/android/renderscript/cts/FileA3DTest.java
new file mode 100644
index 0000000..6068e0b
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/FileA3DTest.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2011 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 android.renderscript.cts;
+
+import com.android.cts.stub.R;
+
+import android.renderscript.FileA3D;
+import android.renderscript.FileA3D.EntryType;
+import android.renderscript.FileA3D.IndexEntry;
+
+public class FileA3DTest extends RSBaseGraphics {
+
+ public void testCreateFromResource() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ }
+
+ public void testGetIndexEntryCount() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ assertTrue(model.getIndexEntryCount() == 1);
+ }
+
+ public void testGetIndexEntry() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ assertTrue(model.getIndexEntryCount() == 1);
+ assertTrue(model.getIndexEntry(0) != null);
+ }
+
+ public void testIndexEntryGetEntryType() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ assertTrue(model.getIndexEntryCount() == 1);
+ FileA3D.IndexEntry entry = model.getIndexEntry(0);
+ assertTrue(entry != null);
+ assertTrue(entry.getEntryType() == FileA3D.EntryType.MESH);
+ }
+
+ public void testIndexEntryGetMesh() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ assertTrue(model.getIndexEntryCount() == 1);
+ FileA3D.IndexEntry entry = model.getIndexEntry(0);
+ assertTrue(entry != null);
+ assertTrue(entry.getEntryType() == FileA3D.EntryType.MESH);
+ assertTrue(entry.getMesh() != null);
+ }
+
+ public void testIndexEntryGetName() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ assertTrue(model.getIndexEntryCount() == 1);
+ FileA3D.IndexEntry entry = model.getIndexEntry(0);
+ assertTrue(entry != null);
+ assertTrue(entry.getName() != null);
+ }
+
+ public void testIndexEntryGetObject() {
+ FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.sphere);
+ assertTrue(model != null);
+ assertTrue(model.getIndexEntryCount() == 1);
+ FileA3D.IndexEntry entry = model.getIndexEntry(0);
+ assertTrue(entry != null);
+ assertTrue(entry.getObject() != null);
+ }
+}
+
+