Index: runtime/vm/object_test.cc |
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc |
index 89c92120ffee58701cc36d3fb9a072c4faee1efb..f893f87063a064e172e9b582ca7c808ebcb64558 100644 |
--- a/runtime/vm/object_test.cc |
+++ b/runtime/vm/object_test.cc |
@@ -1854,495 +1854,318 @@ TEST_CASE(GrowableObjectArray) { |
} |
-TEST_CASE(ExternalByteArray) { |
+TEST_CASE(InternalByteArray) { |
uint8_t data[] = { 253, 254, 255, 0, 1, 2, 3, 4 }; |
intptr_t data_length = ARRAY_SIZE(data); |
- const ExternalByteArray& array1 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data, |
- data_length, |
- NULL, |
- NULL)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(data_length, array1.Length()); |
- EXPECT_EQ(-3, array1.At<int8_t>(0)); |
- EXPECT_EQ(253, array1.At<uint8_t>(0)); |
- EXPECT_EQ(-2, array1.At<int8_t>(1)); |
- EXPECT_EQ(254, array1.At<uint8_t>(1)); |
- EXPECT_EQ(-1, array1.At<int8_t>(2)); |
- EXPECT_EQ(255, array1.At<uint8_t>(2)); |
- EXPECT_EQ(0, array1.At<int8_t>(3)); |
- EXPECT_EQ(0, array1.At<uint8_t>(3)); |
- EXPECT_EQ(1, array1.At<int8_t>(4)); |
- EXPECT_EQ(1, array1.At<uint8_t>(4)); |
- EXPECT_EQ(2, array1.At<int8_t>(5)); |
- EXPECT_EQ(2, array1.At<uint8_t>(5)); |
- |
- const ExternalByteArray& array2 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data, |
- data_length, |
- NULL, |
- NULL)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(data_length, array2.Length()); |
- for (intptr_t i = 0 ; i < array1.Length(); ++i) { |
- EXPECT_EQ(array1.At<uint8_t>(i), array2.At<uint8_t>(i)); |
+ const Int8Array& int8_array = |
+ Int8Array::Handle(Int8Array::New(reinterpret_cast<int8_t*>(data), |
+ data_length)); |
+ EXPECT(!int8_array.IsNull()); |
+ EXPECT_EQ(data_length, int8_array.Length()); |
+ |
+ EXPECT_EQ(-3, int8_array.At(0)); |
+ uint8_t at_0; |
+ ByteArray::Copy(&at_0, int8_array, 0, sizeof(at_0)); |
+ EXPECT_EQ(253, at_0); |
+ |
+ EXPECT_EQ(-2, int8_array.At(1)); |
+ uint8_t at_1; |
+ ByteArray::Copy(&at_1, int8_array, 1, sizeof(at_1)); |
+ EXPECT_EQ(254, at_1); |
+ |
+ EXPECT_EQ(-1, int8_array.At(2)); |
+ uint8_t at_2; |
+ ByteArray::Copy(&at_2, int8_array, 2, sizeof(at_2)); |
+ EXPECT_EQ(255, at_2); |
+ |
+ EXPECT_EQ(0, int8_array.At(3)); |
+ uint8_t at_3; |
+ ByteArray::Copy(&at_3, int8_array, 3, sizeof(at_3)); |
+ EXPECT_EQ(0, at_3); |
+ |
+ EXPECT_EQ(1, int8_array.At(4)); |
+ uint8_t at_4; |
+ ByteArray::Copy(&at_4, int8_array, 4, sizeof(at_4)); |
+ EXPECT_EQ(1, at_4); |
+ |
+ EXPECT_EQ(2, int8_array.At(5)); |
+ uint8_t at_5; |
+ ByteArray::Copy(&at_5, int8_array, 5, sizeof(at_5)); |
+ EXPECT_EQ(2, at_5); |
+ |
+ EXPECT_EQ(3, int8_array.At(6)); |
+ uint8_t at_6; |
+ ByteArray::Copy(&at_6, int8_array, 6, sizeof(at_6)); |
+ EXPECT_EQ(3, at_6); |
+ |
+ EXPECT_EQ(4, int8_array.At(7)); |
+ uint8_t at_7; |
+ ByteArray::Copy(&at_7, int8_array, 7, sizeof(at_7)); |
+ EXPECT_EQ(4, at_7); |
+ |
+ const Int8Array& int8_array2 = |
+ Int8Array::Handle(Int8Array::New(reinterpret_cast<int8_t*>(data), |
+ data_length)); |
+ EXPECT(!int8_array.IsNull()); |
+ EXPECT_EQ(data_length, int8_array.Length()); |
+ |
+ for (intptr_t i = 0; i < data_length; ++i) { |
+ EXPECT_EQ(int8_array.At(i), int8_array2.At(i)); |
} |
- |
- array1.SetAt<uint8_t>(0, 123); |
- array2.SetAt<int8_t>(2, -123); |
- for (intptr_t i = 0 ; i < array1.Length(); ++i) { |
- EXPECT_EQ(array1.At<uint8_t>(i), array2.At<uint8_t>(i)); |
+ for (intptr_t i = 0; i < data_length; ++i) { |
+ int8_array.SetAt(i, 123 + i); |
+ } |
+ for (intptr_t i = 0; i < data_length; ++i) { |
+ EXPECT(int8_array.At(i) != int8_array2.At(i)); |
} |
} |
-TEST_CASE(ExternalByteArrayAlignedAccess) { |
- intptr_t length = 16; |
- uint8_t* data = new uint8_t[length]; |
- |
- const ExternalByteArray& array1 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data, |
- length, |
- NULL, |
- NULL)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(length, array1.Length()); |
- |
- const ExternalByteArray& array2 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data, |
- length, |
- NULL, |
- NULL)); |
- EXPECT(!array2.IsNull()); |
- EXPECT_EQ(length, array2.Length()); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetAt<float>(0, FLT_MIN); |
- array1.SetAt<float>(4, FLT_MAX); |
- EXPECT_EQ(FLT_MIN, array2.At<float>(0)); |
- EXPECT_EQ(FLT_MAX, array2.At<float>(4)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetAt<float>(0, 0.0f); |
- EXPECT_EQ(0.0f, array2.At<float>(0)); |
- array1.SetAt<float>(4, 1.0f); |
- EXPECT_EQ(1.0f, array2.At<float>(4)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetAt<double>(0, DBL_MIN); |
- EXPECT_EQ(DBL_MIN, array2.At<double>(0)); |
- array1.SetAt<double>(8, DBL_MAX); |
- EXPECT_EQ(DBL_MAX, array2.At<double>(8)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetAt<double>(0, 0.0); |
- EXPECT_EQ(0.0, array2.At<double>(0)); |
- array1.SetAt<double>(8, 1.0); |
- EXPECT_EQ(1.0, array2.At<double>(8)); |
- |
- delete[] data; |
-} |
+TEST_CASE(ExternalByteArray) { |
+ uint8_t data[] = { 253, 254, 255, 0, 1, 2, 3, 4 }; |
+ intptr_t data_length = ARRAY_SIZE(data); |
+ const ExternalInt8Array& int8_array = |
+ ExternalInt8Array::Handle( |
+ ExternalInt8Array::New(reinterpret_cast<int8_t*>(data), |
+ data_length, NULL, NULL)); |
+ EXPECT(!int8_array.IsNull()); |
+ EXPECT_EQ(data_length, int8_array.Length()); |
-TEST_CASE(ExternalByteArrayUnlignedAccess) { |
- intptr_t length = 24; |
- uint8_t* data = new uint8_t[length]; |
- |
- const ExternalByteArray& array1 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data, |
- length, |
- NULL, |
- NULL)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(length, array1.Length()); |
- |
- const ExternalByteArray& array2 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data, |
- length, |
- NULL, |
- NULL)); |
- EXPECT(!array2.IsNull()); |
- EXPECT_EQ(length, array2.Length()); |
- |
- int float_misalign = 3; |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<float>(float_misalign, FLT_MIN); |
- array1.SetUnalignedAt<float>(4 + float_misalign, FLT_MAX); |
- EXPECT_EQ(FLT_MIN, array2.UnalignedAt<float>(float_misalign)); |
- EXPECT_EQ(FLT_MAX, array2.UnalignedAt<float>(4 + float_misalign)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<float>(float_misalign, 0.0f); |
- EXPECT_EQ(0.0f, array2.UnalignedAt<float>(float_misalign)); |
- array1.SetUnalignedAt<float>(4 + float_misalign, 1.0f); |
- EXPECT_EQ(1.0f, array2.UnalignedAt<float>(4 + float_misalign)); |
- |
- int double_misalign = 5; |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<double>(double_misalign, DBL_MIN); |
- EXPECT_EQ(DBL_MIN, array2.UnalignedAt<double>(double_misalign)); |
- array1.SetUnalignedAt<double>(8 + double_misalign, DBL_MAX); |
- EXPECT_EQ(DBL_MAX, |
- array2.UnalignedAt<double>(8 + double_misalign)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<double>(double_misalign, 0.0); |
- EXPECT_EQ(0.0, array2.UnalignedAt<double>(double_misalign)); |
- array1.SetUnalignedAt<double>(8 + double_misalign, 1.0); |
- EXPECT_EQ(1.0, array2.UnalignedAt<double>(8 + double_misalign)); |
- |
- delete[] data; |
-} |
+ const ExternalUint8Array& uint8_array = |
+ ExternalUint8Array::Handle( |
+ ExternalUint8Array::New(data, data_length, NULL, NULL)); |
+ EXPECT(!uint8_array.IsNull()); |
+ EXPECT_EQ(data_length, uint8_array.Length()); |
+ EXPECT_EQ(-3, int8_array.At(0)); |
+ EXPECT_EQ(253, uint8_array.At(0)); |
-TEST_CASE(ExternalByteArraySkewedUnalignedBaseAccess) { |
- intptr_t length = 24; |
- uint8_t* data = new uint8_t[length]; |
- |
- int skew = 2; |
- |
- const ExternalByteArray& array1 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data + 3, |
- length, |
- NULL, |
- NULL)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(length, array1.Length()); |
- |
- const ExternalByteArray& array2 = |
- ExternalByteArray::Handle(ExternalByteArray::New(data + 1, |
- length, |
- NULL, |
- NULL)); |
- EXPECT(!array2.IsNull()); |
- EXPECT_EQ(length, array2.Length()); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<float>(0, FLT_MIN); |
- array1.SetUnalignedAt<float>(4, FLT_MAX); |
- EXPECT_EQ(FLT_MIN, array2.UnalignedAt<float>(0 + skew)); |
- EXPECT_EQ(FLT_MAX, array2.UnalignedAt<float>(4 + skew)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<float>(0, 0.0f); |
- EXPECT_EQ(0.0f, array2.UnalignedAt<float>(0 + skew)); |
- array2.SetUnalignedAt<float>(4 + skew, 1.0f); |
- EXPECT_EQ(1.0f, array1.UnalignedAt<float>(4)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<double>(0, DBL_MIN); |
- EXPECT_EQ(DBL_MIN, array2.UnalignedAt<double>(0 + skew)); |
- array2.SetUnalignedAt<double>(8 + skew, DBL_MAX); |
- EXPECT_EQ(DBL_MAX, array1.UnalignedAt<double>(8)); |
- |
- memset(data, 0xAA, ARRAY_SIZE(data)); |
- array1.SetUnalignedAt<double>(0, 0.0); |
- EXPECT_EQ(0.0, array2.UnalignedAt<double>(0 + skew)); |
- array2.SetUnalignedAt<double>(8 + skew, 1.0); |
- EXPECT_EQ(1.0, array1.UnalignedAt<double>(8)); |
- |
- delete[] data; |
+ EXPECT_EQ(-2, int8_array.At(1)); |
+ EXPECT_EQ(254, uint8_array.At(1)); |
+ |
+ EXPECT_EQ(-1, int8_array.At(2)); |
+ EXPECT_EQ(255, uint8_array.At(2)); |
+ |
+ EXPECT_EQ(0, int8_array.At(3)); |
+ EXPECT_EQ(0, uint8_array.At(3)); |
+ |
+ EXPECT_EQ(1, int8_array.At(4)); |
+ EXPECT_EQ(1, uint8_array.At(4)); |
+ |
+ EXPECT_EQ(2, int8_array.At(5)); |
+ EXPECT_EQ(2, uint8_array.At(5)); |
+ |
+ for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
+ uint8_t value = 0; |
+ ByteArray::Copy(&value, int8_array, i, sizeof(value)); |
+ EXPECT_EQ(value, uint8_array.At(i)); |
+ } |
+ |
+ int8_array.SetAt(2, -123); |
+ uint8_array.SetAt(0, 123); |
+ for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
+ int8_t value = 0; |
+ ByteArray::Copy(&value, uint8_array, i, sizeof(value)); |
+ EXPECT_EQ(int8_array.At(i), value); |
+ } |
} |
-TEST_CASE(ExternalByteArrayCopy) { |
+TEST_CASE(ByteArrayCopyInternal) { |
const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
- uint8_t data[] = { 0, 1, 2, 3 }; |
- const ExternalByteArray& external = |
- ExternalByteArray::Handle( |
- ExternalByteArray::New(data, ARRAY_SIZE(data), NULL, NULL)); |
- EXPECT(!external.IsNull()); |
- EXPECT_EQ(4, external.Length()); |
- EXPECT_EQ(0, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(2, external.At<uint8_t>(2)); |
- EXPECT_EQ(3, external.At<uint8_t>(3)); |
+ const Uint8Array& internal = |
+ Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
+ EXPECT(!internal.IsNull()); |
+ EXPECT_EQ(4, internal.Length()); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A zero length copy. |
- ByteArray::Copy(external, 0, b_4_5_6_7, 0); |
- EXPECT_EQ(0, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(2, external.At<uint8_t>(2)); |
- EXPECT_EQ(3, external.At<uint8_t>(3)); |
+ ByteArray::Copy(internal, 0, b_4_5_6_7, 0); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// Another zero length copy. |
- ByteArray::Copy(external, 4, b_4_5_6_7, 0); |
- EXPECT_EQ(0, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(2, external.At<uint8_t>(2)); |
- EXPECT_EQ(3, external.At<uint8_t>(3)); |
+ ByteArray::Copy(internal, 4, b_4_5_6_7, 0); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A one element copy. |
- ByteArray::Copy(external, 0, b_4_5_6_7, 1); |
- EXPECT_EQ(4, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(2, external.At<uint8_t>(2)); |
- EXPECT_EQ(3, external.At<uint8_t>(3)); |
+ ByteArray::Copy(internal, 0, b_4_5_6_7, 1); |
+ EXPECT_EQ(4, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A two element copy. |
- ByteArray::Copy(external, 2, b_4_5_6_7, 2); |
- EXPECT_EQ(4, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(4, external.At<uint8_t>(2)); |
- EXPECT_EQ(5, external.At<uint8_t>(3)); |
+ ByteArray::Copy(internal, 2, b_4_5_6_7, 2); |
+ EXPECT_EQ(4, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(4, internal.At(2)); |
+ EXPECT_EQ(5, internal.At(3)); |
// A three element copy. |
- ByteArray::Copy(external, 1, b_4_5_6_7, 3); |
- EXPECT_EQ(4, external.At<uint8_t>(0)); |
- EXPECT_EQ(4, external.At<uint8_t>(1)); |
- EXPECT_EQ(5, external.At<uint8_t>(2)); |
- EXPECT_EQ(6, external.At<uint8_t>(3)); |
+ ByteArray::Copy(internal, 1, b_4_5_6_7, 3); |
+ EXPECT_EQ(4, internal.At(0)); |
+ EXPECT_EQ(4, internal.At(1)); |
+ EXPECT_EQ(5, internal.At(2)); |
+ EXPECT_EQ(6, internal.At(3)); |
// A four element copy. |
- ByteArray::Copy(external, 0, b_0_1_2_3, 4); |
- EXPECT_EQ(0, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(2, external.At<uint8_t>(2)); |
- EXPECT_EQ(3, external.At<uint8_t>(3)); |
-} |
- |
- |
-TEST_CASE(InternalByteArray) { |
- uint8_t data[] = { 253, 254, 255, 0, 1, 2, 3, 4 }; |
- intptr_t data_length = ARRAY_SIZE(data); |
- |
- const InternalByteArray& array1 = |
- InternalByteArray::Handle(InternalByteArray::New(data, data_length)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(data_length, array1.Length()); |
- EXPECT_EQ(-3, array1.At<int8_t>(0)); |
- EXPECT_EQ(253, array1.At<uint8_t>(0)); |
- EXPECT_EQ(-2, array1.At<int8_t>(1)); |
- EXPECT_EQ(254, array1.At<uint8_t>(1)); |
- EXPECT_EQ(-1, array1.At<int8_t>(2)); |
- EXPECT_EQ(255, array1.At<uint8_t>(2)); |
- EXPECT_EQ(0, array1.At<int8_t>(3)); |
- EXPECT_EQ(0, array1.At<uint8_t>(3)); |
- EXPECT_EQ(1, array1.At<int8_t>(4)); |
- EXPECT_EQ(1, array1.At<uint8_t>(4)); |
- EXPECT_EQ(2, array1.At<int8_t>(5)); |
- EXPECT_EQ(2, array1.At<uint8_t>(5)); |
- |
- const InternalByteArray& array2 = |
- InternalByteArray::Handle(InternalByteArray::New(data, data_length)); |
- EXPECT(!array1.IsNull()); |
- EXPECT_EQ(data_length, array2.Length()); |
- for (intptr_t i = 0; i < array1.Length(); ++i) { |
- EXPECT_EQ(array1.At<uint8_t>(i), array2.At<uint8_t>(i)); |
- } |
- |
- array1.SetAt<uint8_t>(0, 123); |
- array2.SetAt<int8_t>(2, -123); |
- |
- EXPECT(array1.At<uint8_t>(0) != array2.At<uint8_t>(0)); |
- EXPECT(array1.At<uint8_t>(1) == array2.At<uint8_t>(1)); |
- EXPECT(array1.At<uint8_t>(2) != array2.At<uint8_t>(2)); |
- for (intptr_t i = 3; i < array1.Length(); ++i) { |
- EXPECT(array1.At<uint8_t>(i) == array2.At<uint8_t>(i)); |
- } |
-} |
- |
- |
-TEST_CASE(InternalByteArrayAlignedAccess) { |
- const intptr_t length = 16; |
- const InternalByteArray& byte_array = |
- InternalByteArray::Handle(InternalByteArray::New(length)); |
- EXPECT(!byte_array.IsNull()); |
- EXPECT_EQ(length, byte_array.Length()); |
- |
- byte_array.SetAt<float>(0, FLT_MIN); |
- byte_array.SetAt<float>(4, FLT_MAX); |
- EXPECT_EQ(FLT_MIN, byte_array.At<float>(0)); |
- EXPECT_EQ(FLT_MAX, byte_array.At<float>(4)); |
- |
- byte_array.SetAt<float>(0, 0.0f); |
- EXPECT_EQ(0.0f, byte_array.At<float>(0)); |
- byte_array.SetAt<float>(4, 1.0f); |
- EXPECT_EQ(1.0f, byte_array.At<float>(4)); |
- |
- byte_array.SetAt<double>(0, DBL_MIN); |
- EXPECT_EQ(DBL_MIN, byte_array.At<double>(0)); |
- byte_array.SetAt<double>(8, DBL_MAX); |
- EXPECT_EQ(DBL_MAX, byte_array.At<double>(8)); |
- |
- byte_array.SetAt<double>(0, 0.0); |
- EXPECT_EQ(0.0, byte_array.At<double>(0)); |
- byte_array.SetAt<double>(8, 1.0); |
- EXPECT_EQ(1.0, byte_array.At<double>(8)); |
-} |
- |
- |
-TEST_CASE(InternalByteArrayUnlignedAccess) { |
- const intptr_t length = 24; |
- const InternalByteArray& byte_array = |
- InternalByteArray::Handle(InternalByteArray::New(length)); |
- EXPECT(!byte_array.IsNull()); |
- EXPECT_EQ(length, byte_array.Length()); |
- |
- int float_misalign = 3; |
- byte_array.SetUnalignedAt<float>(float_misalign, FLT_MIN); |
- byte_array.SetUnalignedAt<float>(4 + float_misalign, FLT_MAX); |
- EXPECT_EQ(FLT_MIN, byte_array.UnalignedAt<float>(float_misalign)); |
- EXPECT_EQ(FLT_MAX, byte_array.UnalignedAt<float>(4 + float_misalign)); |
- |
- byte_array.SetUnalignedAt<float>(float_misalign, 0.0f); |
- EXPECT_EQ(0.0f, byte_array.UnalignedAt<float>(float_misalign)); |
- byte_array.SetUnalignedAt<float>(4 + float_misalign, 1.0f); |
- EXPECT_EQ(1.0f, byte_array.UnalignedAt<float>(4 + float_misalign)); |
- |
- int double_misalign = 5; |
- byte_array.SetUnalignedAt<double>(double_misalign, DBL_MIN); |
- EXPECT_EQ(DBL_MIN, byte_array.UnalignedAt<double>(double_misalign)); |
- byte_array.SetUnalignedAt<double>(8 + double_misalign, DBL_MAX); |
- EXPECT_EQ(DBL_MAX, |
- byte_array.UnalignedAt<double>(8 + double_misalign)); |
- |
- byte_array.SetUnalignedAt<double>(double_misalign, 0.0); |
- EXPECT_EQ(0.0, byte_array.UnalignedAt<double>(double_misalign)); |
- byte_array.SetUnalignedAt<double>(8 + double_misalign, 1.0); |
- EXPECT_EQ(1.0, byte_array.UnalignedAt<double>(8 + double_misalign)); |
+ ByteArray::Copy(internal, 0, b_0_1_2_3, 4); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
} |
-TEST_CASE(InternalByteArrayCopy) { |
+TEST_CASE(ByteArrayCopyExternal) { |
const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
- const InternalByteArray& internal = |
- InternalByteArray::Handle( |
- InternalByteArray::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
- EXPECT(!internal.IsNull()); |
- EXPECT_EQ(4, internal.Length()); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ uint8_t data[] = { 0, 1, 2, 3 }; |
+ const ExternalUint8Array& external = |
+ ExternalUint8Array::Handle( |
+ ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); |
+ EXPECT(!external.IsNull()); |
+ EXPECT_EQ(4, external.Length()); |
+ EXPECT_EQ(0, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(2, external.At(2)); |
+ EXPECT_EQ(3, external.At(3)); |
// A zero length copy. |
- ByteArray::Copy(internal, 0, b_4_5_6_7, 0); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ ByteArray::Copy(external, 0, b_4_5_6_7, 0); |
+ EXPECT_EQ(0, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(2, external.At(2)); |
+ EXPECT_EQ(3, external.At(3)); |
// Another zero length copy. |
- ByteArray::Copy(internal, 4, b_4_5_6_7, 0); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ ByteArray::Copy(external, 4, b_4_5_6_7, 0); |
+ EXPECT_EQ(0, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(2, external.At(2)); |
+ EXPECT_EQ(3, external.At(3)); |
// A one element copy. |
- ByteArray::Copy(internal, 0, b_4_5_6_7, 1); |
- EXPECT_EQ(4, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ ByteArray::Copy(external, 0, b_4_5_6_7, 1); |
+ EXPECT_EQ(4, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(2, external.At(2)); |
+ EXPECT_EQ(3, external.At(3)); |
// A two element copy. |
- ByteArray::Copy(internal, 2, b_4_5_6_7, 2); |
- EXPECT_EQ(4, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(4, internal.At<uint8_t>(2)); |
- EXPECT_EQ(5, internal.At<uint8_t>(3)); |
+ ByteArray::Copy(external, 2, b_4_5_6_7, 2); |
+ EXPECT_EQ(4, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(4, external.At(2)); |
+ EXPECT_EQ(5, external.At(3)); |
// A three element copy. |
- ByteArray::Copy(internal, 1, b_4_5_6_7, 3); |
- EXPECT_EQ(4, internal.At<uint8_t>(0)); |
- EXPECT_EQ(4, internal.At<uint8_t>(1)); |
- EXPECT_EQ(5, internal.At<uint8_t>(2)); |
- EXPECT_EQ(6, internal.At<uint8_t>(3)); |
+ ByteArray::Copy(external, 1, b_4_5_6_7, 3); |
+ EXPECT_EQ(4, external.At(0)); |
+ EXPECT_EQ(4, external.At(1)); |
+ EXPECT_EQ(5, external.At(2)); |
+ EXPECT_EQ(6, external.At(3)); |
// A four element copy. |
- ByteArray::Copy(internal, 0, b_0_1_2_3, 4); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ ByteArray::Copy(external, 0, b_0_1_2_3, 4); |
+ EXPECT_EQ(0, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(2, external.At(2)); |
+ EXPECT_EQ(3, external.At(3)); |
} |
-TEST_CASE(ByteArrayCopy) { |
+TEST_CASE(ByteArrayCopyInternalExternal) { |
const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
- const InternalByteArray& internal = |
- InternalByteArray::Handle( |
- InternalByteArray::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
+ const Uint8Array& internal = |
+ Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
EXPECT(!internal.IsNull()); |
EXPECT_EQ(4, internal.Length()); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
uint8_t data[] = { 4, 5, 6, 7 }; |
- const ExternalByteArray& external = |
- ExternalByteArray::Handle( |
- ExternalByteArray::New(data, ARRAY_SIZE(data), NULL, NULL)); |
+ const ExternalUint8Array& external = |
+ ExternalUint8Array::Handle( |
+ ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); |
EXPECT(!external.IsNull()); |
EXPECT_EQ(4, external.Length()); |
- EXPECT_EQ(4, external.At<uint8_t>(0)); |
- EXPECT_EQ(5, external.At<uint8_t>(1)); |
- EXPECT_EQ(6, external.At<uint8_t>(2)); |
- EXPECT_EQ(7, external.At<uint8_t>(3)); |
+ EXPECT_EQ(4, external.At(0)); |
+ EXPECT_EQ(5, external.At(1)); |
+ EXPECT_EQ(6, external.At(2)); |
+ EXPECT_EQ(7, external.At(3)); |
// A zero length copy. |
ByteArray::Copy(internal, 0, external, 0, 0); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A zero length copy, take 2. |
ByteArray::Copy(internal, 4, external, 0, 0); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A zero length copy, take 3. |
ByteArray::Copy(internal, 0, external, 4, 0); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A zero length copy, take 4. |
ByteArray::Copy(internal, 4, external, 4, 0); |
- EXPECT_EQ(0, internal.At<uint8_t>(0)); |
- EXPECT_EQ(1, internal.At<uint8_t>(1)); |
- EXPECT_EQ(2, internal.At<uint8_t>(2)); |
- EXPECT_EQ(3, internal.At<uint8_t>(3)); |
+ EXPECT_EQ(0, internal.At(0)); |
+ EXPECT_EQ(1, internal.At(1)); |
+ EXPECT_EQ(2, internal.At(2)); |
+ EXPECT_EQ(3, internal.At(3)); |
// A four element copy. |
ByteArray::Copy(internal, 0, external, 0, 4); |
- EXPECT_EQ(4, internal.At<uint8_t>(0)); |
- EXPECT_EQ(5, internal.At<uint8_t>(1)); |
- EXPECT_EQ(6, internal.At<uint8_t>(2)); |
- EXPECT_EQ(7, internal.At<uint8_t>(3)); |
- EXPECT_EQ(4, external.At<uint8_t>(0)); |
- EXPECT_EQ(5, external.At<uint8_t>(1)); |
- EXPECT_EQ(6, external.At<uint8_t>(2)); |
- EXPECT_EQ(7, external.At<uint8_t>(3)); |
+ EXPECT_EQ(4, internal.At(0)); |
+ EXPECT_EQ(5, internal.At(1)); |
+ EXPECT_EQ(6, internal.At(2)); |
+ EXPECT_EQ(7, internal.At(3)); |
+ EXPECT_EQ(4, external.At(0)); |
+ EXPECT_EQ(5, external.At(1)); |
+ EXPECT_EQ(6, external.At(2)); |
+ EXPECT_EQ(7, external.At(3)); |
// A four element copy, take 2. |
ByteArray::Copy(external, 0, b_0_1_2_3, 4); |
- EXPECT_EQ(0, external.At<uint8_t>(0)); |
- EXPECT_EQ(1, external.At<uint8_t>(1)); |
- EXPECT_EQ(2, external.At<uint8_t>(2)); |
- EXPECT_EQ(3, external.At<uint8_t>(3)); |
+ EXPECT_EQ(0, external.At(0)); |
+ EXPECT_EQ(1, external.At(1)); |
+ EXPECT_EQ(2, external.At(2)); |
+ EXPECT_EQ(3, external.At(3)); |
ByteArray::Copy(external, 0, internal, 0, 4); |
- EXPECT_EQ(4, internal.At<uint8_t>(0)); |
- EXPECT_EQ(5, internal.At<uint8_t>(1)); |
- EXPECT_EQ(6, internal.At<uint8_t>(2)); |
- EXPECT_EQ(7, internal.At<uint8_t>(3)); |
- EXPECT_EQ(4, external.At<uint8_t>(0)); |
- EXPECT_EQ(5, external.At<uint8_t>(1)); |
- EXPECT_EQ(6, external.At<uint8_t>(2)); |
- EXPECT_EQ(7, external.At<uint8_t>(3)); |
+ EXPECT_EQ(4, internal.At(0)); |
+ EXPECT_EQ(5, internal.At(1)); |
+ EXPECT_EQ(6, internal.At(2)); |
+ EXPECT_EQ(7, internal.At(3)); |
+ EXPECT_EQ(4, external.At(0)); |
+ EXPECT_EQ(5, external.At(1)); |
+ EXPECT_EQ(6, external.At(2)); |
+ EXPECT_EQ(7, external.At(3)); |
} |