org.evosuite.symbolic.instrument.ConcolicConfig Maven / Gradle / Ivy
The newest version!
/**
* Copyright (C) 2010-2018 Gordon Fraser, Andrea Arcuri and EvoSuite
* contributors
*
* This file is part of EvoSuite.
*
* EvoSuite is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3.0 of the License, or
* (at your option) any later version.
*
* EvoSuite is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with EvoSuite. If not, see .
*/
package org.evosuite.symbolic.instrument;
import org.evosuite.dse.VM;
/*
This class is taken and adapted from the DSC tool developed by Christoph Csallner.
Link at :
http://ranger.uta.edu/~csallner/dsc/index.html
*/
/**
* The instrumenter parses all classes loaded by the JVM to run the
* user program. The instrumenter inserts one method call before each
* bytecode instruction it parses. This class contains the names of
* the methods.
*
* @author [email protected] (Christoph Csallner)
*/
public final class ConcolicConfig
{
/**
* Log each class and if we rewrite it (y/n)
*/
public static final boolean LOG_CLASS_NAMES = false;
/**
* Class whose methods the instrumentation code will call
*/
public static final String VM_FQ = VM.class.getName().replace('.', '/'); //$NON-NLS-1$
public static final String VOID = "V"; //$NON-NLS-1$
public static final String INT = "I"; //$NON-NLS-1$
public static final String INT_ARR = "[I"; //$NON-NLS-1$
public static final String BOOL = "Z"; //$NON-NLS-1$
public static final String BYTE = "B"; //$NON-NLS-1$
public static final String CHAR = "C"; //$NON-NLS-1$
public static final String SHORT = "S"; //$NON-NLS-1$
public static final String LONG = "J"; //$NON-NLS-1$
public static final String FLOAT = "F"; //$NON-NLS-1$
public static final String DOUBLE = "D"; //$NON-NLS-1$
public static final String REF = "Ljava/lang/Object;"; //$NON-NLS-1$
public static final String STR = "Ljava/lang/String;"; //$NON-NLS-1$
public static final String V_V = "("+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String I_V = "("+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String II_V = "("+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String III_V = "("+INT+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IIR_V = "("+INT+INT_ARR+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String Z_V = "("+BOOL+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String ZII_V = "("+BOOL+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IZ_V = "("+INT+BOOL+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IB_V = "("+INT+BYTE+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String BII_V = "("+BYTE+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IC_V = "("+INT+CHAR+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String CII_V = "("+CHAR+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IS_V = "("+INT+SHORT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String SII_V = "("+SHORT+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String ZI_V = "("+BOOL+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String BI_V = "("+BYTE+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String CI_V = "("+CHAR+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String SI_V = "("+SHORT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String J_V = "("+LONG+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String JII_V = "("+LONG+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IJ_V = "("+INT+LONG+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String F_V = "("+FLOAT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IF_V = "("+INT+FLOAT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String FI_V = "("+INT+FLOAT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String FII_V = "("+FLOAT+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String D_V = "("+DOUBLE+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String DII_V = "("+DOUBLE+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String ID_V = "("+INT+DOUBLE+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String L_V = "("+REF+ ")"+VOID; //$NON-NLS-1$//$NON-NLS-2$
public static final String LG_V = "("+REF+STR+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String LI_V = "("+REF+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String LII_V = "("+REF+INT+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IL_V = "("+INT+REF+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String LL_V = "("+REF+REF+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String G_V = "("+STR+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String GI_V = "("+STR+INT+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IG_V = "("+INT+STR+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String GGG_V = "("+STR+STR+STR+ ")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String GGGII_V = "("+STR+STR+STR+INT+INT+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String DGGG_V = "("+DOUBLE+STR+STR+STR+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String FGGG_V = "("+FLOAT+STR+STR+STR+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String JGGG_V = "("+LONG+STR+STR+STR+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String IGGG_V = "("+INT+STR+STR+STR+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String ZGGG_V = "("+BOOL+STR+STR+STR+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
public static final String LGGG_V = "("+REF+STR+STR+STR+")"+VOID; //$NON-NLS-1$ //$NON-NLS-2$
static final String[] BYTECODE_NAME = new String[] {
"NOP", //$NON-NLS-1$
"ACONST_NULL", //$NON-NLS-1$
"ICONST_M1", //$NON-NLS-1$
"ICONST_0", //$NON-NLS-1$
"ICONST_1", //$NON-NLS-1$
"ICONST_2", //$NON-NLS-1$
"ICONST_3", //$NON-NLS-1$
"ICONST_4", //$NON-NLS-1$
"ICONST_5", //$NON-NLS-1$
"LCONST_0", //$NON-NLS-1$
"LCONST_1", //$NON-NLS-1$
"FCONST_0", //$NON-NLS-1$
"FCONST_1", //$NON-NLS-1$
"FCONST_2", //$NON-NLS-1$
"DCONST_0", //$NON-NLS-1$
"DCONST_1", //$NON-NLS-1$
"BIPUSH", //$NON-NLS-1$
"SIPUSH", //$NON-NLS-1$
"LDC", //$NON-NLS-1$
"LDC_W", //$NON-NLS-1$
"LDC2_W", //$NON-NLS-1$
"ILOAD", //$NON-NLS-1$
"LLOAD", //$NON-NLS-1$
"FLOAD", //$NON-NLS-1$
"DLOAD", //$NON-NLS-1$
"ALOAD", //$NON-NLS-1$
"ILOAD_0", //$NON-NLS-1$
"ILOAD_1", //$NON-NLS-1$
"ILOAD_2", //$NON-NLS-1$
"ILOAD_3", //$NON-NLS-1$
"LLOAD_0", //$NON-NLS-1$
"LLOAD_1", //$NON-NLS-1$
"LLOAD_2", //$NON-NLS-1$
"LLOAD_3", //$NON-NLS-1$
"FLOAD_0", //$NON-NLS-1$
"FLOAD_1", //$NON-NLS-1$
"FLOAD_2", //$NON-NLS-1$
"FLOAD_3", //$NON-NLS-1$
"DLOAD_0", //$NON-NLS-1$
"DLOAD_1", //$NON-NLS-1$
"DLOAD_2", //$NON-NLS-1$
"DLOAD_3", //$NON-NLS-1$
"ALOAD_0", //$NON-NLS-1$
"ALOAD_1", //$NON-NLS-1$
"ALOAD_2", //$NON-NLS-1$
"ALOAD_3", //$NON-NLS-1$
"IALOAD", //$NON-NLS-1$
"LALOAD", //$NON-NLS-1$
"FALOAD", //$NON-NLS-1$
"DALOAD", //$NON-NLS-1$
"AALOAD", //$NON-NLS-1$
"BALOAD", //$NON-NLS-1$
"CALOAD", //$NON-NLS-1$
"SALOAD", //$NON-NLS-1$
"ISTORE", //$NON-NLS-1$
"LSTORE", //$NON-NLS-1$
"FSTORE", //$NON-NLS-1$
"DSTORE", //$NON-NLS-1$
"ASTORE", //$NON-NLS-1$
"ISTORE_0", //$NON-NLS-1$
"ISTORE_1", //$NON-NLS-1$
"ISTORE_2", //$NON-NLS-1$
"ISTORE_3", //$NON-NLS-1$
"LSTORE_0", //$NON-NLS-1$
"LSTORE_1", //$NON-NLS-1$
"LSTORE_2", //$NON-NLS-1$
"LSTORE_3", //$NON-NLS-1$
"FSTORE_0", //$NON-NLS-1$
"FSTORE_1", //$NON-NLS-1$
"FSTORE_2", //$NON-NLS-1$
"FSTORE_3", //$NON-NLS-1$
"DSTORE_0", //$NON-NLS-1$
"DSTORE_1", //$NON-NLS-1$
"DSTORE_2", //$NON-NLS-1$
"DSTORE_3", //$NON-NLS-1$
"ASTORE_0", //$NON-NLS-1$
"ASTORE_1", //$NON-NLS-1$
"ASTORE_2", //$NON-NLS-1$
"ASTORE_3", //$NON-NLS-1$
"IASTORE", //$NON-NLS-1$
"LASTORE", //$NON-NLS-1$
"FASTORE", //$NON-NLS-1$
"DASTORE", //$NON-NLS-1$
"AASTORE", //$NON-NLS-1$
"BASTORE", //$NON-NLS-1$
"CASTORE", //$NON-NLS-1$
"SASTORE", //$NON-NLS-1$
"POP", //$NON-NLS-1$
"POP2", //$NON-NLS-1$
"DUP", //$NON-NLS-1$
"DUP_X1", //$NON-NLS-1$
"DUP_X2", //$NON-NLS-1$
"DUP2", //$NON-NLS-1$
"DUP2_X1", //$NON-NLS-1$
"DUP2_X2", //$NON-NLS-1$
"SWAP", //$NON-NLS-1$
"IADD", //$NON-NLS-1$
"LADD", //$NON-NLS-1$
"FADD", //$NON-NLS-1$
"DADD", //$NON-NLS-1$
"ISUB", //$NON-NLS-1$
"LSUB", //$NON-NLS-1$
"FSUB", //$NON-NLS-1$
"DSUB", //$NON-NLS-1$
"IMUL", //$NON-NLS-1$
"LMUL", //$NON-NLS-1$
"FMUL", //$NON-NLS-1$
"DMUL", //$NON-NLS-1$
"IDIV", //$NON-NLS-1$
"LDIV", //$NON-NLS-1$
"FDIV", //$NON-NLS-1$
"DDIV", //$NON-NLS-1$
"IREM", //$NON-NLS-1$
"LREM", //$NON-NLS-1$
"FREM", //$NON-NLS-1$
"DREM", //$NON-NLS-1$
"INEG", //$NON-NLS-1$
"LNEG", //$NON-NLS-1$
"FNEG", //$NON-NLS-1$
"DNEG", //$NON-NLS-1$
"ISHL", //$NON-NLS-1$
"LSHL", //$NON-NLS-1$
"ISHR", //$NON-NLS-1$
"LSHR", //$NON-NLS-1$
"IUSHR", //$NON-NLS-1$
"LUSHR", //$NON-NLS-1$
"IAND", //$NON-NLS-1$
"LAND", //$NON-NLS-1$
"IOR", //$NON-NLS-1$
"LOR", //$NON-NLS-1$
"IXOR", //$NON-NLS-1$
"LXOR", //$NON-NLS-1$
"IINC", //$NON-NLS-1$
"I2L", //$NON-NLS-1$
"I2F", //$NON-NLS-1$
"I2D", //$NON-NLS-1$
"L2I", //$NON-NLS-1$
"L2F", //$NON-NLS-1$
"L2D", //$NON-NLS-1$
"F2I", //$NON-NLS-1$
"F2L", //$NON-NLS-1$
"F2D", //$NON-NLS-1$
"D2I", //$NON-NLS-1$
"D2L", //$NON-NLS-1$
"D2F", //$NON-NLS-1$
"I2B", //$NON-NLS-1$
"I2C", //$NON-NLS-1$
"I2S", //$NON-NLS-1$
"LCMP", //$NON-NLS-1$
"FCMPL", //$NON-NLS-1$
"FCMPG", //$NON-NLS-1$
"DCMPL", //$NON-NLS-1$
"DCMPG", //$NON-NLS-1$
"IFEQ", //$NON-NLS-1$
"IFNE", //$NON-NLS-1$
"IFLT", //$NON-NLS-1$
"IFGE", //$NON-NLS-1$
"IFGT", //$NON-NLS-1$
"IFLE", //$NON-NLS-1$
"IF_ICMPEQ", //$NON-NLS-1$
"IF_ICMPNE", //$NON-NLS-1$
"IF_ICMPLT", //$NON-NLS-1$
"IF_ICMPGE", //$NON-NLS-1$
"IF_ICMPGT", //$NON-NLS-1$
"IF_ICMPLE", //$NON-NLS-1$
"IF_ACMPEQ", //$NON-NLS-1$
"IF_ACMPNE", //$NON-NLS-1$
"GOTO", //$NON-NLS-1$
"JSR", //$NON-NLS-1$
"RET", //$NON-NLS-1$
"TABLESWITCH", //$NON-NLS-1$
"LOOKUPSWITCH", //$NON-NLS-1$
"IRETURN", //$NON-NLS-1$
"LRETURN", //$NON-NLS-1$
"FRETURN", //$NON-NLS-1$
"DRETURN", //$NON-NLS-1$
"ARETURN", //$NON-NLS-1$
"RETURN", //$NON-NLS-1$
"GETSTATIC", //$NON-NLS-1$
"PUTSTATIC", //$NON-NLS-1$
"GETFIELD", //$NON-NLS-1$
"PUTFIELD", //$NON-NLS-1$
"INVOKEVIRTUAL", //$NON-NLS-1$
"INVOKESPECIAL", //$NON-NLS-1$
"INVOKESTATIC", //$NON-NLS-1$
"INVOKEINTERFACE", //$NON-NLS-1$
"UNUSED", //$NON-NLS-1$
"NEW", //$NON-NLS-1$
"NEWARRAY", //$NON-NLS-1$
"ANEWARRAY", //$NON-NLS-1$
"ARRAYLENGTH", //$NON-NLS-1$
"ATHROW", //$NON-NLS-1$
"CHECKCAST", //$NON-NLS-1$
"INSTANCEOF", //$NON-NLS-1$
"MONITORENTER", //$NON-NLS-1$
"MONITOREXIT", //$NON-NLS-1$
"WIDE", //$NON-NLS-1$
"MULTIANEWARRAY", //$NON-NLS-1$
"IFNULL", //$NON-NLS-1$
"IFNONNULL", //$NON-NLS-1$
"GOTO_W", //$NON-NLS-1$
"JSR_W"}; //$NON-NLS-1$
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy