fixes to regression tests:
now, for me, code works using e44 with maven dalvik tests refactored for mobile version with android dev tools IDE tests Eclipse metadata fixed to make e44 work for me new android entrypoint to fix failure in new droidbench tests
This commit is contained in:
parent
1ea7746533
commit
43c37d6d0e
|
@ -6,6 +6,7 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota
|
|||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
|
|
|
@ -4,5 +4,4 @@ Bundle-Name: Data Plug-in
|
|||
Bundle-SymbolicName: com.ibm.wala.cast.java.test.data
|
||||
Bundle-Version: 1.3.4.qualifier
|
||||
Bundle-Vendor: IBM
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
|
|
|
@ -17,7 +17,7 @@ import com.ibm.wala.analysis.typeInference.PrimitiveType;
|
|||
import com.ibm.wala.analysis.typeInference.TypeAbstraction;
|
||||
import com.ibm.wala.analysis.typeInference.TypeVariable;
|
||||
import com.ibm.wala.cast.analysis.typeInference.AstTypeInference;
|
||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
||||
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||
import com.ibm.wala.cast.java.ssa.AstJavaInstructionVisitor;
|
||||
import com.ibm.wala.cast.java.ssa.AstJavaInvokeInstruction;
|
||||
import com.ibm.wala.cast.java.ssa.EnclosingObjectReference;
|
||||
|
@ -40,8 +40,8 @@ public class AstJavaTypeInference extends AstTypeInference {
|
|||
public void visitBinaryOp(SSABinaryOpInstruction instruction) {
|
||||
if (doPrimitives) {
|
||||
IBinaryOpInstruction.IOperator op = instruction.getOperator();
|
||||
if (op == AstConstants.BinaryOp.EQ || op == AstConstants.BinaryOp.NE || op == AstConstants.BinaryOp.LT
|
||||
|| op == AstConstants.BinaryOp.GE || op == AstConstants.BinaryOp.GT || op == AstConstants.BinaryOp.LE) {
|
||||
if (op == CAstBinaryOp.EQ || op == CAstBinaryOp.NE || op == CAstBinaryOp.LT
|
||||
|| op == CAstBinaryOp.GE || op == CAstBinaryOp.GT || op == CAstBinaryOp.LE) {
|
||||
result = new DeclaredTypeOperator(language.getPrimitive(language.getConstantType(Boolean.TRUE)));
|
||||
} else {
|
||||
result = new PrimAndStringOp();
|
||||
|
|
|
@ -42,7 +42,7 @@ public abstract class AbstractFieldBasedTest extends TestJSCallGraphShape {
|
|||
protected JSCallGraph runTest(URL url, Object[][] assertions, BuilderType... builderTypes) throws IOException, WalaException, Error, CancelException {
|
||||
JSCallGraph cg = null;
|
||||
for(BuilderType builderType : builderTypes) {
|
||||
ProgressMaster monitor = ProgressMaster.make(new NullProgressMonitor(), 30000, true);
|
||||
ProgressMaster monitor = ProgressMaster.make(new NullProgressMonitor(), 45000, true);
|
||||
try {
|
||||
cg = util.buildCG(url, builderType, monitor, false).fst;
|
||||
System.err.println(cg);
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestMozillaBugPagesRhino.java"/>
|
||||
<listEntry value="/com.ibm.wala.cast.js.rhino.test"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="/tmp/rhinojs.out"/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
|
@ -14,6 +14,7 @@
|
|||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.cast.js.test.TestMozillaBugPagesRhino"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.cast.js.test.data/examples-src" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048M -verbose:gc -ea"/>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// $Id: drupal.js,v 1.41.2.4 2009/07/21 08:59:10 goba Exp $
|
||||
// $Id: drupal.js,v 1.41.2.4 2009/07/21 08:59:10 goba Exp $
|
||||
|
||||
var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'themes': {}, 'locale': {} };
|
||||
|
||||
|
|
|
@ -12,5 +12,5 @@ var fs2 = [];
|
|||
}
|
||||
})(fs1, fs2);
|
||||
|
||||
fs[fs2[2]]();
|
||||
fs[fs2[3]]();
|
||||
(fs[fs2[2]])();
|
||||
(fs[fs2[3]])();
|
||||
|
|
|
@ -10,10 +10,12 @@
|
|||
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
|
||||
<mapEntry key="[run]" value="org.eclipse.jdt.junit.launchconfig"/>
|
||||
</mapAttribute>
|
||||
<stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="/tmp/cg.out"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.cast.js.test.TestSimpleCallGraphShapeRhino"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.js.rhino.test"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx256M -Dcom.ibm.wala.tracefile=/tmp/jssimplecg.out -ea"/>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.cast.test"/>
|
||||
</launchConfiguration>
|
||||
|
|
|
@ -13,23 +13,11 @@ package com.ibm.wala.cast.ir.ssa;
|
|||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
||||
|
||||
public interface AstConstants {
|
||||
|
||||
public enum BinaryOp implements IBinaryOpInstruction.IOperator {
|
||||
public enum CAstBinaryOp implements IBinaryOpInstruction.IOperator {
|
||||
CONCAT, EQ, NE, LT, GE, GT, LE, STRICT_EQ, STRICT_NE;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
public enum UnaryOp implements IUnaryOpInstruction.IOperator {
|
||||
MINUS, BITNOT, PLUS;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
/******************************************************************************
|
||||
* Copyright (c) 2002 - 2006 IBM Corporation.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*****************************************************************************/
|
||||
package com.ibm.wala.cast.ir.ssa;
|
||||
|
||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
||||
|
||||
|
||||
public enum CAstUnaryOp implements IUnaryOpInstruction.IOperator {
|
||||
MINUS, BITNOT, PLUS;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
}
|
|
@ -23,7 +23,6 @@ import java.util.Set;
|
|||
|
||||
import com.ibm.wala.cast.ir.ssa.AssignInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
||||
import com.ibm.wala.cast.ir.ssa.AstEchoInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.AstGlobalRead;
|
||||
import com.ibm.wala.cast.ir.ssa.AstGlobalWrite;
|
||||
|
@ -31,6 +30,8 @@ import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction;
|
|||
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalWrite;
|
||||
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||
import com.ibm.wala.cast.ir.ssa.CAstUnaryOp;
|
||||
import com.ibm.wala.cast.ir.ssa.EachElementGetInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.EachElementHasNextInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.SSAConversion;
|
||||
|
@ -3018,13 +3019,13 @@ public abstract class AstTranslator extends CAstVisitor<AstTranslator.WalkContex
|
|||
|
||||
protected IUnaryOpInstruction.IOperator translateUnaryOpcode(CAstNode op) {
|
||||
if (op == CAstOperator.OP_BITNOT)
|
||||
return AstConstants.UnaryOp.BITNOT;
|
||||
return CAstUnaryOp.BITNOT;
|
||||
else if (op == CAstOperator.OP_NOT)
|
||||
return IUnaryOpInstruction.Operator.NEG;
|
||||
else if (op == CAstOperator.OP_SUB)
|
||||
return AstConstants.UnaryOp.MINUS;
|
||||
return CAstUnaryOp.MINUS;
|
||||
else if (op == CAstOperator.OP_ADD)
|
||||
return AstConstants.UnaryOp.PLUS;
|
||||
return CAstUnaryOp.PLUS;
|
||||
else
|
||||
Assertions.UNREACHABLE("cannot translate " + CAstPrinter.print(op));
|
||||
return null;
|
||||
|
@ -3055,23 +3056,23 @@ public abstract class AstTranslator extends CAstVisitor<AstTranslator.WalkContex
|
|||
else if (op == CAstOperator.OP_BIT_XOR)
|
||||
return BinaryOpInstruction.Operator.XOR;
|
||||
else if (op == CAstOperator.OP_CONCAT)
|
||||
return AstConstants.BinaryOp.CONCAT;
|
||||
return CAstBinaryOp.CONCAT;
|
||||
else if (op == CAstOperator.OP_EQ)
|
||||
return AstConstants.BinaryOp.EQ;
|
||||
return CAstBinaryOp.EQ;
|
||||
else if (op == CAstOperator.OP_STRICT_EQ)
|
||||
return AstConstants.BinaryOp.STRICT_EQ;
|
||||
return CAstBinaryOp.STRICT_EQ;
|
||||
else if (op == CAstOperator.OP_GE)
|
||||
return AstConstants.BinaryOp.GE;
|
||||
return CAstBinaryOp.GE;
|
||||
else if (op == CAstOperator.OP_GT)
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
else if (op == CAstOperator.OP_LE)
|
||||
return AstConstants.BinaryOp.LE;
|
||||
return CAstBinaryOp.LE;
|
||||
else if (op == CAstOperator.OP_LT)
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
else if (op == CAstOperator.OP_NE)
|
||||
return AstConstants.BinaryOp.NE;
|
||||
return CAstBinaryOp.NE;
|
||||
else if (op == CAstOperator.OP_STRICT_NE)
|
||||
return AstConstants.BinaryOp.STRICT_NE;
|
||||
return CAstBinaryOp.STRICT_NE;
|
||||
else {
|
||||
Assertions.UNREACHABLE("cannot translate " + CAstPrinter.print(op));
|
||||
return null;
|
||||
|
|
|
@ -9,3 +9,5 @@ org\/openide\/.*
|
|||
com\/ibm\/crypto\/.*
|
||||
com\/ibm\/security\/.*
|
||||
org\/apache\/xerces\/.*
|
||||
dalvik\/.*
|
||||
java\/io\/ObjectStreamClass*
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/ExportTypeHierarchyToXML.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.ExportTypeHierarchyToXML"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-classpath c:/temp/testdata/JLex.jar"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx500M"/>
|
||||
</launchConfiguration>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.ibm.wala.core.tests"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.ExportTypeHierarchyToXML"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-classpath c:/temp/testdata/JLex.jar"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx500M"/>
|
||||
</launchConfiguration>
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.ibm.wala.core.tests"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=com.ibm.wala.core.tests/src<com.ibm.wala.core.tests.demandpa"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="com.ibm.wala.core.tests" path="1"
|
|
@ -24,8 +24,8 @@
|
|||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry path="3" projectName="com.ibm.wala.core.testdata" type="1"/> "/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx800M -verbose:gc -Dcom.ibm.wala.util.fixedpoint.impl.verbose=true -XX:-UseSplitVerifier"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx800M -verbose:gc -Dcom.ibm.wala.util.fixedpoint.impl.verbose=true"/>
|
||||
</launchConfiguration>
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.11</version>
|
||||
<version>4.10</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -3,12 +3,10 @@ package com.ibm.wala.dalvik.test;
|
|||
import static com.ibm.wala.properties.WalaProperties.ANDROID_RT_JAR;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
@ -61,33 +59,37 @@ public abstract class DalvikTestBase extends DynamicCallGraphTestBase {
|
|||
}
|
||||
|
||||
public static URI[] androidLibs() {
|
||||
System.err.println(System.getProperty("java.vm.name"));
|
||||
if ("Dalvik".equals(System.getProperty("java.vm.name"))) {
|
||||
try {
|
||||
return new URI[]{
|
||||
new URL("file:///system/framework/core.jar").toURI(),
|
||||
new URL("file:///system/framework/framework.jar").toURI(),
|
||||
new URL("file:///system/framework/framework2.jar").toURI(),
|
||||
new URL("file:///system/framework/framework3.jar").toURI()
|
||||
};
|
||||
} catch (MalformedURLException e) {
|
||||
assert false : e;
|
||||
return null;
|
||||
} catch (URISyntaxException e) {
|
||||
assert false : e;
|
||||
return null;
|
||||
}
|
||||
List<URI> libs = new ArrayList<URI>();
|
||||
for(File f : new File("/system/framework/").listFiles(new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File pathname) {
|
||||
String name = pathname.getName();
|
||||
return
|
||||
(name.startsWith("core") || name.startsWith("framework")) &&
|
||||
(name.endsWith("jar") || name.endsWith("apk"));
|
||||
}
|
||||
}))
|
||||
{
|
||||
System.out.println("adding " + f);
|
||||
libs.add(f.toURI());
|
||||
}
|
||||
return libs.toArray(new URI[ libs.size() ]);
|
||||
} else {
|
||||
List<URI> libs = new ArrayList<URI>();
|
||||
try {
|
||||
for(File lib : new File(walaProperties.getProperty(ANDROID_RT_JAR)).listFiles(new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return name.endsWith("dex") || name.endsWith("jar");
|
||||
return name.endsWith("dex") || name.endsWith("jar") || name.endsWith("apk");
|
||||
}
|
||||
})) {
|
||||
System.out.println("adding " + lib);
|
||||
libs.add(lib.toURI());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("unexpected " + e);
|
||||
for(String l : WalaProperties.getJ2SEJarFiles()) {
|
||||
libs.add(new File(l).toURI());
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.io.FileInputStream;
|
|||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.URI;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
@ -43,7 +44,6 @@ import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultSSAInterpreter;
|
|||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.properties.WalaProperties;
|
||||
import com.ibm.wala.shrikeBT.analysis.Analyzer.FailureException;
|
||||
import com.ibm.wala.shrikeCT.InvalidClassFileException;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
|
@ -55,7 +55,6 @@ import com.ibm.wala.util.CancelException;
|
|||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||
import com.ibm.wala.util.NullProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
|
@ -99,18 +98,30 @@ public class DalvikCallGraphTestBase extends DalvikTestBase {
|
|||
run(mainClass.substring(1).replace('/', '.'), "LibraryExclusions.txt", args);
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor());
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFile) throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException {
|
||||
return makeAPKCallGraph(apkFile, androidLibs());
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), androidLibs);
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, ReflectionOptions options) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), options);
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, ReflectionOptions options) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), options, androidLibs());
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, ReflectionOptions options, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, new NullProgressMonitor(), options, androidLibs);
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, monitor, ReflectionOptions.NONE);
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
return makeAPKCallGraph(apkFileName, monitor, ReflectionOptions.NONE, androidLibs);
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String absolutePath, IProgressMonitor pm, ReflectionOptions none) throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException {
|
||||
return makeAPKCallGraph(absolutePath, pm, none, androidLibs());
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static SSAContextInterpreter makeDefaultInterpreter(AnalysisOptions options, AnalysisCache cache) {
|
||||
return new DefaultSSAInterpreter(options, cache) {
|
||||
|
@ -137,13 +148,13 @@ public class DalvikCallGraphTestBase extends DalvikTestBase {
|
|||
};
|
||||
}
|
||||
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor, ReflectionOptions policy) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
public static Pair<CallGraph, PointerAnalysis<InstanceKey>> makeAPKCallGraph(String apkFileName, IProgressMonitor monitor, ReflectionOptions policy, URI[] androidLibs) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
|
||||
AnalysisScope scope =
|
||||
AndroidAnalysisScope.setUpAndroidAnalysisScope(
|
||||
new File(apkFileName).toURI(),
|
||||
"AndroidRegressionExclusions.txt",
|
||||
CallGraphTestUtil.class.getClassLoader(),
|
||||
androidLibs());
|
||||
androidLibs);
|
||||
|
||||
final IClassHierarchy cha = ClassHierarchy.make(scope);
|
||||
|
||||
|
@ -199,4 +210,5 @@ public class DalvikCallGraphTestBase extends DalvikTestBase {
|
|||
|
||||
return Pair.make(callGraph, ptrAnalysis);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -77,8 +77,9 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
|||
uncalledFunctions.put("VirtualDispatch2.apk", x);
|
||||
}
|
||||
|
||||
private void assertUserCodeReachable(CallGraph cg) throws InvalidClassFileException {
|
||||
for(Iterator<IClass> clss = cg.getClassHierarchy().getLoader(ClassLoaderReference.Application).iterateAllClasses();
|
||||
public static Set<IMethod> assertUserCodeReachable(CallGraph cg, Set<MethodReference> uncalled) throws InvalidClassFileException {
|
||||
Set<IMethod> result = HashSetFactory.make();
|
||||
for(Iterator<IClass> clss = cg.getClassHierarchy().getLoader(ClassLoaderReference.Application).iterateAllClasses();
|
||||
clss.hasNext(); )
|
||||
{
|
||||
IClass cls = clss.next();
|
||||
|
@ -88,12 +89,16 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
|||
if (! cls.getName().toString().startsWith("Landroid") && ! cls.getName().toString().equals("Lde/ecspride/R$styleable")) {
|
||||
for(IMethod m : cls.getDeclaredMethods()) {
|
||||
if (!m.isInit() && !m.isAbstract() && !uncalled.contains(m.getReference())) {
|
||||
Assert.assertFalse(m + "(" + m.getSourcePosition(0) + ") cannot be called in " + apkFile, cg.getNodes(m.getReference()).isEmpty());
|
||||
System.err.println("found " + m);
|
||||
if (! cg.getNodes(m.getReference()).isEmpty()) {
|
||||
System.err.println("found " + m);
|
||||
} else {
|
||||
result.add(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private final String apkFile;
|
||||
|
@ -110,11 +115,12 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
|||
System.err.println("testing " + apkFile + "...");
|
||||
Pair<CallGraph,PointerAnalysis<InstanceKey>> x = makeAPKCallGraph(apkFile, ReflectionOptions.ONE_FLOW_TO_CASTS_APPLICATION_GET_METHOD);
|
||||
//System.err.println(x.fst);
|
||||
assertUserCodeReachable(x.fst);
|
||||
Set<IMethod> bad = assertUserCodeReachable(x.fst, uncalled);
|
||||
Assert.assertTrue(bad + " should be empty", bad.isEmpty());
|
||||
System.err.println("...success testing " + apkFile);
|
||||
}
|
||||
|
||||
private static final Set<String> skipTests = HashSetFactory.make();
|
||||
private static final Set<String> skipTests = HashSetFactory.make();
|
||||
static {
|
||||
// serialization issues
|
||||
skipTests.add("ServiceCommunication1.apk");
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/dexlib-1.3.4-dev.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/guava-13.0.1.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/commons-cli-1.2.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/logback-classic-1.0.9.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/logback-core-1.0.9.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.2.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/guava-13.0.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/dexlib-1.3.4-dev.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
@ -52,6 +52,7 @@ import java.io.IOException;
|
|||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
import org.jf.dexlib.ClassDefItem;
|
||||
import org.jf.dexlib.DexFile;
|
||||
|
@ -61,6 +62,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.ModuleEntry;
|
||||
import com.ibm.wala.util.io.TemporaryFile;
|
||||
|
||||
/**
|
||||
* A module which is a wrapper around .dex and .apk file.
|
||||
|
@ -73,12 +75,35 @@ public class DexFileModule implements Module {
|
|||
private final DexFile dexfile;
|
||||
private final Collection<ModuleEntry> entries;
|
||||
|
||||
public static DexFileModule make(File f) throws IllegalArgumentException, IOException {
|
||||
if (f.getName().endsWith("jar")) {
|
||||
return new DexFileModule(new JarFile(f));
|
||||
} else {
|
||||
return new DexFileModule(f);
|
||||
}
|
||||
}
|
||||
|
||||
private static File tf(JarFile f) {
|
||||
String name = f.getName();
|
||||
if (name.indexOf('/') >= 0) {
|
||||
name = name.substring(name.lastIndexOf('/')+1);
|
||||
}
|
||||
File tf = new File(System.getProperty("java.io.tmpdir") + "/" + name + "_classes.dex");
|
||||
tf.deleteOnExit();
|
||||
System.err.println("using " + tf);
|
||||
return tf;
|
||||
}
|
||||
|
||||
private DexFileModule(JarFile f) throws IllegalArgumentException, IOException {
|
||||
this(TemporaryFile.streamToFile(tf(f), f.getInputStream(f.getEntry("classes.dex"))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param f
|
||||
* the .dex or .apk file
|
||||
* @throws IllegalArgumentException
|
||||
*/
|
||||
public DexFileModule(File f) throws IllegalArgumentException {
|
||||
private DexFileModule(File f) throws IllegalArgumentException {
|
||||
try {
|
||||
dexfile = new DexFile(f);
|
||||
} catch (IOException e) {
|
||||
|
|
|
@ -153,7 +153,7 @@ public class WDexClassLoaderImpl extends ClassLoaderImpl {
|
|||
ModuleEntry entry = (ModuleEntry) it.next();
|
||||
if (entry instanceof DexModuleEntry) {
|
||||
result.add(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ package com.ibm.wala.dalvik.dex.instructions;
|
|||
|
||||
import org.jf.dexlib.Code.Opcode;
|
||||
|
||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
||||
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
||||
import com.ibm.wala.dalvik.classLoader.Literal;
|
||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||
|
@ -90,21 +90,21 @@ public class BinaryLiteralOperation extends Instruction {
|
|||
switch(op)
|
||||
{
|
||||
case CMPL_FLOAT:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_FLOAT:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case CMPL_DOUBLE:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_DOUBLE:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case CMPL_LONG:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_LONG:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case CMPL_INT:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_INT:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case ADD_INT:
|
||||
return IBinaryOpInstruction.Operator.ADD;
|
||||
case RSUB_INT:
|
||||
|
|
|
@ -50,7 +50,7 @@ package com.ibm.wala.dalvik.dex.instructions;
|
|||
|
||||
import org.jf.dexlib.Code.Opcode;
|
||||
|
||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
||||
import com.ibm.wala.cast.ir.ssa.CAstBinaryOp;
|
||||
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction;
|
||||
import com.ibm.wala.shrikeBT.IShiftInstruction;
|
||||
|
@ -89,21 +89,21 @@ public class BinaryOperation extends Instruction {
|
|||
switch(op)
|
||||
{
|
||||
case CMPL_FLOAT:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_FLOAT:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case CMPL_DOUBLE:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_DOUBLE:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case CMPL_LONG:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_LONG:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case CMPL_INT:
|
||||
return AstConstants.BinaryOp.LT;
|
||||
return CAstBinaryOp.LT;
|
||||
case CMPG_INT:
|
||||
return AstConstants.BinaryOp.GT;
|
||||
return CAstBinaryOp.GT;
|
||||
case ADD_INT:
|
||||
return IBinaryOpInstruction.Operator.ADD;
|
||||
case SUB_INT:
|
||||
|
|
|
@ -50,7 +50,7 @@ package com.ibm.wala.dalvik.dex.instructions;
|
|||
|
||||
import org.jf.dexlib.Code.Opcode;
|
||||
|
||||
import com.ibm.wala.cast.ir.ssa.AstConstants;
|
||||
import com.ibm.wala.cast.ir.ssa.CAstUnaryOp;
|
||||
import com.ibm.wala.dalvik.classLoader.DexIMethod;
|
||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction;
|
||||
import com.ibm.wala.shrikeBT.IUnaryOpInstruction.IOperator;
|
||||
|
@ -119,15 +119,15 @@ public class UnaryOperation extends Instruction {
|
|||
{
|
||||
// SSA unary ops
|
||||
case NOT:
|
||||
return AstConstants.UnaryOp.BITNOT;
|
||||
return CAstUnaryOp.BITNOT;
|
||||
case NEGINT:
|
||||
return IUnaryOpInstruction.Operator.NEG;
|
||||
case NOTINT:
|
||||
return AstConstants.UnaryOp.BITNOT;
|
||||
return CAstUnaryOp.BITNOT;
|
||||
case NEGLONG:
|
||||
return IUnaryOpInstruction.Operator.NEG;
|
||||
case NOTLONG:
|
||||
return AstConstants.UnaryOp.BITNOT;
|
||||
return CAstUnaryOp.BITNOT;
|
||||
case NEGFLOAT:
|
||||
return IUnaryOpInstruction.Operator.NEG;
|
||||
case NEGDOUBLE:
|
||||
|
|
|
@ -89,10 +89,8 @@ public class DexAnalysisScopeReader extends AnalysisScopeReader {
|
|||
|
||||
ClassLoaderReference loader = scope.getLoader(AnalysisScope.APPLICATION);
|
||||
final String path = classPath.getPath();
|
||||
if (path.endsWith(".jar")) {
|
||||
scope.addToScope(loader, new JarFile(new File(classPath)));
|
||||
} else if (path.endsWith(".apk") || path.endsWith(".dex")) {
|
||||
scope.addToScope(loader, new DexFileModule(new File(classPath)));
|
||||
if (path.endsWith(".jar") || path.endsWith(".apk") || path.endsWith(".dex")) {
|
||||
scope.addToScope(loader, DexFileModule.make(new File(classPath)));
|
||||
} else {
|
||||
throw new IOException(
|
||||
"could not determine type of classpath from file extension: "
|
||||
|
|
|
@ -47,8 +47,9 @@ public class AndroidAnalysisScope {
|
|||
|
||||
for(URI al : androidLib) {
|
||||
try {
|
||||
scope.addToScope(ClassLoaderReference.Primordial, new DexFileModule(new File(al)));
|
||||
scope.addToScope(ClassLoaderReference.Primordial, DexFileModule.make(new File(al)));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
scope.addToScope(ClassLoaderReference.Primordial, new JarFileModule(new JarFile(new File(al))));
|
||||
}
|
||||
}
|
||||
|
@ -58,7 +59,7 @@ public class AndroidAnalysisScope {
|
|||
scope.setLoaderImpl(ClassLoaderReference.Application,
|
||||
"com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl");
|
||||
|
||||
scope.addToScope(ClassLoaderReference.Application, new DexFileModule(new File(classpath)));
|
||||
scope.addToScope(ClassLoaderReference.Application, DexFileModule.make(new File(classpath)));
|
||||
|
||||
return scope;
|
||||
}
|
||||
|
@ -79,12 +80,11 @@ public class AndroidAnalysisScope {
|
|||
String[] paths = classPath.split(File.pathSeparator);
|
||||
|
||||
for (int i = 0; i < paths.length; i++) {
|
||||
if (paths[i].endsWith(".jar")) { // handle jar file
|
||||
scope.addToScope(loader, new JarFile(paths[i]));
|
||||
} else if (paths[i].endsWith(".apk")
|
||||
if (paths[i].endsWith(".jar")
|
||||
|| paths[i].endsWith(".apk")
|
||||
|| paths[i].endsWith(".dex")) { // Handle android file.
|
||||
File f = new File(paths[i]);
|
||||
scope.addToScope(loader, new DexFileModule(f));
|
||||
scope.addToScope(loader, DexFileModule.make(f));
|
||||
} else {
|
||||
File f = new File(paths[i]);
|
||||
if (f.isDirectory()) { // handle directory FIXME not working
|
||||
|
|
|
@ -946,6 +946,17 @@ public final class ActivityEP {
|
|||
}
|
||||
));
|
||||
|
||||
public static final AndroidPossibleEntryPoint onSharedPreferenceChanged = new AndroidPossibleEntryPoint(AndroidComponent.ACTIVITY,
|
||||
"onSharedPreferenceChanged",
|
||||
ExecutionOrder.between( // TODO: Find a nice position
|
||||
new AndroidEntryPoint.IExecutionOrder[] {
|
||||
onStop
|
||||
},
|
||||
new AndroidEntryPoint.IExecutionOrder[] {
|
||||
onRestart
|
||||
}
|
||||
));
|
||||
|
||||
/**
|
||||
* This method is called before pausing
|
||||
*/
|
||||
|
@ -1123,6 +1134,7 @@ public final class ActivityEP {
|
|||
possibleEntryPoints.add(onUserLeaveHint);
|
||||
possibleEntryPoints.add(onWindowAttributesChanged);
|
||||
possibleEntryPoints.add(onWindowFocusChanged);
|
||||
possibleEntryPoints.add(onSharedPreferenceChanged);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="source"/>
|
||||
<classpathentry kind="src" path="data"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
eclipse.preferences.version=1
|
||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
|
@ -72,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di
|
|||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
|
|
|
@ -19,7 +19,8 @@ Require-Bundle: com.ibm.wala.cast.java.test;bundle-version="1.0.0",
|
|||
org.eclipse.jdt.core;bundle-version="3.4.2",
|
||||
org.junit;bundle-version="4.0.0",
|
||||
org.eclipse.core.runtime,
|
||||
org.eclipse.pde.core;bundle-version="3.6.0",
|
||||
org.eclipse.platform;bundle-version="4.2.2"
|
||||
org.eclipse.pde.core,
|
||||
org.eclipse.platform,
|
||||
org.eclipse.jdt.launching.macosx;resolution:=optional
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
|
|
|
@ -3,3 +3,4 @@ source.. = source/,\
|
|||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
jre.compilation.profile = JavaSE-1.7
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -9,9 +9,9 @@
|
|||
<version>1.3.4-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
|
||||
<artifactId>com.ibm.wala.ide.jdt.test</artifactId>
|
||||
<packaging>eclipse-test-plugin</packaging>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>macosx</id>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
eclipse.preferences.version=1
|
||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
|
|
|
@ -16,8 +16,9 @@ Require-Bundle: org.eclipse.ui,
|
|||
org.eclipse.core.resources,
|
||||
org.eclipse.jdt.core,
|
||||
org.eclipse.pde.core,
|
||||
org.eclipse.ui.ide;bundle-version="3.8.2",
|
||||
org.eclipse.jdt.launching;bundle-version="3.6.101"
|
||||
org.eclipse.ui.ide,
|
||||
org.eclipse.jdt.launching,
|
||||
org.eclipse.jdt
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.ibm.wala.cast.java.client,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
eclipse.preferences.version=1
|
||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
|
@ -72,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di
|
|||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
|
|
|
@ -19,6 +19,6 @@ Require-Bundle: com.ibm.wala.core;bundle-version="1.1.3",
|
|||
org.eclipse.pde.core;bundle-version="3.8.1",
|
||||
org.eclipse.equinox.common;bundle-version="3.6.100",
|
||||
org.eclipse.core.runtime;bundle-version="3.8.0"
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-Activator: com.ibm.wala.ide.jsdt.tests.Activator
|
||||
Export-Package: com.ibm.wala.ide.jsdt.tests
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<booleanAttribute key="includeOptional" value="true"/>
|
||||
<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/WLProjectWebScopeTest.java"/>
|
||||
<listEntry value="/com.ibm.wala.worklight/src/com/ibm/wala/worklight/test/WLProjectWebScopeTest.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
|
@ -24,9 +24,9 @@
|
|||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.ide.jsdt.tests.WLProjectWebScopeTest"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.worklight.test.WLProjectWebScopeTest"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.ide.jsdt.tests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.worklight"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -XX:MaxPermSize=512m -Xmx2048m -ea -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
|
|
|
@ -27,4 +27,16 @@
|
|||
</profile>
|
||||
</profiles>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<reuseForks>false</reuseForks>
|
||||
<forkCount>1</forkCount>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -68,7 +68,7 @@ public abstract class AbstractJSProjectScopeTest {
|
|||
return JavaScriptEclipseProjectPath.make(p, Collections.<Pair<String,Plugin>>emptySet());
|
||||
}
|
||||
|
||||
@Ignore("works for me on luna, but ignored for now to avoid breaking juno")
|
||||
@Ignore("works for me on Eclipse Luna, but I cannot make it work with maven")
|
||||
@Test
|
||||
public void testParsing() throws IOException, CoreException {
|
||||
Set<ModuleEntry> mes = JsdtUtil.getJavaScriptCodeFromProject(project.projectName);
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="source"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
eclipse.preferences.version=1
|
||||
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
|
@ -72,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di
|
|||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
|
|
|
@ -22,6 +22,7 @@ Require-Bundle: org.eclipse.core.runtime,
|
|||
org.eclipse.pde.core;bundle-version="3.8.1"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: org.eclipse.wst.jsdt.internal.corext.callhierarchy
|
||||
Export-Package: com.ibm.wala.cast.js.client,
|
||||
com.ibm.wala.ide.jsdt,
|
||||
com.ibm.wala.ide.util
|
||||
|
|
|
@ -54,6 +54,7 @@ import com.ibm.wala.ide.util.HeadlessUtil.EclipseCompiler;
|
|||
import com.ibm.wala.ide.util.HeadlessUtil.Parser;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
|
||||
|
@ -76,7 +77,7 @@ public class JsdtUtil {
|
|||
public static Set<ModuleEntry> getJavaScriptCodeFromProject(String project) throws IOException, CoreException {
|
||||
IJavaScriptProject p = JavaScriptHeadlessUtil.getJavaScriptProjectFromWorkspace(project);
|
||||
JSCallGraphUtil.setTranslatorFactory(new CAstRhinoTranslatorFactory());
|
||||
AnalysisScope s = JavaScriptEclipseProjectPath.make(p, Collections.EMPTY_SET).toAnalysisScope(new CAstAnalysisScope(JSCallGraphUtil.makeLoaders(), Collections.singleton(JavaScriptLoader.JS)));
|
||||
AnalysisScope s = JavaScriptEclipseProjectPath.make(p, Collections.<Pair<String,Plugin>>emptySet()).toAnalysisScope(new CAstAnalysisScope(JSCallGraphUtil.makeLoaders(), Collections.singleton(JavaScriptLoader.JS)));
|
||||
|
||||
List<Module> modules = s.getModules(JavaScriptTypes.jsLoader);
|
||||
Set<ModuleEntry> mes = HashSetFactory.make();
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.ibm.wala.examples.drivers.SWTCallGraph"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-appJar ${resource_loc:/com.ibm.wala.core.testdata/JLex.jar}"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.ide.tests"/>
|
||||
|
|
|
@ -15,7 +15,9 @@ Require-Bundle: com.ibm.wala.core,
|
|||
org.eclipse.core.resources,
|
||||
org.eclipse.core.runtime,
|
||||
org.eclipse.jdt.core,
|
||||
org.eclipse.ui.ide;bundle-version="3.8.2"
|
||||
org.eclipse.ui.ide,
|
||||
org.eclipse.jdt,
|
||||
org.eclipse.jdt.launching
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Export-Package: com.ibm.wala.ide.classloader,
|
||||
|
|
|
@ -201,6 +201,7 @@ public abstract class EclipseProjectPath<E, P> {
|
|||
if (!model.isInSync() || model.isDisposed()) {
|
||||
model.load();
|
||||
}
|
||||
|
||||
BundleDescription bd = model.getBundleDescription();
|
||||
|
||||
if (bd == null) {
|
||||
|
|
|
@ -97,7 +97,7 @@ public class AnnotationsReader extends AttributeReader {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return val.toString();
|
||||
return String.valueOf(val);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.util.functions;
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
public interface Function<X,Y> {
|
||||
|
|
|
@ -224,6 +224,7 @@ public final class BitVectorIntSet implements MutableIntSet {
|
|||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
assert populationCount == bitVector.populationCount();
|
||||
return count < populationCount;
|
||||
}
|
||||
|
||||
|
|
436
pom.xml
436
pom.xml
|
@ -1,218 +1,230 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ibm.wala</groupId>
|
||||
<artifactId>WALA</artifactId>
|
||||
<version>1.3.4-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<properties>
|
||||
<project-version>1.3.4-SNAPSHOT</project-version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<build-alias>b000</build-alias>
|
||||
<tycho-version>0.19.0</tycho-version>
|
||||
<tycho.scmUrl>scm:git:ssh://github.com:wala/WALA.git</tycho.scmUrl>
|
||||
</properties>
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ibm.wala</groupId>
|
||||
<artifactId>WALA</artifactId>
|
||||
<version>1.3.4-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<properties>
|
||||
<project-version>1.3.4-SNAPSHOT</project-version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<build-alias>b000</build-alias>
|
||||
<tycho-version>0.19.0</tycho-version>
|
||||
<tycho.scmUrl>scm:git:ssh://github.com:wala/WALA.git</tycho.scmUrl>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>targets</module>
|
||||
|
||||
<modules>
|
||||
<module>targets</module>
|
||||
<module>com.ibm.wala-feature</module>
|
||||
<module>com.ibm.wala.core</module>
|
||||
<module>com.ibm.wala.shrike</module>
|
||||
<module>com.ibm.wala.util</module>
|
||||
|
||||
<module>com.ibm.wala.core.testdata</module>
|
||||
<module>com.ibm.wala.core.tests</module>
|
||||
|
||||
<module>com.ibm.wala.cast</module>
|
||||
<module>com.ibm.wala.cast.test</module>
|
||||
<module>com.ibm.wala.cast.java</module>
|
||||
<module>com.ibm.wala.cast.java.test</module>
|
||||
<module>com.ibm.wala.cast.java.test.data</module>
|
||||
|
||||
<module>com.ibm.wala.ide-feature</module>
|
||||
<module>com.ibm.wala.ide</module>
|
||||
<module>com.ibm.wala.ide.tests</module>
|
||||
|
||||
<module>com.ibm.wala.ide.jdt</module>
|
||||
<module>com.ibm.wala.ide.jdt.test</module>
|
||||
|
||||
<module>com.ibm.wala.cast.js</module>
|
||||
<module>com.ibm.wala.cast.js.html.nu_validator</module>
|
||||
<module>com.ibm.wala.cast.js.test</module>
|
||||
<module>com.ibm.wala.cast.js.test.data</module>
|
||||
<module>com.ibm.wala.cast.js.rhino</module>
|
||||
<module>com.ibm.wala.cast.js.rhino.test</module>
|
||||
|
||||
<module>com.ibm.wala.ide.jsdt</module>
|
||||
<module>com.ibm.wala.ide.jsdt.tests</module>
|
||||
|
||||
<module>com.ibm.wala.dalvik</module>
|
||||
<module>com.ibm.wala.dalvik.test</module>
|
||||
|
||||
<module>com.ibm.wala.scandroid</module>
|
||||
|
||||
<module>com.ibm.wala.cast.java.polyglot</module>
|
||||
<module>com.ibm.wala.cast.java.polyglot.test</module>
|
||||
|
||||
<module>com.ibm.wala-repository</module>
|
||||
|
||||
</modules>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-maven-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<extensions>true</extensions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>target-platform-configuration</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<target>
|
||||
<artifact>
|
||||
<groupId>com.ibm.wala.target</groupId>
|
||||
<artifactId>e44</artifactId>
|
||||
<version>${project-version}</version>
|
||||
</artifact>
|
||||
</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-compiler-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<compilerArgument>-err:-forbidden</compilerArgument>
|
||||
<compilerArguments>
|
||||
<properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
|
||||
</compilerArguments>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-source-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-source</id>
|
||||
<phase>process-classes</phase>
|
||||
<goals>
|
||||
<goal>plugin-source</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-packaging-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<format>'v'yyyyMMdd-HHmm'-${build-alias}'</format>
|
||||
<archiveSite>false</archiveSite>
|
||||
<sourceReferences>
|
||||
<generate>true</generate>
|
||||
</sourceReferences>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.tycho.extras</groupId>
|
||||
<artifactId>tycho-sourceref-jgit</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-surefire-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
|
||||
<module>com.ibm.wala-feature</module>
|
||||
<module>com.ibm.wala.core</module>
|
||||
<module>com.ibm.wala.shrike</module>
|
||||
<module>com.ibm.wala.util</module>
|
||||
|
||||
<module>com.ibm.wala.core.testdata</module>
|
||||
<module>com.ibm.wala.core.tests</module>
|
||||
|
||||
<module>com.ibm.wala.dalvik</module>
|
||||
<module>com.ibm.wala.dalvik.test</module>
|
||||
<module>com.ibm.wala.scandroid</module>
|
||||
|
||||
<module>com.ibm.wala.cast</module>
|
||||
<module>com.ibm.wala.cast.test</module>
|
||||
<module>com.ibm.wala.cast.java</module>
|
||||
<module>com.ibm.wala.cast.java.test</module>
|
||||
<module>com.ibm.wala.cast.java.test.data</module>
|
||||
<module>com.ibm.wala.cast.java.polyglot</module>
|
||||
<module>com.ibm.wala.cast.java.polyglot.test</module>
|
||||
<module>com.ibm.wala.cast.js</module>
|
||||
<module>com.ibm.wala.cast.js.html.nu_validator</module>
|
||||
<module>com.ibm.wala.cast.js.test</module>
|
||||
<module>com.ibm.wala.cast.js.test.data</module>
|
||||
<module>com.ibm.wala.cast.js.rhino</module>
|
||||
<module>com.ibm.wala.cast.js.rhino.test</module>
|
||||
|
||||
<module>com.ibm.wala.ide-feature</module>
|
||||
<module>com.ibm.wala.ide</module>
|
||||
<module>com.ibm.wala.ide.tests</module>
|
||||
<module>com.ibm.wala.ide.jdt</module>
|
||||
<module>com.ibm.wala.ide.jsdt</module>
|
||||
<module>com.ibm.wala.ide.jsdt.tests</module>
|
||||
<module>com.ibm.wala.ide.jdt.test</module>
|
||||
|
||||
<module>com.ibm.wala-repository</module>
|
||||
|
||||
|
||||
</modules>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-maven-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<extensions>true</extensions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>target-platform-configuration</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<target>
|
||||
<artifact>
|
||||
<groupId>com.ibm.wala.target</groupId>
|
||||
<artifactId>e42</artifactId>
|
||||
<version>${project-version}</version>
|
||||
</artifact>
|
||||
</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-compiler-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<compilerArgument>-err:-forbidden</compilerArgument>
|
||||
<compilerArguments>
|
||||
<properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
|
||||
</compilerArguments>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-source-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-source</id>
|
||||
<phase>process-classes</phase>
|
||||
<goals>
|
||||
<goal>plugin-source</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-packaging-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<format>'v'yyyyMMdd-HHmm'-${build-alias}'</format>
|
||||
<archiveSite>false</archiveSite>
|
||||
<sourceReferences>
|
||||
<generate>true</generate>
|
||||
</sourceReferences>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.tycho.extras</groupId>
|
||||
<artifactId>tycho-sourceref-jgit</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-surefire-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<useuiharness>false</useuiharness>
|
||||
<useuithread>false</useuithread>
|
||||
<providerHint>junit47</providerHint>
|
||||
<argLine>${tycho.test.jvmArgs}</argLine>
|
||||
<includes>
|
||||
<include>**/Test*.java</include>
|
||||
<include>**/*Test.java</include>
|
||||
<include>**/*TestCase.java</include>
|
||||
<include>**/*Tests.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- The tycho-source-feature-plugin needs to be place before the tycho-p2-plugin, as both plugins' goals bind to the same phase -->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho.extras</groupId>
|
||||
<artifactId>tycho-source-feature-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-source-feature</id>
|
||||
<goals>
|
||||
<goal>source-feature</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-p2-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<!-- Don't attach (default) metadata before the "generate-source-feature" execution. -->
|
||||
<id>default-p2-metadata-default</id>
|
||||
<configuration>
|
||||
<attachP2Metadata>false</attachP2Metadata>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<!-- Do attach metadata after the "generate-source-feature" execution. -->
|
||||
<id>attach-p2-metadata</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-metadata</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-p2-director-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-p2-repository-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<includeAllDependencies>false</includeAllDependencies>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.maven-download-plugin</groupId>
|
||||
<artifactId>maven-download-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.14.1</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>sonatype-public-repository</id>
|
||||
<url>https://oss.sonatype.org/content/groups/public</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<type>eclipse-plugin</type>
|
||||
<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
|
||||
<version>0.0.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<useuiharness>false</useuiharness>
|
||||
<useuithread>false</useuithread>
|
||||
<providerHint>junit47</providerHint>
|
||||
<argLine>${tycho.test.jvmArgs}</argLine>
|
||||
<includes>
|
||||
<include>**/Test*.java</include>
|
||||
<include>**/*Test.java</include>
|
||||
<include>**/*TestCase.java</include>
|
||||
<include>**/*Tests.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- The tycho-source-feature-plugin needs to be place before the tycho-p2-plugin, as both plugins' goals bind to the same phase -->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho.extras</groupId>
|
||||
<artifactId>tycho-source-feature-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-source-feature</id>
|
||||
<goals>
|
||||
<goal>source-feature</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-p2-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<!-- Don't attach (default) metadata before the "generate-source-feature" execution. -->
|
||||
<id>default-p2-metadata-default</id>
|
||||
<configuration>
|
||||
<attachP2Metadata>false</attachP2Metadata>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<!-- Do attach metadata after the "generate-source-feature" execution. -->
|
||||
<id>attach-p2-metadata</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-metadata</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-p2-director-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-p2-repository-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<includeAllDependencies>true</includeAllDependencies>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.maven-download-plugin</groupId>
|
||||
<artifactId>maven-download-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.14.1</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>sonatype-public-repository</id>
|
||||
<url>https://oss.sonatype.org/content/groups/public</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</project>
|
||||
|
|
|
@ -1,30 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde version="3.8"?><target name="WALA Eclipse Luna Target Platform" sequenceNumber="130">
|
||||
<locations>
|
||||
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.ecf.core.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.ecf.core.ssl.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.ecf.filetransfer.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.ecf.filetransfer.httpclient4.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.ecf.filetransfer.ssl.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.emf.common.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.emf.ecore.feature.group" version="0.0.0"/>
|
||||
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.equinox.p2.core.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.equinox.p2.extras.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.equinox.p2.rcp.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.equinox.p2.user.ui.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.help.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.jdt.source.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.rcp.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
|
||||
<unit id="org.eclipse.wst.jsdt.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.wst.jsdt.feature.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.wst.jsdt.ui" version="0.0.0"/>
|
||||
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
|
||||
<unit id="org.eclipse.jdt.source.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.osgi" version="0.0.0"/>
|
||||
<unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
|
||||
<repository location="http://download.eclipse.org/releases/luna"/>
|
||||
</location>
|
||||
</locations>
|
||||
|
|
Loading…
Reference in New Issue