secure-software-engineering / FlowDroid

FlowDroid Static Data Flow Tracker
GNU Lesser General Public License v2.1
1.03k stars 293 forks source link

Issue while running test cases.. I tried running Test case inside FlowDroid #495

Closed DeepakUniAdel closed 1 year ago

DeepakUniAdel commented 1 year ago

While running a particular method named "testForLoops" inside "HeapTestCode.java", I was getting following logs and it seemed that the code was not getting executed even while changing the included statements it had no impact, but the logs were getting generated. Why was this happening? @StevenArzt @jimmy66688

/usr/lib/jvm/jdk1.8.0_331/bin/java -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/home/deepak/idea-IC-221.5921.22/lib/idea_rt.jar=38139:/home/deepak/idea-IC-221.5921.22/bin -Dfile.encoding=UTF-8 -classpath /home/deepak/idea-IC-221.5921.22/lib/idea_rt.jar:/home/deepak/idea-IC-221.5921.22/plugins/junit/lib/junit5-rt.jar:/home/deepak/idea-IC-221.5921.22/plugins/junit/lib/junit-rt.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/charsets.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/deploy.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/dnsns.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/jaccess.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/localedata.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/nashorn.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/sunec.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/ext/zipfs.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/javaws.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/jce.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/jfr.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/jfxswt.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/jsse.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/management-agent.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/plugin.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/resources.jar:/usr/lib/jvm/jdk1.8.0_331/jre/lib/rt.jar:/home/deepak/FlowDroid/soot-infoflow/build/testclasses:/home/deepak/FlowDroid/soot-infoflow/build/classes:/home/deepak/.m2/repository/org/graphstream/gs-ui/1.3/gs-ui-1.3.jar:/home/deepak/.m2/repository/org/graphstream/gs-algo/1.3/gs-algo-1.3.jar:/home/deepak/.m2/repository/org/apache/commons/commons-math/2.1/commons-math-2.1.jar:/home/deepak/.m2/repository/org/apache/commons/commons-math3/3.4.1/commons-math3-3.4.1.jar:/home/deepak/.m2/repository/org/jfree/jfreechart/1.0.14/jfreechart-1.0.14.jar:/home/deepak/.m2/repository/org/jfree/jcommon/1.0.17/jcommon-1.0.17.jar:/home/deepak/.m2/repository/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar:/home/deepak/.m2/repository/com/lowagie/itext/2.1.5/itext-2.1.5.jar:/home/deepak/.m2/repository/bouncycastle/bcmail-jdk14/138/bcmail-jdk14-138.jar:/home/deepak/.m2/repository/bouncycastle/bcprov-jdk14/138/bcprov-jdk14-138.jar:/home/deepak/.m2/repository/org/scala-lang/scala-library/2.10.1/scala-library-2.10.1.jar:/home/deepak/.m2/repository/org/graphstream/gs-core/1.3/gs-core-1.3.jar:/home/deepak/.m2/repository/org/graphstream/pherd/1.0/pherd-1.0.jar:/home/deepak/.m2/repository/org/graphstream/mbox2/1.0/mbox2-1.0.jar:/home/deepak/.m2/repository/de/upb/cs/swt/heros/1.2.1/heros-1.2.1.jar:/home/deepak/.m2/repository/org/functionaljava/functionaljava/4.2/functionaljava-4.2.jar:/home/deepak/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar:/home/deepak/.m2/repository/org/soot-oss/soot/4.4.0-SNAPSHOT/soot-4.4.0-SNAPSHOT.jar:/home/deepak/.m2/repository/commons-io/commons-io/2.7/commons-io-2.7.jar:/home/deepak/.m2/repository/org/smali/dexlib2/2.5.2/dexlib2-2.5.2.jar:/home/deepak/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar:/home/deepak/.m2/repository/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar:/home/deepak/.m2/repository/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar:/home/deepak/.m2/repository/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar:/home/deepak/.m2/repository/org/ow2/asm/asm-commons/9.2/asm-commons-9.2.jar:/home/deepak/.m2/repository/xmlpull/xmlpull/1.1.3.4d_b4_min/xmlpull-1.1.3.4d_b4_min.jar:/home/deepak/.m2/repository/de/upb/cs/swt/axml/2.1.0-SNAPSHOT/axml-2.1.0-20200813.103355-3.jar:/home/deepak/.m2/repository/ca/mcgill/sable/polyglot/2006/polyglot-2006.jar:/home/deepak/.m2/repository/ca/mcgill/sable/jasmin/3.0.3-SNAPSHOT/jasmin-3.0.3-20211229.140543-6.jar:/home/deepak/.m2/repository/ca/mcgill/sable/java_cup/0.9.2/java_cup-0.9.2.jar:/home/deepak/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/home/deepak/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180725.0427/jaxb-api-2.4.0-b180725.0427.jar:/home/deepak/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/home/deepak/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.4.0-b180830.0438/jaxb-runtime-2.4.0-b180830.0438.jar:/home/deepak/.m2/repository/org/glassfish/jaxb/txw2/2.4.0-b180830.0438/txw2-2.4.0-b180830.0438.jar:/home/deepak/.m2/repository/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar:/home/deepak/.m2/repository/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar:/home/deepak/.m2/repository/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.jar:/home/deepak/.m2/repository/com/google/protobuf/protobuf-java/3.21.2/protobuf-java-3.21.2.jar:/home/deepak/.m2/repository/com/google/protobuf/protobuf-java-util/3.21.2/protobuf-java-util-3.21.2.jar:/home/deepak/.m2/repository/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:/home/deepak/.m2/repository/junit/junit/4.13.2/junit-4.13.2.jar:/home/deepak/.m2/repository/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar:/home/deepak/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/home/deepak/.m2/repository/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar:/home/deepak/.m2/repository/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar:/home/deepak/.m2/repository/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:/home/deepak/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/home/deepak/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/home/deepak/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/home/deepak/.m2/repository/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar:/home/deepak/.m2/repository/com/google/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.jar:/home/deepak/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar:/home/deepak/.m2/repository/org/slf4j/slf4j-simple/1.7.5/slf4j-simple-1.7.5.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 soot.jimple.infoflow.test.junit.forward.HeapTestsPtsAliasing,testForLoop [main] INFO soot.jimple.infoflow.Infoflow - Resetting Soot... [main] INFO soot.jimple.infoflow.Infoflow - Basic class loading done. [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Implicit flow tracking is NOT enabled [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Exceptional flow tracking is enabled [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Running with a maximum access path length of 5 [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Using path-agnostic result collection [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Recursive access path shortening is enabled [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Taint analysis enabled: true [main] INFO soot.jimple.infoflow.InfoflowConfiguration - Using alias algorithm PtsBased [main] INFO soot.jimple.infoflow.memory.MemoryWarningSystem - Registered a memory warning system for 1,178.55 MiB [main] INFO soot.jimple.infoflow.Infoflow - Callgraph construction took 0 seconds [main] INFO soot.jimple.infoflow.codeOptimization.InterproceduralConstantValuePropagator - Removing side-effect free methods is disabled [main] INFO soot.jimple.infoflow.Infoflow - Dead code elimination took 0.026542036 seconds [main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 30 edges [main] INFO soot.jimple.infoflow.Infoflow - Starting Taint Analysis [main] INFO soot.jimple.infoflow.data.FlowDroidMemoryManager - Initializing FlowDroid memory manager... [main] INFO soot.jimple.infoflow.Infoflow - Using context- and flow-sensitive solver [main] WARN soot.jimple.infoflow.Infoflow - Trying to use a flow-sensitive aliasing with an aliasing strategy that does not support this feature [main] WARN soot.jimple.infoflow.Infoflow - Running with limited join point abstractions can break context-sensitive path builders [main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks... [main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 1 sources and 1 sinks. [main] INFO soot.jimple.infoflow.Infoflow - IFDS problem with 21 forward and 0 backward edges solved in 0 seconds, processing 1 results... [main] INFO soot.jimple.infoflow.Infoflow - Current memory consumption: 146 MB [main] INFO soot.jimple.infoflow.Infoflow - Memory consumption after cleanup: 79 MB [main] INFO soot.jimple.infoflow.data.pathBuilders.DefaultPathBuilderFactory$ShutdownBatchPathBuilder - Running path reconstruction batch 1 with 1 elements [main] INFO soot.jimple.infoflow.data.pathBuilders.DefaultPathBuilderFactory$RepeatableContextSensitivePathBuilder - Obtainted 1 connections between sources and sinks [main] INFO soot.jimple.infoflow.data.pathBuilders.DefaultPathBuilderFactory$RepeatableContextSensitivePathBuilder - Building path 1... [main] INFO soot.jimple.infoflow.memory.MemoryWarningSystem - Shutting down the memory warning system... [main] INFO soot.jimple.infoflow.Infoflow - Memory consumption after path building: 77 MB [main] INFO soot.jimple.infoflow.Infoflow - Path reconstruction took 0 seconds [main] INFO soot.jimple.infoflow.Infoflow - The sink virtualinvoke $stack2.<soot.jimple.infoflow.test.android.ConnectionManager: void publish(java.lang.String)>($stack3) in method <soot.jimple.infoflow.test.HeapTestCode$WrapperClass: void sink()> was called with values from the following sources: [main] INFO soot.jimple.infoflow.Infoflow - - $stack1 = staticinvoke <soot.jimple.infoflow.test.android.TelephonyManager: java.lang.String getDeviceId()>() in method <soot.jimple.infoflow.test.HeapTestCode$WrapperClass: void callIt()> [main] INFO soot.jimple.infoflow.Infoflow - Data flow solver took 1 seconds. Maximum memory consumption: 146 MB