Search in sources :

Example 41 with ReferenceConstant

use of org.evosuite.symbolic.expr.ref.ReferenceConstant in project evosuite by EvoSuite.

the class S_ValueOf method executeFunction.

@Override
public Object executeFunction() {
    IntegerValue int_value = this.getSymbIntegerArgument(0);
    ReferenceConstant symb_short = (ReferenceConstant) this.getSymbRetVal();
    Short conc_short = (Short) this.getConcRetVal();
    env.heap.putField(Types.JAVA_LANG_SHORT, SymbolicHeap.$SHORT_VALUE, conc_short, symb_short, int_value);
    return symb_short;
}
Also used : ReferenceConstant(org.evosuite.symbolic.expr.ref.ReferenceConstant) IntegerValue(org.evosuite.symbolic.expr.bv.IntegerValue)

Example 42 with ReferenceConstant

use of org.evosuite.symbolic.expr.ref.ReferenceConstant in project evosuite by EvoSuite.

the class D_DoubleValue method executeFunction.

@Override
public Object executeFunction() {
    ReferenceConstant symb_double = this.getSymbReceiver();
    Double conc_double = (Double) this.getConcReceiver();
    double conc_double_value = this.getConcDoubleRetVal();
    RealValue symb_int_value = env.heap.getField(Types.JAVA_LANG_DOUBLE, SymbolicHeap.$DOUBLE_VALUE, conc_double, symb_double, conc_double_value);
    return symb_int_value;
}
Also used : ReferenceConstant(org.evosuite.symbolic.expr.ref.ReferenceConstant) RealValue(org.evosuite.symbolic.expr.fp.RealValue)

Example 43 with ReferenceConstant

use of org.evosuite.symbolic.expr.ref.ReferenceConstant in project evosuite by EvoSuite.

the class StringBuilder_Init method executeFunction.

@Override
public Object executeFunction() {
    // symbolic receiver (new object)
    ReferenceConstant symb_str_builder = (ReferenceConstant) this.getSymbReceiver();
    // string argument
    String conc_str = (String) this.getConcArgument(0);
    ReferenceExpression symb_str = this.getSymbArgument(0);
    if (symb_str instanceof ReferenceConstant) {
        ReferenceConstant non_null_symb_string = (ReferenceConstant) symb_str;
        assert conc_str != null;
        StringValue strExpr = env.heap.getField(Types.JAVA_LANG_STRING, SymbolicHeap.$STRING_VALUE, conc_str, non_null_symb_string, conc_str);
        // update symbolic heap
        env.heap.putField(Types.JAVA_LANG_STRING_BUILDER, SymbolicHeap.$STRING_BUILDER_CONTENTS, null, symb_str_builder, strExpr);
    }
    // return void
    return null;
}
Also used : ReferenceConstant(org.evosuite.symbolic.expr.ref.ReferenceConstant) ReferenceExpression(org.evosuite.symbolic.expr.ref.ReferenceExpression) StringValue(org.evosuite.symbolic.expr.str.StringValue)

Example 44 with ReferenceConstant

use of org.evosuite.symbolic.expr.ref.ReferenceConstant in project evosuite by EvoSuite.

the class Reader_Read method executeFunction.

@Override
public Object executeFunction() {
    Reader conc_reader = (Reader) this.getConcReceiver();
    if (conc_reader instanceof StringReader) {
        ReferenceConstant symb_str_reader = this.getSymbReceiver();
        StringReader conc_str_reader = (StringReader) conc_reader;
        StringReaderExpr stringReaderExpr = (StringReaderExpr) env.heap.getField(Types.JAVA_IO_STRING_READER, SymbolicHeap.$STRING_READER_VALUE, conc_str_reader, symb_str_reader);
        if (stringReaderExpr != null && stringReaderExpr.containsSymbolicVariable()) {
            StringValue symb_string = stringReaderExpr.getString();
            String conc_string = symb_string.getConcreteValue();
            int currPosition = stringReaderExpr.getReaderPosition();
            if (currPosition < conc_string.length()) {
                // update symbolic string reader
                currPosition++;
                int conc_string_reader_value;
                if (currPosition >= conc_string.length()) {
                    conc_string_reader_value = -1;
                } else {
                    conc_string_reader_value = conc_string.charAt(currPosition);
                }
                StringReaderExpr newStringReaderExpr = new StringReaderExpr((long) conc_string_reader_value, symb_string, currPosition);
                env.heap.putField(Types.JAVA_IO_STRING_READER, SymbolicHeap.$STRING_READER_VALUE, conc_str_reader, symb_str_reader, newStringReaderExpr);
            }
            // returns STRING_READER(string,currPosition)
            return stringReaderExpr;
        }
    }
    return this.getSymbIntegerRetVal();
}
Also used : ReferenceConstant(org.evosuite.symbolic.expr.ref.ReferenceConstant) StringReaderExpr(org.evosuite.symbolic.expr.reader.StringReaderExpr) StringReader(java.io.StringReader) StringReader(java.io.StringReader) Reader(java.io.Reader) StringValue(org.evosuite.symbolic.expr.str.StringValue)

Example 45 with ReferenceConstant

use of org.evosuite.symbolic.expr.ref.ReferenceConstant in project evosuite by EvoSuite.

the class I_ParseInt method executeFunction.

@Override
public Object executeFunction() {
    ReferenceConstant symb_string_ref = (ReferenceConstant) this.getSymbArgument(0);
    String conc_string = (String) this.getConcArgument(0);
    int conc_integer = this.getConcIntRetVal();
    StringValue symb_string_value = env.heap.getField(org.evosuite.symbolic.vm.regex.Types.JAVA_LANG_STRING, SymbolicHeap.$STRING_VALUE, conc_string, symb_string_ref, conc_string);
    long longValue = (long) conc_integer;
    StringToIntegerCast parse_int_value = new StringToIntegerCast(symb_string_value, longValue);
    return parse_int_value;
}
Also used : ReferenceConstant(org.evosuite.symbolic.expr.ref.ReferenceConstant) StringToIntegerCast(org.evosuite.symbolic.expr.bv.StringToIntegerCast) StringValue(org.evosuite.symbolic.expr.str.StringValue) IntegerConstraint(org.evosuite.symbolic.expr.IntegerConstraint)

Aggregations

ReferenceConstant (org.evosuite.symbolic.expr.ref.ReferenceConstant)99 StringValue (org.evosuite.symbolic.expr.str.StringValue)39 IntegerValue (org.evosuite.symbolic.expr.bv.IntegerValue)32 ReferenceExpression (org.evosuite.symbolic.expr.ref.ReferenceExpression)18 CodeUnderTestException (org.evosuite.testcase.execution.CodeUnderTestException)16 VariableReference (org.evosuite.testcase.variable.VariableReference)14 Type (org.objectweb.asm.Type)12 RealValue (org.evosuite.symbolic.expr.fp.RealValue)11 EvosuiteError (org.evosuite.testcase.execution.EvosuiteError)11 Expression (org.evosuite.symbolic.expr.Expression)9 StringBinaryComparison (org.evosuite.symbolic.expr.bv.StringBinaryComparison)8 IntegerVariable (org.evosuite.symbolic.expr.bv.IntegerVariable)6 PrimitiveExpression (org.evosuite.testcase.statements.PrimitiveExpression)5 StringConstant (org.evosuite.symbolic.expr.str.StringConstant)4 BigInteger (java.math.BigInteger)3 ArrayList (java.util.ArrayList)3 IntegerConstraint (org.evosuite.symbolic.expr.IntegerConstraint)3 IntegerConstant (org.evosuite.symbolic.expr.bv.IntegerConstant)3 StringBinaryToIntegerExpression (org.evosuite.symbolic.expr.bv.StringBinaryToIntegerExpression)3 StringReaderExpr (org.evosuite.symbolic.expr.reader.StringReaderExpr)3