GLES2Dbg: more tests and minor fixes/improvements
Change-Id: I55c360372623c019da0c1ba2eebbc68f73f0f211 Signed-off-by: David Li <davidxli@google.com>
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
** Copyright 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 com.android.glesv2debugger;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import com.android.glesv2debugger.DebuggerMessage.Message;
|
||||
import com.android.glesv2debugger.DebuggerMessage.Message.Function;
|
||||
import com.android.glesv2debugger.DebuggerMessage.Message.Type;
|
||||
import com.google.protobuf.ByteString;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
public class MessageParserExTest {
|
||||
/**
|
||||
* @throws java.lang.Exception
|
||||
*/
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseFloats() {
|
||||
final MessageParserEx parser = new MessageParserEx();
|
||||
final String args = "{0, 1 ,2,3 }";
|
||||
parser.args = args;
|
||||
final ByteBuffer data = parser.parseFloats(4).asReadOnlyByteBuffer();
|
||||
data.order(SampleView.targetByteOrder);
|
||||
for (int i = 0; i < 4; i++)
|
||||
assertEquals(i, data.getFloat(), 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseArgument() {
|
||||
final MessageParserEx parser = new MessageParserEx();
|
||||
final String args = "sdfa = GL_VERTEX_SHADER , -5421 ,0x443=0x54f";
|
||||
parser.args = args;
|
||||
assertEquals(GLEnum.GL_VERTEX_SHADER.value, parser.parseArgument());
|
||||
assertEquals(-5421, parser.parseArgument());
|
||||
assertEquals(0x54f, parser.parseArgument());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link com.android.glesv2debugger.MessageParserEx#parse_glShaderSource(com.android.glesv2debugger.DebuggerMessage.Message.Builder)}
|
||||
* .
|
||||
*/
|
||||
@Test
|
||||
public void testParse_glShaderSource() {
|
||||
final Message.Builder builder = Message.newBuilder();
|
||||
final MessageParserEx messageParserEx = new MessageParserEx();
|
||||
final String source = "dks \n jafhskjaho { urehg ; } hskjg";
|
||||
messageParserEx.parse(builder, "void glShaderSource ( shader=4, count= 1, "
|
||||
+ "string =\"" + source + "\" , 0x0)");
|
||||
assertEquals(Function.glShaderSource, builder.getFunction());
|
||||
assertEquals(4, builder.getArg0());
|
||||
assertEquals(1, builder.getArg1());
|
||||
assertEquals(source, builder.getData().toStringUtf8());
|
||||
assertEquals(0, builder.getArg3());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParse_glBlendEquation() {
|
||||
assertNotNull(MessageParserEx.instance);
|
||||
final Message.Builder builder = Message.newBuilder();
|
||||
MessageParserEx.instance.parse(builder, "void glBlendEquation ( mode= GL_ADD ) ; ");
|
||||
assertEquals(Function.glBlendEquation, builder.getFunction());
|
||||
assertEquals(GLEnum.GL_ADD.value, builder.getArg0());
|
||||
}
|
||||
|
||||
/** loopback testing of typical generated MessageFormatter and MessageParser */
|
||||
@Test
|
||||
public void testParseFormatterMessage() {
|
||||
final ByteBuffer srcData = ByteBuffer.allocate(4 * 2 * 4);
|
||||
srcData.order(SampleView.targetByteOrder);
|
||||
for (int i = 0; i < 4 * 2; i++)
|
||||
srcData.putFloat(i);
|
||||
srcData.rewind();
|
||||
Message.Builder builder = Message.newBuilder();
|
||||
builder.setContextId(3752).setExpectResponse(false).setType(Type.CompleteCall);
|
||||
builder.setFunction(Function.glUniformMatrix2fv);
|
||||
builder.setArg0(54).setArg1(2).setArg2(0).setData(ByteString.copyFrom(srcData));
|
||||
Message msg = builder.build();
|
||||
builder = msg.toBuilder();
|
||||
String formatted = MessageFormatter.format(msg, false);
|
||||
formatted = formatted.substring(0, formatted.indexOf('(')) + ' ' + builder.getFunction() +
|
||||
formatted.substring(formatted.indexOf('('));
|
||||
Message.Builder parsed = Message.newBuilder();
|
||||
MessageParserEx.instance.parse(parsed, formatted);
|
||||
assertEquals(builder.getFunction(), parsed.getFunction());
|
||||
assertEquals(builder.getArg0(), parsed.getArg0());
|
||||
assertEquals(builder.getArg1(), parsed.getArg1());
|
||||
assertEquals(builder.getArg2(), parsed.getArg2());
|
||||
assertEquals(builder.getData().toStringUtf8(), parsed.getData().toStringUtf8());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user