Skip to content

Commit

Permalink
removing fieldReference in InputContext
Browse files Browse the repository at this point in the history
  • Loading branch information
simonAllier committed Nov 21, 2013
1 parent 2270cc2 commit a687bcc
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 52 deletions.
1 change: 1 addition & 0 deletions grid5000.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
cd /root/diversify-statements
git pull
mvn clean package
rm -rf repo/diversify-exp
java -jar target/Diversify-statements-1.0-SNAPSHOT-jar-with-dependencies.jar git repo

sh runFromGit.sh 100 &
2 changes: 1 addition & 1 deletion runFromGit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ do
java -Xmx2000m -XX:MaxPermSize=256m -jar target/Diversify-statements-1.0-SNAPSHOT-jar-with-dependencies.jar $(cat propertiesFile) > out_$i_$j &
done
wait
sh git/push.sh $2/diversify-exp
sh script/git/push.sh $2/diversify-exp
done
1 change: 1 addition & 0 deletions src/main/java/fr/inria/diversify/DiversifyMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ protected void initSpoon() throws ClassNotFoundException, IllegalAccessException

for (String dir : srcDirectory.split(System.getProperty("path.separator")))
try {
Log.debug("add {} to classpath",dir);
builder.addInputSource(new File(dir));
} catch (IOException e) {
Log.error("error in initSpoon", e);
Expand Down
63 changes: 32 additions & 31 deletions src/main/java/fr/inria/diversify/sosie/compare/CompareLogMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,54 +77,55 @@ protected void diff() throws Exception {
int count = 0;
int i =0;
for(File f : (new File(dirSosie).listFiles())) {
Log.debug("loading log from dir {}",f.getAbsolutePath());
i++;
Log.info("sosie nb: {}",i);
try {
// Log.info("log files {}",f);
File startPoint = new File(f.getAbsolutePath()+"/"+startPointString);
TransformationParser parser = new TransformationParser(codeFragments);
Log.info("startPoint {}",startPoint.getAbsolutePath());
CodeFragment cf = ((ASTReplace)parser.parseUniqueTransformation(startPoint)).getPosition();
File startPoint = new File(f.getAbsolutePath()+"/"+startPointString);
TransformationParser parser = new TransformationParser(codeFragments);
Log.info("startPoint {}",startPoint.getAbsolutePath());
CodeFragment cf = ((ASTReplace)parser.parseUniqueTransformation(startPoint)).getPosition();

CompareMultiLogSequence un = new CompareMultiLogSequence(dirOriginal, f.getAbsolutePath(), cf, varToExclude);
un.setSyncroRange(Integer.parseInt(DiversifyProperties.getProperty("syncroRange")));
Diff diff = un.findDiffVar();
CompareMultiLogSequence un = new CompareMultiLogSequence(dirOriginal, f.getAbsolutePath(), cf, varToExclude);
un.setSyncroRange(Integer.parseInt(DiversifyProperties.getProperty("syncroRange")));
Diff diff = un.findDiffVar();

Log.info("callDivergence {}, result {}",diff.sameTrace(),diff.sameTraceAndVar());
if(!diff.sameTraceAndVar()) {
Log.info(f.getName());
Log.info(diff.report());
Log.info("callDivergence {}, result {}",diff.sameTrace(),diff.sameTraceAndVar());
if(!diff.sameTraceAndVar()) {
Log.info(f.getName());
Log.info(diff.report());

if(!diff.sameVar()) {
if(!diff.sameVar()) {

trans.add(parser.parseUniqueTransformation(startPoint));
diff.toDot(DiversifyProperties.getProperty("result")+"cp_"+f.getName()+".dot");
count++;
trans.add(parser.parseUniqueTransformation(startPoint));
diff.toDot(DiversifyProperties.getProperty("result")+"cp_"+f.getName()+".dot");
count++;

Set<String> set = new HashSet<String>();
for(VariableDiff d : diff.getAllVariableDiff()) {
set.add(d.getVarName());
Set<String> set = new HashSet<String>();
for(VariableDiff d : diff.getAllVariableDiff()) {
set.add(d.getVarName());
}
var = var + set.size();
varMax = Math.max(varMax,set.size());
varMin = Math.min(varMin,set.size());
Log.info("nb diff:{}",set.size());
test = test +diff.getCount();
testMax = Math.max(testMax,diff.getCount());
testMin = Math.min(testMin,diff.getCount());
Log.info("i: "+count);
}
var = var + set.size();
varMax = Math.max(varMax,set.size());
varMin = Math.min(varMin,set.size());
Log.info("nb diff:{}",set.size());
test = test +diff.getCount();
testMax = Math.max(testMax,diff.getCount());
testMin = Math.min(testMin,diff.getCount());
Log.info("i: "+count);
}
}
else
Log.info("same trace");
else
Log.info("same trace");
} catch (Exception e) {
Log.error("error",e);
e.printStackTrace();
}
Log.info("nb diff:{}, min: {}, max: {}, {} ",count, testMin,testMax, (double)test/(double)count);
Log.info("var min: {}, var max: {}, {} ", varMin,varMax, (double)var/(double)count);
TransformationsWriter write = new TransformationsWriter(trans,DiversifyProperties.getProperty("result") + "/sosie/sosie");
write.writeAllTransformation(null);
// TransformationsWriter write = new TransformationsWriter(trans,DiversifyProperties.getProperty("result") + "/sosie/sosie");
// write.writeAllTransformation(null);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ protected List<PointSequence> loadPointSequence(String dir, boolean recursive){
try {
idMap = loadIdMap(dir + "/id");
} catch (IOException e) {
e.printStackTrace();
//e.printStackTrace();
}
Log.debug("load trace in directory: {}",dir);
for (File f : file.listFiles()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import fr.inria.diversify.sosie.compare.VariableDiff;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.*;

/**
* User: Simon
Expand Down Expand Up @@ -66,9 +63,9 @@ protected void buildFrom(String string) {
String[] array = string.split(":;:");
try {
id = Integer.parseInt(array[0]);
className = array[0];
methodSignature = array[1];
for (int i = 2; i< array.length; i = i+2) {
className = array[1];
methodSignature = array[2];
for (int i = 3; i< array.length; i = i+2) {
vars.put(array[i], array[i+1]);
}
} catch (Exception e) {
Expand Down Expand Up @@ -109,20 +106,61 @@ public Set<VariableDiff> getDifVar(ConditionalPoint point) {
return difVar;
}

protected boolean valueEqual(String v1, String v2) {
if(v1 ==null || v2 == null) {
return true;
}
if((v1.startsWith("{") && v2.startsWith("{"))
|| (v1.startsWith("[") && v2.startsWith("["))) {
return v1.split(", ").length == v2.split(", ").length;
}
if(v1.contains("@") && v2.contains("@"))
if(v1.split("@").length != 0 && v2.split("@").length != 0)
return v1.split("@")[0].equals(v2.split("@")[0]);
// protected boolean valueEqual(String v1, String v2) {
// if(v1 ==null || v2 == null) {
// return true;
// }
// if((v1.startsWith("{") && v2.startsWith("{"))
// || (v1.startsWith("[") && v2.startsWith("["))) {
// return v1.split(", ").length == v2.split(", ").length;
// }
// if(v1.contains("@") && v2.contains("@"))
// if(v1.split("@").length != 0 && v2.split("@").length != 0)
// return v1.split("@")[0].equals(v2.split("@")[0]);
//
//
// return v1.equals(v2);
// }
protected boolean valueEqual(String v1, String v2) {
if(v1 ==null || v2 == null) {
return true;
}
Object o1 = null;
Object o2 = null;
if((v1.startsWith("{") && v1.endsWith("}")) ||
v1.startsWith("[") && v1.endsWith("]")) {
o1 = equalListString(v1);
}
else
o1 = equalString(v1);

if((v2.startsWith("{") && v2.endsWith("}")) ||
v2.startsWith("[") && v2.endsWith("]")) {
o2 = equalListString(v2);
}
else
o2 = equalString(v2);

return o1.equals(o2);
}

protected String equalString(String var) {
if(var.contains("@") && var.split("@").length != 0)
return var.split("@")[0];
return var;
}

protected Collection<String> equalListString(String var) {
Collection<String> collection;
if(var.startsWith("{"))
collection = new HashSet<String>();
else
collection = new ArrayList<String>();

for(String s : var.substring(1,var.length()-1).split(","))
collection.add(equalString(s));

return v1.equals(v2);
return collection;
}

public String toString() {
Expand Down

0 comments on commit a687bcc

Please sign in to comment.