8143407: C1: @Stable array support

Reviewed-by: twisti
This commit is contained in:
Vladimir Ivanov 2016-03-14 12:35:52 +03:00
parent ffdd79f89c
commit 6ea5772a9b
14 changed files with 321 additions and 321 deletions

View File

@ -257,7 +257,38 @@ void Canonicalizer::do_ArrayLength (ArrayLength* x) {
}
}
void Canonicalizer::do_LoadIndexed (LoadIndexed* x) {}
void Canonicalizer::do_LoadIndexed (LoadIndexed* x) {
StableArrayConstant* array = x->array()->type()->as_StableArrayConstant();
IntConstant* index = x->index()->type()->as_IntConstant();
assert(array == NULL || FoldStableValues, "not enabled");
// Constant fold loads from stable arrays.
if (array != NULL && index != NULL) {
jint idx = index->value();
if (idx < 0 || idx >= array->value()->length()) {
// Leave the load as is. The range check will handle it.
return;
}
ciConstant field_val = array->value()->element_value(idx);
if (!field_val.is_null_or_zero()) {
jint dimension = array->dimension();
assert(dimension <= array->value()->array_type()->dimension(), "inconsistent info");
ValueType* value = NULL;
if (dimension > 1) {
// Preserve information about the dimension for the element.
assert(field_val.as_object()->is_array(), "not an array");
value = new StableArrayConstant(field_val.as_object()->as_array(), dimension - 1);
} else {
assert(dimension == 1, "sanity");
value = as_ValueType(field_val);
}
set_canonical(new Constant(value));
}
}
}
void Canonicalizer::do_StoreIndexed (StoreIndexed* x) {
// If a value is going to be stored into a field or array some of
// the conversions emitted by javac are unneeded because the fields

View File

@ -1519,6 +1519,29 @@ void GraphBuilder::method_return(Value x) {
append(new Return(x));
}
Value GraphBuilder::make_constant(ciConstant field_value, ciField* field) {
BasicType field_type = field_value.basic_type();
ValueType* value = as_ValueType(field_value);
// Attach dimension info to stable arrays.
if (FoldStableValues &&
field->is_stable() && field_type == T_ARRAY && !field_value.is_null_or_zero()) {
ciArray* array = field_value.as_object()->as_array();
jint dimension = field->type()->as_array_klass()->dimension();
value = new StableArrayConstant(array, dimension);
}
switch (field_type) {
case T_ARRAY:
case T_OBJECT:
if (field_value.as_object()->should_be_constant()) {
return new Constant(value);
}
return NULL; // Not a constant.
default:
return new Constant(value);
}
}
void GraphBuilder::access_field(Bytecodes::Code code) {
bool will_link;
@ -1563,22 +1586,13 @@ void GraphBuilder::access_field(Bytecodes::Code code) {
switch (code) {
case Bytecodes::_getstatic: {
// check for compile-time constants, i.e., initialized static final fields
Instruction* constant = NULL;
Value constant = NULL;
if (field->is_constant() && !PatchALot) {
ciConstant field_val = field->constant_value();
BasicType field_type = field_val.basic_type();
switch (field_type) {
case T_ARRAY:
case T_OBJECT:
if (field_val.as_object()->should_be_constant()) {
constant = new Constant(as_ValueType(field_val));
}
break;
default:
constant = new Constant(as_ValueType(field_val));
}
ciConstant field_value = field->constant_value();
// Stable static fields are checked for non-default values in ciField::initialize_from().
assert(!field->is_stable() || !field_value.is_null_or_zero(),
"stable static w/ default value shouldn't be a constant");
constant = make_constant(field_value, field);
}
if (constant != NULL) {
push(type, append(constant));
@ -1591,38 +1605,29 @@ void GraphBuilder::access_field(Bytecodes::Code code) {
}
break;
}
case Bytecodes::_putstatic:
{ Value val = pop(type);
if (state_before == NULL) {
state_before = copy_state_for_exception();
}
append(new StoreField(append(obj), offset, field, val, true, state_before, needs_patching));
case Bytecodes::_putstatic: {
Value val = pop(type);
if (state_before == NULL) {
state_before = copy_state_for_exception();
}
append(new StoreField(append(obj), offset, field, val, true, state_before, needs_patching));
break;
}
case Bytecodes::_getfield: {
// Check for compile-time constants, i.e., trusted final non-static fields.
Instruction* constant = NULL;
Value constant = NULL;
obj = apop();
ObjectType* obj_type = obj->type()->as_ObjectType();
if (obj_type->is_constant() && !PatchALot) {
ciObject* const_oop = obj_type->constant_value();
if (!const_oop->is_null_object() && const_oop->is_loaded()) {
if (field->is_constant()) {
ciConstant field_val = field->constant_value_of(const_oop);
BasicType field_type = field_val.basic_type();
switch (field_type) {
case T_ARRAY:
case T_OBJECT:
if (field_val.as_object()->should_be_constant()) {
constant = new Constant(as_ValueType(field_val));
}
break;
default:
constant = new Constant(as_ValueType(field_val));
}
if (FoldStableValues && field->is_stable() && field_val.is_null_or_zero()) {
ciConstant field_value = field->constant_value_of(const_oop);
if (FoldStableValues && field->is_stable() && field_value.is_null_or_zero()) {
// Stable field with default value can't be constant.
constant = NULL;
} else {
constant = make_constant(field_value, field);
}
} else {
// For CallSite objects treat the target field as a compile time constant.

View File

@ -276,6 +276,7 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC {
void iterate_all_blocks(bool start_in_current_block_for_inlining = false);
Dependencies* dependency_recorder() const; // = compilation()->dependencies()
bool direct_compare(ciKlass* k);
Value make_constant(ciConstant value, ciField* field);
void kill_all();

View File

@ -45,6 +45,7 @@ class ObjectType;
class ObjectConstant;
class ArrayType;
class ArrayConstant;
class StableArrayConstant;
class InstanceType;
class InstanceConstant;
class MetadataType;
@ -168,6 +169,7 @@ class ValueType: public CompilationResourceObj {
virtual MethodConstant* as_MethodConstant() { return NULL; }
virtual MethodDataConstant* as_MethodDataConstant() { return NULL; }
virtual ArrayConstant* as_ArrayConstant() { return NULL; }
virtual StableArrayConstant* as_StableArrayConstant() { return NULL; }
virtual AddressConstant* as_AddressConstant() { return NULL; }
// type operations
@ -355,6 +357,20 @@ class ArrayConstant: public ArrayType {
virtual ciType* exact_type() const;
};
class StableArrayConstant: public ArrayConstant {
private:
jint _dimension;
public:
StableArrayConstant(ciArray* value, jint dimension) : ArrayConstant(value) {
assert(dimension > 0, "not a stable array");
_dimension = dimension;
}
jint dimension() const { return _dimension; }
virtual StableArrayConstant* as_StableArrayConstant() { return this; }
};
class InstanceType: public ObjectType {
public:

View File

@ -31,54 +31,10 @@ import sun.hotspot.WhiteBox;
public class StableConfiguration {
static final WhiteBox WB = WhiteBox.getWhiteBox();
static final boolean isStableEnabled;
static final boolean isServerWithStable;
static {
Boolean value = WB.getBooleanVMFlag("FoldStableValues");
isStableEnabled = (value == null ? false : value);
isServerWithStable = isStableEnabled && get();
System.out.println("@Stable: " + (isStableEnabled ? "enabled" : "disabled"));
System.out.println("Server Compiler: " + get());
}
// The method 'get' below returns true if the method is server compiled
// and is used by the Stable tests to determine whether methods in
// general are being server compiled or not as the -XX:+FoldStableValues
// option is only applicable to -server.
//
// On aarch64 we DeOptimize when patching. This means that when the
// method is compiled as a result of -Xcomp it DeOptimizes immediately.
// The result is that getMethodCompilationLevel returns 0. This means
// the method returns true based on java.vm.name.
//
// However when the tests are run with -XX:+TieredCompilation and
// -XX:TieredStopAtLevel=1 this fails because methods will always
// be client compiled.
//
// Solution is to add a simple method 'get1' which should never be
// DeOpted and use that to determine the compilation level instead.
static void get1() {
}
// ::get() is among immediately compiled methods.
static boolean get() {
try {
get1();
Method m = StableConfiguration.class.getDeclaredMethod("get1");
int level = WB.getMethodCompilationLevel(m);
if (level > 0) {
return (level == 4);
} else {
String javaVM = System.getProperty("java.vm.name", "");
if (javaVM.contains("Server")) return true;
if (javaVM.contains("Client")) return false;
throw new Error("Unknown VM type: "+javaVM);
}
} catch (NoSuchMethodException e) {
throw new Error(e);
}
}
}

View File

@ -87,8 +87,7 @@ import jdk.internal.vm.annotation.Stable;
import java.lang.reflect.InvocationTargetException;
public class TestStableBoolean {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,14 +208,14 @@ public class TestStableBoolean {
c.v = new boolean[1]; c.v[0] = true; boolean val1 = get();
c.v[0] = false; boolean val2 = get();
assertEquals(val1, true);
assertEquals(val2, (isServerWithStable ? true : false));
assertEquals(val2, (isStableEnabled ? true : false));
}
{
c.v = new boolean[20]; c.v[10] = true; boolean val1 = get1();
c.v[10] = false; boolean val2 = get1();
assertEquals(val1, true);
assertEquals(val2, (isServerWithStable ? true : false));
assertEquals(val2, (isStableEnabled ? true : false));
}
{
@ -241,19 +240,19 @@ public class TestStableBoolean {
c.v = new boolean[1][1]; c.v[0][0] = true; boolean val1 = get();
c.v[0][0] = false; boolean val2 = get();
assertEquals(val1, true);
assertEquals(val2, (isServerWithStable ? true : false));
assertEquals(val2, (isStableEnabled ? true : false));
c.v = new boolean[1][1]; c.v[0][0] = false; boolean val3 = get();
assertEquals(val3, (isServerWithStable ? true : false));
assertEquals(val3, (isStableEnabled ? true : false));
c.v[0] = new boolean[1]; c.v[0][0] = false; boolean val4 = get();
assertEquals(val4, (isServerWithStable ? true : false));
assertEquals(val4, (isStableEnabled ? true : false));
}
{
c.v = new boolean[1][1]; boolean[] val1 = get1();
c.v[0] = new boolean[1]; boolean[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -279,28 +278,28 @@ public class TestStableBoolean {
c.v = new boolean[1][1][1]; c.v[0][0][0] = true; boolean val1 = get();
c.v[0][0][0] = false; boolean val2 = get();
assertEquals(val1, true);
assertEquals(val2, (isServerWithStable ? true : false));
assertEquals(val2, (isStableEnabled ? true : false));
c.v = new boolean[1][1][1]; c.v[0][0][0] = false; boolean val3 = get();
assertEquals(val3, (isServerWithStable ? true : false));
assertEquals(val3, (isStableEnabled ? true : false));
c.v[0] = new boolean[1][1]; c.v[0][0][0] = false; boolean val4 = get();
assertEquals(val4, (isServerWithStable ? true : false));
assertEquals(val4, (isStableEnabled ? true : false));
c.v[0][0] = new boolean[1]; c.v[0][0][0] = false; boolean val5 = get();
assertEquals(val5, (isServerWithStable ? true : false));
assertEquals(val5, (isStableEnabled ? true : false));
}
{
c.v = new boolean[1][1][1]; boolean[] val1 = get1();
c.v[0][0] = new boolean[1]; boolean[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new boolean[1][1][1]; boolean[][] val1 = get2();
c.v[0] = new boolean[1][1]; boolean[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -327,37 +326,37 @@ public class TestStableBoolean {
c.v = new boolean[1][1][1][1]; c.v[0][0][0][0] = true; boolean val1 = get();
c.v[0][0][0][0] = false; boolean val2 = get();
assertEquals(val1, true);
assertEquals(val2, (isServerWithStable ? true : false));
assertEquals(val2, (isStableEnabled ? true : false));
c.v = new boolean[1][1][1][1]; c.v[0][0][0][0] = false; boolean val3 = get();
assertEquals(val3, (isServerWithStable ? true : false));
assertEquals(val3, (isStableEnabled ? true : false));
c.v[0] = new boolean[1][1][1]; c.v[0][0][0][0] = false; boolean val4 = get();
assertEquals(val4, (isServerWithStable ? true : false));
assertEquals(val4, (isStableEnabled ? true : false));
c.v[0][0] = new boolean[1][1]; c.v[0][0][0][0] = false; boolean val5 = get();
assertEquals(val5, (isServerWithStable ? true : false));
assertEquals(val5, (isStableEnabled ? true : false));
c.v[0][0][0] = new boolean[1]; c.v[0][0][0][0] = false; boolean val6 = get();
assertEquals(val6, (isServerWithStable ? true : false));
assertEquals(val6, (isStableEnabled ? true : false));
}
{
c.v = new boolean[1][1][1][1]; boolean[] val1 = get1();
c.v[0][0][0] = new boolean[1]; boolean[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new boolean[1][1][1][1]; boolean[][] val1 = get2();
c.v[0][0] = new boolean[1][1]; boolean[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new boolean[1][1][1][1]; boolean[][][] val1 = get3();
c.v[0] = new boolean[1][1][1]; boolean[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -420,7 +419,7 @@ public class TestStableBoolean {
c.v = new boolean[1][1]; c.v[0] = new boolean[0]; boolean[] val1 = get1();
c.v[0] = new boolean[0]; boolean[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -456,14 +455,14 @@ public class TestStableBoolean {
c.v = new boolean[1][1][1]; c.v[0][0] = new boolean[0]; boolean[] val1 = get1();
c.v[0][0] = new boolean[0]; boolean[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new boolean[1][1][1]; c.v[0] = new boolean[0][0]; boolean[][] val1 = get2();
c.v[0] = new boolean[0][0]; boolean[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -598,7 +597,7 @@ public class TestStableBoolean {
elem.a = false; boolean val3 = get(); boolean val4 = get1();
assertEquals(val1, true);
assertEquals(val3, (isServerWithStable ? true : false));
assertEquals(val3, (isStableEnabled ? true : false));
assertEquals(val2, true);
assertEquals(val4, false);

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableByte {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableByte {
c.v = new byte[1]; c.v[0] = 1; byte val1 = get();
c.v[0] = 2; byte val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new byte[1]; c.v[0] = 3; byte val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -220,10 +219,10 @@ public class TestStableByte {
c.v = new byte[20]; c.v[10] = 1; byte val1 = get1();
c.v[10] = 2; byte val2 = get1();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new byte[20]; c.v[10] = 3; byte val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -249,21 +248,21 @@ public class TestStableByte {
c.v = new byte[1][1]; c.v[0][0] = 1; byte val1 = get();
c.v[0][0] = 2; byte val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new byte[1][1]; c.v[0][0] = 3; byte val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new byte[1]; c.v[0][0] = 4; byte val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
}
{
c.v = new byte[1][1]; byte[] val1 = get1();
c.v[0] = new byte[1]; byte[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableByte {
c.v = new byte[1][1][1]; c.v[0][0][0] = 1; byte val1 = get();
c.v[0][0][0] = 2; byte val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new byte[1][1][1]; c.v[0][0][0] = 3; byte val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new byte[1][1]; c.v[0][0][0] = 4; byte val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new byte[1]; c.v[0][0][0] = 5; byte val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
}
{
c.v = new byte[1][1][1]; byte[] val1 = get1();
c.v[0][0] = new byte[1]; byte[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new byte[1][1][1]; byte[][] val1 = get2();
c.v[0] = new byte[1][1]; byte[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableByte {
c.v = new byte[1][1][1][1]; c.v[0][0][0][0] = 1; byte val1 = get();
c.v[0][0][0][0] = 2; byte val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new byte[1][1][1][1]; c.v[0][0][0][0] = 3; byte val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new byte[1][1][1]; c.v[0][0][0][0] = 4; byte val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new byte[1][1]; c.v[0][0][0][0] = 5; byte val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
c.v[0][0][0] = new byte[1]; c.v[0][0][0][0] = 6; byte val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 6));
}
{
c.v = new byte[1][1][1][1]; byte[] val1 = get1();
c.v[0][0][0] = new byte[1]; byte[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new byte[1][1][1][1]; byte[][] val1 = get2();
c.v[0][0] = new byte[1][1]; byte[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new byte[1][1][1][1]; byte[][][] val1 = get3();
c.v[0] = new byte[1][1][1]; byte[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -436,7 +435,7 @@ public class TestStableByte {
c.v = new byte[1][1]; c.v[0] = new byte[0]; byte[] val1 = get1();
c.v[0] = new byte[0]; byte[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -472,14 +471,14 @@ public class TestStableByte {
c.v = new byte[1][1][1]; c.v[0][0] = new byte[0]; byte[] val1 = get1();
c.v[0][0] = new byte[0]; byte[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new byte[1][1][1]; c.v[0] = new byte[0][0]; byte[][] val1 = get2();
c.v[0] = new byte[0][0]; byte[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -614,7 +613,7 @@ public class TestStableByte {
elem.a = 2; byte val3 = get(); byte val4 = get1();
assertEquals(val1, 1);
assertEquals(val3, (isServerWithStable ? 1 : 2));
assertEquals(val3, (isStableEnabled ? 1 : 2));
assertEquals(val2, 1);
assertEquals(val4, 2);

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableChar {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableChar {
c.v = new char[1]; c.v[0] = 'a'; char val1 = get();
c.v[0] = 'b'; char val2 = get();
assertEquals(val1, 'a');
assertEquals(val2, (isServerWithStable ? 'a' : 'b'));
assertEquals(val2, (isStableEnabled ? 'a' : 'b'));
c.v = new char[1]; c.v[0] = 'c'; char val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'c'));
}
@ -220,10 +219,10 @@ public class TestStableChar {
c.v = new char[20]; c.v[10] = 'a'; char val1 = get1();
c.v[10] = 'b'; char val2 = get1();
assertEquals(val1, 'a');
assertEquals(val2, (isServerWithStable ? 'a' : 'b'));
assertEquals(val2, (isStableEnabled ? 'a' : 'b'));
c.v = new char[20]; c.v[10] = 'c'; char val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'c'));
}
@ -249,21 +248,21 @@ public class TestStableChar {
c.v = new char[1][1]; c.v[0][0] = 'a'; char val1 = get();
c.v[0][0] = 'b'; char val2 = get();
assertEquals(val1, 'a');
assertEquals(val2, (isServerWithStable ? 'a' : 'b'));
assertEquals(val2, (isStableEnabled ? 'a' : 'b'));
c.v = new char[1][1]; c.v[0][0] = 'c'; char val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'c'));
c.v[0] = new char[1]; c.v[0][0] = 'd'; char val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'd'));
}
{
c.v = new char[1][1]; char[] val1 = get1();
c.v[0] = new char[1]; char[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableChar {
c.v = new char[1][1][1]; c.v[0][0][0] = 'a'; char val1 = get();
c.v[0][0][0] = 'b'; char val2 = get();
assertEquals(val1, 'a');
assertEquals(val2, (isServerWithStable ? 'a' : 'b'));
assertEquals(val2, (isStableEnabled ? 'a' : 'b'));
c.v = new char[1][1][1]; c.v[0][0][0] = 'c'; char val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'c'));
c.v[0] = new char[1][1]; c.v[0][0][0] = 'd'; char val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'd'));
c.v[0][0] = new char[1]; c.v[0][0][0] = 'e'; char val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'e'));
}
{
c.v = new char[1][1][1]; char[] val1 = get1();
c.v[0][0] = new char[1]; char[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new char[1][1][1]; char[][] val1 = get2();
c.v[0] = new char[1][1]; char[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableChar {
c.v = new char[1][1][1][1]; c.v[0][0][0][0] = 'a'; char val1 = get();
c.v[0][0][0][0] = 'b'; char val2 = get();
assertEquals(val1, 'a');
assertEquals(val2, (isServerWithStable ? 'a' : 'b'));
assertEquals(val2, (isStableEnabled ? 'a' : 'b'));
c.v = new char[1][1][1][1]; c.v[0][0][0][0] = 'c'; char val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'c'));
c.v[0] = new char[1][1][1]; c.v[0][0][0][0] = 'd'; char val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'd'));
c.v[0][0] = new char[1][1]; c.v[0][0][0][0] = 'e'; char val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'e'));
c.v[0][0][0] = new char[1]; c.v[0][0][0][0] = 'f'; char val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 'a' : 'b')
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 'a' : 'b')
: 'f'));
}
{
c.v = new char[1][1][1][1]; char[] val1 = get1();
c.v[0][0][0] = new char[1]; char[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new char[1][1][1][1]; char[][] val1 = get2();
c.v[0][0] = new char[1][1]; char[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new char[1][1][1][1]; char[][][] val1 = get3();
c.v[0] = new char[1][1][1]; char[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -434,7 +433,7 @@ public class TestStableChar {
c.v = new char[1][1]; c.v[0] = new char[0]; char[] val1 = get1();
c.v[0] = new char[0]; char[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -470,14 +469,14 @@ public class TestStableChar {
c.v = new char[1][1][1]; c.v[0][0] = new char[0]; char[] val1 = get1();
c.v[0][0] = new char[0]; char[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new char[1][1][1]; c.v[0] = new char[0][0]; char[][] val1 = get2();
c.v[0] = new char[0][0]; char[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -612,7 +611,7 @@ public class TestStableChar {
elem.a = 'b'; char val3 = get(); char val4 = get1();
assertEquals(val1, 'a');
assertEquals(val3, (isServerWithStable ? 'a' : 'b'));
assertEquals(val3, (isStableEnabled ? 'a' : 'b'));
assertEquals(val2, 'a');
assertEquals(val4, 'b');

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableDouble {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableDouble {
c.v = new double[1]; c.v[0] = 1.0; double val1 = get();
c.v[0] = 2.0; double val2 = get();
assertEquals(val1, 1.0);
assertEquals(val2, (isServerWithStable ? 1.0 : 2.0));
assertEquals(val2, (isStableEnabled ? 1.0 : 2.0));
c.v = new double[1]; c.v[0] = 3.0; double val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 3.0));
}
@ -220,10 +219,10 @@ public class TestStableDouble {
c.v = new double[20]; c.v[10] = 1.0; double val1 = get1();
c.v[10] = 2.0; double val2 = get1();
assertEquals(val1, 1.0);
assertEquals(val2, (isServerWithStable ? 1.0 : 2.0));
assertEquals(val2, (isStableEnabled ? 1.0 : 2.0));
c.v = new double[20]; c.v[10] = 3.0; double val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 3.0));
}
@ -249,21 +248,21 @@ public class TestStableDouble {
c.v = new double[1][1]; c.v[0][0] = 1.0; double val1 = get();
c.v[0][0] = 2.0; double val2 = get();
assertEquals(val1, 1.0);
assertEquals(val2, (isServerWithStable ? 1.0 : 2.0));
assertEquals(val2, (isStableEnabled ? 1.0 : 2.0));
c.v = new double[1][1]; c.v[0][0] = 3.0; double val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 3.0));
c.v[0] = new double[1]; c.v[0][0] = 4.0; double val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 4.0));
}
{
c.v = new double[1][1]; double[] val1 = get1();
c.v[0] = new double[1]; double[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableDouble {
c.v = new double[1][1][1]; c.v[0][0][0] = 1.0; double val1 = get();
c.v[0][0][0] = 2.0; double val2 = get();
assertEquals(val1, 1.0);
assertEquals(val2, (isServerWithStable ? 1.0 : 2.0));
assertEquals(val2, (isStableEnabled ? 1.0 : 2.0));
c.v = new double[1][1][1]; c.v[0][0][0] = 3.0; double val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 3.0));
c.v[0] = new double[1][1]; c.v[0][0][0] = 4.0; double val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 4.0));
c.v[0][0] = new double[1]; c.v[0][0][0] = 5.0; double val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 5.0));
}
{
c.v = new double[1][1][1]; double[] val1 = get1();
c.v[0][0] = new double[1]; double[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new double[1][1][1]; double[][] val1 = get2();
c.v[0] = new double[1][1]; double[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableDouble {
c.v = new double[1][1][1][1]; c.v[0][0][0][0] = 1.0; double val1 = get();
c.v[0][0][0][0] = 2.0; double val2 = get();
assertEquals(val1, 1.0);
assertEquals(val2, (isServerWithStable ? 1.0 : 2.0));
assertEquals(val2, (isStableEnabled ? 1.0 : 2.0));
c.v = new double[1][1][1][1]; c.v[0][0][0][0] = 3.0; double val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 3.0));
c.v[0] = new double[1][1][1]; c.v[0][0][0][0] = 4.0; double val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 4.0));
c.v[0][0] = new double[1][1]; c.v[0][0][0][0] = 5.0; double val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 5.0));
c.v[0][0][0] = new double[1]; c.v[0][0][0][0] = 6.0; double val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1.0 : 2.0)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1.0 : 2.0)
: 6.0));
}
{
c.v = new double[1][1][1][1]; double[] val1 = get1();
c.v[0][0][0] = new double[1]; double[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new double[1][1][1][1]; double[][] val1 = get2();
c.v[0][0] = new double[1][1]; double[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new double[1][1][1][1]; double[][][] val1 = get3();
c.v[0] = new double[1][1][1]; double[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -434,7 +433,7 @@ public class TestStableDouble {
c.v = new double[1][1]; c.v[0] = new double[0]; double[] val1 = get1();
c.v[0] = new double[0]; double[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -470,14 +469,14 @@ public class TestStableDouble {
c.v = new double[1][1][1]; c.v[0][0] = new double[0]; double[] val1 = get1();
c.v[0][0] = new double[0]; double[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new double[1][1][1]; c.v[0] = new double[0][0]; double[][] val1 = get2();
c.v[0] = new double[0][0]; double[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -612,7 +611,7 @@ public class TestStableDouble {
elem.a = 2.0; double val3 = get(); double val4 = get1();
assertEquals(val1, 1.0);
assertEquals(val3, (isServerWithStable ? 1.0 : 2.0));
assertEquals(val3, (isStableEnabled ? 1.0 : 2.0));
assertEquals(val2, 1.0);
assertEquals(val4, 2.0);

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableFloat {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableFloat {
c.v = new float[1]; c.v[0] = 1.0F; float val1 = get();
c.v[0] = 2.0F; float val2 = get();
assertEquals(val1, 1.0F);
assertEquals(val2, (isServerWithStable ? 1.0F : 2.0F));
assertEquals(val2, (isStableEnabled ? 1.0F : 2.0F));
c.v = new float[1]; c.v[0] = 3.0F; float val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 3.0F));
}
@ -220,10 +219,10 @@ public class TestStableFloat {
c.v = new float[20]; c.v[10] = 1.0F; float val1 = get1();
c.v[10] = 2.0F; float val2 = get1();
assertEquals(val1, 1.0F);
assertEquals(val2, (isServerWithStable ? 1.0F : 2.0F));
assertEquals(val2, (isStableEnabled ? 1.0F : 2.0F));
c.v = new float[20]; c.v[10] = 3.0F; float val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 3.0F));
}
@ -249,21 +248,21 @@ public class TestStableFloat {
c.v = new float[1][1]; c.v[0][0] = 1.0F; float val1 = get();
c.v[0][0] = 2.0F; float val2 = get();
assertEquals(val1, 1.0F);
assertEquals(val2, (isServerWithStable ? 1.0F : 2.0F));
assertEquals(val2, (isStableEnabled ? 1.0F : 2.0F));
c.v = new float[1][1]; c.v[0][0] = 3.0F; float val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 3.0F));
c.v[0] = new float[1]; c.v[0][0] = 4.0F; float val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 4.0F));
}
{
c.v = new float[1][1]; float[] val1 = get1();
c.v[0] = new float[1]; float[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableFloat {
c.v = new float[1][1][1]; c.v[0][0][0] = 1.0F; float val1 = get();
c.v[0][0][0] = 2.0F; float val2 = get();
assertEquals(val1, 1.0F);
assertEquals(val2, (isServerWithStable ? 1.0F : 2.0F));
assertEquals(val2, (isStableEnabled ? 1.0F : 2.0F));
c.v = new float[1][1][1]; c.v[0][0][0] = 3.0F; float val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 3.0F));
c.v[0] = new float[1][1]; c.v[0][0][0] = 4.0F; float val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 4.0F));
c.v[0][0] = new float[1]; c.v[0][0][0] = 5.0F; float val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 5.0F));
}
{
c.v = new float[1][1][1]; float[] val1 = get1();
c.v[0][0] = new float[1]; float[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new float[1][1][1]; float[][] val1 = get2();
c.v[0] = new float[1][1]; float[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableFloat {
c.v = new float[1][1][1][1]; c.v[0][0][0][0] = 1.0F; float val1 = get();
c.v[0][0][0][0] = 2.0F; float val2 = get();
assertEquals(val1, 1.0F);
assertEquals(val2, (isServerWithStable ? 1.0F : 2.0F));
assertEquals(val2, (isStableEnabled ? 1.0F : 2.0F));
c.v = new float[1][1][1][1]; c.v[0][0][0][0] = 3.0F; float val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 3.0F));
c.v[0] = new float[1][1][1]; c.v[0][0][0][0] = 4.0F; float val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 4.0F));
c.v[0][0] = new float[1][1]; c.v[0][0][0][0] = 5.0F; float val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 5.0F));
c.v[0][0][0] = new float[1]; c.v[0][0][0][0] = 6.0F; float val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1.0F : 2.0F)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1.0F : 2.0F)
: 6.0F));
}
{
c.v = new float[1][1][1][1]; float[] val1 = get1();
c.v[0][0][0] = new float[1]; float[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new float[1][1][1][1]; float[][] val1 = get2();
c.v[0][0] = new float[1][1]; float[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new float[1][1][1][1]; float[][][] val1 = get3();
c.v[0] = new float[1][1][1]; float[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -434,7 +433,7 @@ public class TestStableFloat {
c.v = new float[1][1]; c.v[0] = new float[0]; float[] val1 = get1();
c.v[0] = new float[0]; float[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -470,14 +469,14 @@ public class TestStableFloat {
c.v = new float[1][1][1]; c.v[0][0] = new float[0]; float[] val1 = get1();
c.v[0][0] = new float[0]; float[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new float[1][1][1]; c.v[0] = new float[0][0]; float[][] val1 = get2();
c.v[0] = new float[0][0]; float[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -612,7 +611,7 @@ public class TestStableFloat {
elem.a = 2.0F; float val3 = get(); float val4 = get1();
assertEquals(val1, 1.0F);
assertEquals(val3, (isServerWithStable ? 1.0F : 2.0F));
assertEquals(val3, (isStableEnabled ? 1.0F : 2.0F));
assertEquals(val2, 1.0F);
assertEquals(val4, 2.0F);

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableInt {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableInt {
c.v = new int[1]; c.v[0] = 1; int val1 = get();
c.v[0] = 2; int val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new int[1]; c.v[0] = 3; int val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -220,10 +219,10 @@ public class TestStableInt {
c.v = new int[20]; c.v[10] = 1; int val1 = get1();
c.v[10] = 2; int val2 = get1();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new int[20]; c.v[10] = 3; int val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -249,21 +248,21 @@ public class TestStableInt {
c.v = new int[1][1]; c.v[0][0] = 1; int val1 = get();
c.v[0][0] = 2; int val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new int[1][1]; c.v[0][0] = 3; int val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new int[1]; c.v[0][0] = 4; int val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
}
{
c.v = new int[1][1]; int[] val1 = get1();
c.v[0] = new int[1]; int[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableInt {
c.v = new int[1][1][1]; c.v[0][0][0] = 1; int val1 = get();
c.v[0][0][0] = 2; int val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new int[1][1][1]; c.v[0][0][0] = 3; int val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new int[1][1]; c.v[0][0][0] = 4; int val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new int[1]; c.v[0][0][0] = 5; int val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
}
{
c.v = new int[1][1][1]; int[] val1 = get1();
c.v[0][0] = new int[1]; int[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new int[1][1][1]; int[][] val1 = get2();
c.v[0] = new int[1][1]; int[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableInt {
c.v = new int[1][1][1][1]; c.v[0][0][0][0] = 1; int val1 = get();
c.v[0][0][0][0] = 2; int val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new int[1][1][1][1]; c.v[0][0][0][0] = 3; int val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new int[1][1][1]; c.v[0][0][0][0] = 4; int val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new int[1][1]; c.v[0][0][0][0] = 5; int val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
c.v[0][0][0] = new int[1]; c.v[0][0][0][0] = 6; int val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 6));
}
{
c.v = new int[1][1][1][1]; int[] val1 = get1();
c.v[0][0][0] = new int[1]; int[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new int[1][1][1][1]; int[][] val1 = get2();
c.v[0][0] = new int[1][1]; int[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new int[1][1][1][1]; int[][][] val1 = get3();
c.v[0] = new int[1][1][1]; int[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -434,7 +433,7 @@ public class TestStableInt {
c.v = new int[1][1]; c.v[0] = new int[0]; int[] val1 = get1();
c.v[0] = new int[0]; int[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -470,14 +469,14 @@ public class TestStableInt {
c.v = new int[1][1][1]; c.v[0][0] = new int[0]; int[] val1 = get1();
c.v[0][0] = new int[0]; int[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new int[1][1][1]; c.v[0] = new int[0][0]; int[][] val1 = get2();
c.v[0] = new int[0][0]; int[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -612,7 +611,7 @@ public class TestStableInt {
elem.a = 2; int val3 = get(); int val4 = get1();
assertEquals(val1, 1);
assertEquals(val3, (isServerWithStable ? 1 : 2));
assertEquals(val3, (isStableEnabled ? 1 : 2));
assertEquals(val2, 1);
assertEquals(val4, 2);

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableLong {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableLong {
c.v = new long[1]; c.v[0] = 1; long val1 = get();
c.v[0] = 2; long val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new long[1]; c.v[0] = 3; long val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -220,10 +219,10 @@ public class TestStableLong {
c.v = new long[20]; c.v[10] = 1; long val1 = get1();
c.v[10] = 2; long val2 = get1();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new long[20]; c.v[10] = 3; long val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -249,21 +248,21 @@ public class TestStableLong {
c.v = new long[1][1]; c.v[0][0] = 1; long val1 = get();
c.v[0][0] = 2; long val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new long[1][1]; c.v[0][0] = 3; long val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new long[1]; c.v[0][0] = 4; long val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
}
{
c.v = new long[1][1]; long[] val1 = get1();
c.v[0] = new long[1]; long[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableLong {
c.v = new long[1][1][1]; c.v[0][0][0] = 1; long val1 = get();
c.v[0][0][0] = 2; long val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new long[1][1][1]; c.v[0][0][0] = 3; long val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new long[1][1]; c.v[0][0][0] = 4; long val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new long[1]; c.v[0][0][0] = 5; long val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
}
{
c.v = new long[1][1][1]; long[] val1 = get1();
c.v[0][0] = new long[1]; long[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new long[1][1][1]; long[][] val1 = get2();
c.v[0] = new long[1][1]; long[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableLong {
c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 1; long val1 = get();
c.v[0][0][0][0] = 2; long val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 3; long val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new long[1][1][1]; c.v[0][0][0][0] = 4; long val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new long[1][1]; c.v[0][0][0][0] = 5; long val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
c.v[0][0][0] = new long[1]; c.v[0][0][0][0] = 6; long val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 6));
}
{
c.v = new long[1][1][1][1]; long[] val1 = get1();
c.v[0][0][0] = new long[1]; long[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new long[1][1][1][1]; long[][] val1 = get2();
c.v[0][0] = new long[1][1]; long[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new long[1][1][1][1]; long[][][] val1 = get3();
c.v[0] = new long[1][1][1]; long[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -434,7 +433,7 @@ public class TestStableLong {
c.v = new long[1][1]; c.v[0] = new long[0]; long[] val1 = get1();
c.v[0] = new long[0]; long[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -470,14 +469,14 @@ public class TestStableLong {
c.v = new long[1][1][1]; c.v[0][0] = new long[0]; long[] val1 = get1();
c.v[0][0] = new long[0]; long[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new long[1][1][1]; c.v[0] = new long[0][0]; long[][] val1 = get2();
c.v[0] = new long[0][0]; long[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -612,7 +611,7 @@ public class TestStableLong {
elem.a = 2; long val3 = get(); long val4 = get1();
assertEquals(val1, 1);
assertEquals(val3, (isServerWithStable ? 1 : 2));
assertEquals(val3, (isStableEnabled ? 1 : 2));
assertEquals(val2, 1);
assertEquals(val4, 2);

View File

@ -89,7 +89,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableObject {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -212,10 +211,10 @@ public class TestStableObject {
c.v = new Object[1]; c.v[0] = Values.A; Object val1 = get();
c.v[0] = Values.B; Object val2 = get();
assertEquals(val1, Values.A);
assertEquals(val2, (isServerWithStable ? Values.A : Values.B));
assertEquals(val2, (isStableEnabled ? Values.A : Values.B));
c.v = new Object[1]; c.v[0] = Values.C; Object val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.C));
}
@ -223,10 +222,10 @@ public class TestStableObject {
c.v = new Object[20]; c.v[10] = Values.A; Object val1 = get1();
c.v[10] = Values.B; Object val2 = get1();
assertEquals(val1, Values.A);
assertEquals(val2, (isServerWithStable ? Values.A : Values.B));
assertEquals(val2, (isStableEnabled ? Values.A : Values.B));
c.v = new Object[20]; c.v[10] = Values.C; Object val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.C));
}
@ -252,21 +251,21 @@ public class TestStableObject {
c.v = new Object[1][1]; c.v[0][0] = Values.A; Object val1 = get();
c.v[0][0] = Values.B; Object val2 = get();
assertEquals(val1, Values.A);
assertEquals(val2, (isServerWithStable ? Values.A : Values.B));
assertEquals(val2, (isStableEnabled ? Values.A : Values.B));
c.v = new Object[1][1]; c.v[0][0] = Values.C; Object val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.C));
c.v[0] = new Object[1]; c.v[0][0] = Values.D; Object val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.D));
}
{
c.v = new Object[1][1]; Object[] val1 = get1();
c.v[0] = new Object[1]; Object[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -292,31 +291,31 @@ public class TestStableObject {
c.v = new Object[1][1][1]; c.v[0][0][0] = Values.A; Object val1 = get();
c.v[0][0][0] = Values.B; Object val2 = get();
assertEquals(val1, Values.A);
assertEquals(val2, (isServerWithStable ? Values.A : Values.B));
assertEquals(val2, (isStableEnabled ? Values.A : Values.B));
c.v = new Object[1][1][1]; c.v[0][0][0] = Values.C; Object val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.C));
c.v[0] = new Object[1][1]; c.v[0][0][0] = Values.D; Object val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.D));
c.v[0][0] = new Object[1]; c.v[0][0][0] = Values.E; Object val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.E));
}
{
c.v = new Object[1][1][1]; Object[] val1 = get1();
c.v[0][0] = new Object[1]; Object[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new Object[1][1][1]; Object[][] val1 = get2();
c.v[0] = new Object[1][1]; Object[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -343,41 +342,41 @@ public class TestStableObject {
c.v = new Object[1][1][1][1]; c.v[0][0][0][0] = Values.A; Object val1 = get();
c.v[0][0][0][0] = Values.B; Object val2 = get();
assertEquals(val1, Values.A);
assertEquals(val2, (isServerWithStable ? Values.A : Values.B));
assertEquals(val2, (isStableEnabled ? Values.A : Values.B));
c.v = new Object[1][1][1][1]; c.v[0][0][0][0] = Values.C; Object val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.C));
c.v[0] = new Object[1][1][1]; c.v[0][0][0][0] = Values.D; Object val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.D));
c.v[0][0] = new Object[1][1]; c.v[0][0][0][0] = Values.E; Object val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.E));
c.v[0][0][0] = new Object[1]; c.v[0][0][0][0] = Values.F; Object val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? Values.A : Values.B)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? Values.A : Values.B)
: Values.F));
}
{
c.v = new Object[1][1][1][1]; Object[] val1 = get1();
c.v[0][0][0] = new Object[1]; Object[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new Object[1][1][1][1]; Object[][] val1 = get2();
c.v[0][0] = new Object[1][1]; Object[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new Object[1][1][1][1]; Object[][][] val1 = get3();
c.v[0] = new Object[1][1][1]; Object[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -437,7 +436,7 @@ public class TestStableObject {
c.v = new Object[1][1]; c.v[0] = new Object[0]; Object[] val1 = get1();
c.v[0] = new Object[0]; Object[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -473,14 +472,14 @@ public class TestStableObject {
c.v = new Object[1][1][1]; c.v[0][0] = new Object[0]; Object[] val1 = get1();
c.v[0][0] = new Object[0]; Object[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new Object[1][1][1]; c.v[0] = new Object[0][0]; Object[][] val1 = get2();
c.v[0] = new Object[0][0]; Object[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -615,7 +614,7 @@ public class TestStableObject {
elem.a = Values.B; Object val3 = get(); Object val4 = get1();
assertEquals(val1, Values.A);
assertEquals(val3, (isServerWithStable ? Values.A : Values.B));
assertEquals(val3, (isStableEnabled ? Values.A : Values.B));
assertEquals(val2, Values.A);
assertEquals(val4, Values.B);

View File

@ -88,7 +88,6 @@ import java.lang.reflect.InvocationTargetException;
public class TestStableShort {
static final boolean isStableEnabled = StableConfiguration.isStableEnabled;
static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
public static void main(String[] args) throws Exception {
run(DefaultValue.class);
@ -209,10 +208,10 @@ public class TestStableShort {
c.v = new short[1]; c.v[0] = 1; short val1 = get();
c.v[0] = 2; short val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new short[1]; c.v[0] = 3; short val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -220,10 +219,10 @@ public class TestStableShort {
c.v = new short[20]; c.v[10] = 1; short val1 = get1();
c.v[10] = 2; short val2 = get1();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new short[20]; c.v[10] = 3; short val3 = get1();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
}
@ -249,21 +248,21 @@ public class TestStableShort {
c.v = new short[1][1]; c.v[0][0] = 1; short val1 = get();
c.v[0][0] = 2; short val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new short[1][1]; c.v[0][0] = 3; short val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new short[1]; c.v[0][0] = 4; short val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
}
{
c.v = new short[1][1]; short[] val1 = get1();
c.v[0] = new short[1]; short[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -289,31 +288,31 @@ public class TestStableShort {
c.v = new short[1][1][1]; c.v[0][0][0] = 1; short val1 = get();
c.v[0][0][0] = 2; short val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new short[1][1][1]; c.v[0][0][0] = 3; short val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new short[1][1]; c.v[0][0][0] = 4; short val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new short[1]; c.v[0][0][0] = 5; short val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
}
{
c.v = new short[1][1][1]; short[] val1 = get1();
c.v[0][0] = new short[1]; short[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new short[1][1][1]; short[][] val1 = get2();
c.v[0] = new short[1][1]; short[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -340,41 +339,41 @@ public class TestStableShort {
c.v = new short[1][1][1][1]; c.v[0][0][0][0] = 1; short val1 = get();
c.v[0][0][0][0] = 2; short val2 = get();
assertEquals(val1, 1);
assertEquals(val2, (isServerWithStable ? 1 : 2));
assertEquals(val2, (isStableEnabled ? 1 : 2));
c.v = new short[1][1][1][1]; c.v[0][0][0][0] = 3; short val3 = get();
assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 3));
c.v[0] = new short[1][1][1]; c.v[0][0][0][0] = 4; short val4 = get();
assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 4));
c.v[0][0] = new short[1][1]; c.v[0][0][0][0] = 5; short val5 = get();
assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 5));
c.v[0][0][0] = new short[1]; c.v[0][0][0][0] = 6; short val6 = get();
assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1 : 2)
assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1 : 2)
: 6));
}
{
c.v = new short[1][1][1][1]; short[] val1 = get1();
c.v[0][0][0] = new short[1]; short[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new short[1][1][1][1]; short[][] val1 = get2();
c.v[0][0] = new short[1][1]; short[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new short[1][1][1][1]; short[][][] val1 = get3();
c.v[0] = new short[1][1][1]; short[][][] val2 = get3();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -434,7 +433,7 @@ public class TestStableShort {
c.v = new short[1][1]; c.v[0] = new short[0]; short[] val1 = get1();
c.v[0] = new short[0]; short[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -470,14 +469,14 @@ public class TestStableShort {
c.v = new short[1][1][1]; c.v[0][0] = new short[0]; short[] val1 = get1();
c.v[0][0] = new short[0]; short[] val2 = get1();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
c.v = new short[1][1][1]; c.v[0] = new short[0][0]; short[][] val1 = get2();
c.v[0] = new short[0][0]; short[][] val2 = get2();
assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
}
{
@ -612,7 +611,7 @@ public class TestStableShort {
elem.a = 2; short val3 = get(); short val4 = get1();
assertEquals(val1, 1);
assertEquals(val3, (isServerWithStable ? 1 : 2));
assertEquals(val3, (isStableEnabled ? 1 : 2));
assertEquals(val2, 1);
assertEquals(val4, 2);