Skip to content

Commit

Permalink
Fixed cycling dependency issues. Restructured alot of code.
Browse files Browse the repository at this point in the history
  • Loading branch information
fynndemmler committed Dec 21, 2023
1 parent c20a68b commit a0e6114
Show file tree
Hide file tree
Showing 160 changed files with 1,250 additions and 1,735 deletions.
26 changes: 12 additions & 14 deletions de.tu-bs.cs.isf.cbc.mutation/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Mutation
Bundle-SymbolicName: de.tu-bs.cs.isf.cbc.mutation
Bundle-SymbolicName: de.tu-bs.cs.isf.cbc.mutation;singleton:=true
Bundle-Version: 1.0.0.qualifier
Automatic-Module-Name: de.tu.bs.cs.isf.cbc.mutation
Bundle-RequiredExecutionEnvironment: JavaSE-16
Require-Bundle: org.key_project.core;bundle-version="1.0.0",
org.key_project.util;bundle-version="1.0.0",
de.tu-bs.cs.isf.cbc.util,
org.eclipse.graphiti.mm,
de.tu-bs.cs.isf.cbc.tool,
org.hamcrest.core,
org.junit,
org.eclipse.emf.ecore,
de.tu-bs.cs.isf.cbc.exceptions,
Require-Bundle: org.junit,
org.apache.commons.commons-io;bundle-version="2.13.0",
de.tu-bs.cs.isf.cbc.model
Import-Package: de.tu_bs.cs.isf.cbc.cbcmodel,
de.tu_bs.cs.isf.commands.toolbar.handler.family,
org.eclipse.graphiti.ui;bundle-version="0.18.0",
org.eclipse.ui.views.properties.tabbed;bundle-version="3.10.100",
org.eclipse.graphiti;bundle-version="0.18.0"
Import-Package: de.tu_bs.cs.isf.cbc.cbcclass,
de.tu_bs.cs.isf.cbc.cbcmodel,
de.tu_bs.cs.isf.cbc.exceptions,
de.tu_bs.cs.isf.cbc.util,
org.eclipse.core.resources,
org.eclipse.core.runtime;version="3.7.0",
org.eclipse.graphiti.services;version="0.18.0"
org.eclipse.graphiti.ui.platform;version="0.18.0",
org.eclipse.swt.widgets,
org.eclipse.ui.views.properties.tabbed
Export-Package: de.tu_bs.cs.isf.cbc.mutation.feature
Bundle-ClassPath: muJava/openjava.jar,
.
3 changes: 2 additions & 1 deletion de.tu-bs.cs.isf.cbc.mutation/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
muJava/openjava.jar
muJava/openjava.jar,\
plugin.xml
36 changes: 36 additions & 0 deletions de.tu-bs.cs.isf.cbc.mutation/plugin.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
<propertyTabs
contributorId="cbc.PropertyContributor">
<propertyTab
category="Graphiti"
id="Mutation"
label="Mutation">
</propertyTab>
</propertyTabs>
</extension>
<extension
point="org.eclipse.ui.views.properties.tabbed.propertySections">
<propertySections
contributorId="cbc.PropertyContributor">
<propertySection
class="de.tu_bs.cs.isf.cbc.mutation.propertiesview.MutationSection"
filter="de.tu_bs.cs.isf.cbc.mutation.propertiesview.MutationFilter"
id="Mutation"
tab="Mutation">
</propertySection>
</propertySections>
</extension>
<extension
point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
<propertyContributor
contributorId="cbc.PropertyContributor">
<propertyCategory
category="Graphiti"></propertyCategory>
</propertyContributor>
</extension>

</plugin>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

Expand All @@ -17,25 +16,15 @@
import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement;
import de.tu_bs.cs.isf.cbc.cbcmodel.Condition;
import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement;
import de.tu_bs.cs.isf.cbc.exceptions.MutatorException;
import de.tu_bs.cs.isf.cbc.mutation.op.cbc.CbCMutationOp;
import de.tu_bs.cs.isf.cbc.mutation.util.MutatedClass;
import de.tu_bs.cs.isf.cbc.util.CopyDiagram;

public class CbCMutator extends Mutator {
private Condition condition;
private String targetId;
private int totalMutantNum;
private int curPos;

private int test = 0;

public CbCMutator(List<String> operators) {
super(operators);
curPos = 0;
totalMutantNum = 0;
}

@Override
public void mutate(Diagram diagram, Condition condition) throws Exception {
this.condition = condition;
Expand All @@ -57,10 +46,14 @@ protected void generateDiagrams() throws Exception {
this.curPos++;
}
}


protected CbCMutator(List<String> operators) {
super(operators);
curPos = 0;
}

private void generateMutants() throws Exception {
applyMutationOperators();
//generateMutantNames(totalMutantNum);
MutatedClass mc = new MutatedClass(this);
mc.generate();
}
Expand All @@ -69,22 +62,12 @@ private void applyMutationOperators() throws Exception {
for (String opStr : operators) {
CbCMutationOp op = CbCMutationOp.get(opStr);
mutants = op.apply(condition);
totalMutantNum += mutants.length;
generateDiagrams();
}
}

/*
private void generateMutantNames(int size) {
mutantNames = new String[size];
for (int i = 0; i < size; i++) {
mutantNames[i] = this.originalDiagram.getName() + "Mutant" + i;
}
}*/

private void applyMutationsToDiagrams(Resource resource, String mutant) throws IOException {
CbCFormula formula = this.getFormulaFrom(resource);
// TODO: set everything to uproven.
unproveEverything(formula.getStatement());
Condition c = findConditionIn(formula.getStatement());
if (c == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,12 @@
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.graphiti.mm.pictograms.Diagram;

import de.tu_bs.cs.isf.cbc.util.ClassHandler;
import de.tu_bs.cs.isf.cbc.util.CodeGenerator;
import de.tu_bs.cs.isf.cbc.util.CodeHandler;
import de.tu_bs.cs.isf.cbc.util.Console;
import de.tu_bs.cs.isf.cbc.util.CopyDiagram;
import de.tu_bs.cs.isf.cbc.util.DiffChecker;
import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement;
import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula;
import de.tu_bs.cs.isf.cbc.cbcmodel.Condition;
Expand All @@ -25,13 +29,9 @@
import de.tu_bs.cs.isf.cbc.mutation.util.CodeRepresentationFinder;
import de.tu_bs.cs.isf.cbc.mutation.util.DirectoryCreator;
import de.tu_bs.cs.isf.cbc.mutation.util.MutatedClass;
import de.tu_bs.cs.isf.cbc.tool.helper.ClassHandler;
import de.tu_bs.cs.isf.cbc.tool.helper.CodeGenerator;
import de.tu_bs.cs.isf.cbc.tool.helper.CodeHandler;
import de.tu_bs.cs.isf.cbc.tool.helper.DiffChecker;
import de.tu_bs.cs.isf.cbc.tool.helper.LinePair;
import de.tu_bs.cs.isf.cbc.tool.helper.MethodHandler;
import de.tu_bs.cs.isf.cbc.util.FileUtil;
import de.tu_bs.cs.isf.cbc.util.LinePair;
import de.tu_bs.cs.isf.cbc.util.MethodHandler;
import src.mujava.AllMutantsGenerator;
import src.mujava.MutationSystem;
import src.mujava.OpenJavaException;
Expand All @@ -40,10 +40,6 @@
public class ImplMutator extends Mutator {
private String originalCode;

public ImplMutator(List<String> operators) {
super(operators);
}

@Override
public void mutate(Diagram diagramToMutate, Condition condition) throws Exception {
setup(diagramToMutate);
Expand All @@ -58,18 +54,20 @@ public void mutate(Diagram diagramToMutate, Condition condition) throws Exceptio

@Override
protected void generateDiagrams() throws CodeRepresentationFinderException, IOException, CoreException, MutatorException, FileHandlerException {
String originalCode = getOriginalCode();
DiffChecker dc = new DiffChecker();
for (String mutant : mutants) {
dc.check(originalCode, mutant);
dc.check(getOriginalCode(), mutant);
LinePair diffLine = dc.nextDiff();
applyMutation(diffLine);
}
MutatedClass mc = new MutatedClass(this);
mc.generate();
}


protected ImplMutator(List<String> operators) {
super(operators);
}

protected void generateFiles() throws IOException, OpenJavaException {
String location = setupMuJava();
File targetFile = generateFile(location, getOriginalDiagram().getName(), originalCode);
Expand All @@ -96,7 +94,7 @@ protected String getOriginalCode() {

protected String constructCode() throws Exception {
ClassHandler ch = new ClassHandler(this.className, this.classUri);
String diagramAsCode = CodeGenerator.getInstance().generateCodeFor(getOriginalDiagram());
String diagramAsCode = CodeGenerator.instance.generateCodeFor(getOriginalDiagram());
String signature = MethodHandler.getSignatureFromCode(diagramAsCode);
String contract = MethodHandler.getContractFromCode(diagramAsCode, signature);
MethodHandler mh = new MethodHandler(contract, signature, diagramAsCode);
Expand All @@ -105,7 +103,7 @@ protected String constructCode() throws Exception {
}

protected String setupMuJava() {
String location = FileUtil.getProjectLocation(getOriginalDiagram().eResource().getURI()) + File.separator + FOLDER_NAME;
String location = FileUtil.getProjectLocation(getOriginalDiagram().eResource().getURI()) + File.separator + getFolderName();
MutationSystem.CLASS_NAME = className;
setMuJavaPaths(location);
makeMuJavaStructure.main(null);
Expand Down
Loading

0 comments on commit a0e6114

Please sign in to comment.