package com.googlecode.dex2jar.ir.test;
import static com.googlecode.dex2jar.ir.expr.Exprs.nAdd;
import static com.googlecode.dex2jar.ir.expr.Exprs.nInt;
import static com.googlecode.dex2jar.ir.stmt.Stmts.nReturn;
import org.junit.Assert;
import org.junit.Test;
import com.googlecode.dex2jar.ir.expr.Exprs;
import com.googlecode.dex2jar.ir.expr.Value;
import com.googlecode.dex2jar.ir.stmt.Stmts;
import com.googlecode.dex2jar.ir.ts.JimpleTransformer;
public class JimpleTransformerTest extends BaseTransformerTest<JimpleTransformer> {
/**
* test for return 1+2+3;
*/
@Test
public void test00Base() {
initMethod(true, "I");
addStmt(nReturn(nAdd(nAdd(nInt(1), nInt(2), "I"), nInt(3), "I")));
transform();
Assert.assertEquals("should expends to 3 stmts", 3, method.stmts.getSize());
Assert.assertEquals("should expends to 2 locals", 2, method.locals.size());
// System.out.println(super.method);
}
/**
* test for System.out.print("Hello JNI");
*/
@Test
public void test01HelloWord() {
initMethod(true, "V");
addStmt(Stmts.nVoidInvoke(Exprs.nInvokeVirtual(
new Value[] {//
Exprs.nStaticField("Ljava/lang/System;", "out", "Ljava/io/PrintStream;"),//
Exprs.nString("Hello JNI") }, "Ljava/io/PrintStream;", "println",
new String[] { "Ljava/lang/String;" }, "V")));
transform();
Assert.assertEquals("should expends to 3 stmts", 3, method.stmts.getSize());
Assert.assertEquals("should expends to 2 locals", 2, method.locals.size());
// System.out.println(super.method);
}
}