fix bug [ 1850456 ] error "I is null" when slicing
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2183 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
04b98cae44
commit
6fb624701f
|
@ -40,6 +40,7 @@ import com.ibm.wala.ipa.slicer.Slicer;
|
|||
import com.ibm.wala.ipa.slicer.Statement;
|
||||
import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions;
|
||||
import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions;
|
||||
import com.ibm.wala.ipa.slicer.thin.ThinSlicer;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.SSAAbstractThrowInstruction;
|
||||
import com.ibm.wala.ssa.SSAArrayLoadInstruction;
|
||||
|
@ -469,6 +470,27 @@ public class SlicerTest extends TestCase {
|
|||
assertEquals(1, countThrows(slice));
|
||||
assertEquals(1, countGetfields(slice));
|
||||
}
|
||||
|
||||
public void testTestMessageFormat() throws ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
AnalysisScope scope = CallGraphTestUtil.makeJ2SEAnalysisScope(TestConstants.WALA_TESTDATA, CallGraphTestUtil.REGRESSION_EXCLUSIONS);
|
||||
ClassHierarchy cha = ClassHierarchy.make(scope);
|
||||
Iterable<Entrypoint> entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha,
|
||||
TestConstants.SLICE_TESTMESSAGEFORMAT);
|
||||
AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints);
|
||||
|
||||
CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope);
|
||||
CallGraph cg = builder.makeCallGraph(options);
|
||||
|
||||
CGNode main = findMainMethod(cg);
|
||||
Statement seed = new NormalStatement(main, 2);
|
||||
|
||||
System.err.println("Statement: " + seed);
|
||||
// compute a backwards thin slice
|
||||
ThinSlicer ts = new ThinSlicer(cg, builder.getPointerAnalysis());
|
||||
Collection<Statement> slice = ts.computeBackwardThinSlice(seed);
|
||||
dumpSlice(slice);
|
||||
|
||||
}
|
||||
|
||||
public static int countAllocations(Collection<Statement> slice) {
|
||||
int count = 0;
|
||||
|
|
|
@ -52,6 +52,7 @@ public interface TestConstants {
|
|||
public final static String SLICE_TEST_PRIM_GETTER_SETTER = "Lslice/TestPrimGetterSetter";
|
||||
public final static String SLICE_TESTTHIN1 = "Lslice/TestThin1";
|
||||
public final static String SLICE_TESTTHROWCATCH = "Lslice/TestThrowCatch";
|
||||
public final static String SLICE_TESTMESSAGEFORMAT = "Lslice/TestMessageFormat";
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue