189 lines
4.7 KiB
Python
189 lines
4.7 KiB
Python
from common.commons import *
|
|
import argparse
|
|
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser(description='')
|
|
parser.add_argument('prop', help='config.yml file path')
|
|
parser.add_argument('job', help='job name')
|
|
|
|
args = parser.parse_args()
|
|
|
|
args.root = str(Path(__file__).parent.absolute())
|
|
|
|
if args.root is None or args.job is None or args.prop is None:
|
|
parser.print_help()
|
|
exit(-1)
|
|
return args
|
|
|
|
|
|
if __name__ == '__main__':
|
|
args = parse_args()
|
|
setLogg()
|
|
|
|
setEnv(args)
|
|
|
|
job = args.job
|
|
|
|
from python.settings import *
|
|
pd.options.mode.chained_assignment = None
|
|
|
|
print(f'Executing {job}...')
|
|
|
|
if job == 'dataset4j':
|
|
from dataset4j import create_dataset
|
|
|
|
create_dataset()
|
|
|
|
elif job == 'dataset4c':
|
|
from otherDatasets import core
|
|
|
|
core()
|
|
|
|
elif job == 'richedit':
|
|
dbDir = join(DATA_PATH, 'redis')
|
|
stopDB(dbDir, REDIS_PORT)
|
|
cmd = f"JAVA_HOME='{jdk8}' java -jar {JAR_PATH} {args.prop} RICHEDITSCRIPT "
|
|
output = shellCallTemplate(cmd)
|
|
logging.info(output)
|
|
|
|
elif job == 'actionSI':
|
|
from pairs import actionPairs, createPairs, importAction
|
|
|
|
matches = actionPairs()
|
|
createPairs(matches)
|
|
importAction()
|
|
|
|
elif job == 'compare':
|
|
# cmd = "mvn exec:java -f '/data/fixminer_source/'
|
|
# -Dexec.mainClass='edu.lu.uni.serval.richedit.akka.compare.CompareTrees'
|
|
# -Dexec.args='"+ " shape " + join(DATA_PATH,"redis") +" ALLdumps-gumInput.rdb " +
|
|
# "clusterl0-gumInputALL.rdb /data/richedit-core/python/data/richEditScript'"
|
|
cmd = f"JAVA_HOME='{jdk8}' java -jar {JAR_PATH} {args.prop} COMPARE "
|
|
output = shellCallTemplate4jar(cmd)
|
|
logging.info(output)
|
|
|
|
elif job == 'cluster':
|
|
from abstractPatch import cluster
|
|
|
|
dbDir = join(DATA_PATH, 'redis')
|
|
startDB(dbDir, REDIS_PORT, PROJECT_TYPE)
|
|
cluster(join(DATA_PATH, 'actions'), join(DATA_PATH, 'pairs'), 'actions')
|
|
|
|
elif job == 'tokenSI':
|
|
from pairs import tokenPairs, importTokens
|
|
|
|
tokenPairs()
|
|
importTokens()
|
|
|
|
elif job == 'clusterTokens':
|
|
from abstractPatch import cluster
|
|
|
|
dbDir = join(DATA_PATH, 'redis')
|
|
startDB(dbDir, REDIS_PORT, PROJECT_TYPE)
|
|
cluster(join(DATA_PATH, 'tokens'), join(DATA_PATH, 'pairsToken'), 'tokens')
|
|
|
|
elif job == 'codeflaws':
|
|
from otherDatasets import codeflaws
|
|
|
|
codeflaws()
|
|
|
|
elif job == 'indexClusters':
|
|
from sprinferIndex import runSpinfer, test, divideCoccis, removeDuplicates
|
|
|
|
runSpinfer()
|
|
test()
|
|
divideCoccis()
|
|
removeDuplicates()
|
|
|
|
# from patchManyBugs import patchCore
|
|
# patchCore()
|
|
# # from patchManyBugs import patched
|
|
# # patched()
|
|
# from patchManyBugs import exportSosPatches
|
|
# exportSosPatches()
|
|
# from validate_manybugs import validate
|
|
#
|
|
# validate()
|
|
|
|
elif job == 'patternOperations':
|
|
from sprinferIndex import patternOperations
|
|
|
|
patternOperations()
|
|
|
|
elif job == 'patchManyBugs':
|
|
from patchManyBugs import buildAll
|
|
|
|
buildAll()
|
|
|
|
# from patchManyBugs import patchCore
|
|
# patchCore()
|
|
# # from patch_validate import patch_validate_mine
|
|
# # patch_validate_mine()
|
|
# from patchManyBugs import patched
|
|
# patched()
|
|
# from patchManyBugs import exportSosPatches
|
|
# exportSosPatches()
|
|
|
|
elif job == 'patchIntro':
|
|
from sprinferIndex import patchCoreIntro
|
|
|
|
patchCoreIntro()
|
|
# from sprinferIndex import patched
|
|
# patched()
|
|
|
|
elif job == 'validateIntro':
|
|
# from patch_validate_introClass2 import patch_validate
|
|
# patch_validate()
|
|
from test_patched_file import patch_validate
|
|
|
|
patch_validate()
|
|
|
|
elif job == 'checkCorrectIntro':
|
|
from test_patched_file import checkCorrect
|
|
|
|
checkCorrect()
|
|
|
|
elif job == 'manybugs':
|
|
from getManybugs import export
|
|
|
|
export()
|
|
|
|
elif job == 'validateMany':
|
|
from patch_validate import patch_validate
|
|
|
|
patch_validate()
|
|
|
|
elif job == 'introclass':
|
|
from getIntroClass import export
|
|
|
|
export()
|
|
|
|
elif job == 'stats':
|
|
from stats import statsNormal
|
|
|
|
statsNormal(True)
|
|
|
|
elif job == 'datasetDefects4J':
|
|
from defects4JDataset import core
|
|
|
|
core()
|
|
|
|
elif job == 'bug':
|
|
from bugstats import bStats
|
|
|
|
bStats()
|
|
|
|
elif job == 'defects4j':
|
|
from stats import defects4jStats
|
|
|
|
defects4jStats()
|
|
|
|
elif job == 'patterns':
|
|
from stats import exportAbstractPatterns
|
|
|
|
exportAbstractPatterns()
|
|
|
|
else:
|
|
logging.error('Unknown job %s', job)
|