Chromium Code Reviews| Index: runtime/vm/object_test.cc |
| =================================================================== |
| --- runtime/vm/object_test.cc (revision 15751) |
| +++ runtime/vm/object_test.cc (working copy) |
| @@ -1899,23 +1899,35 @@ |
| EXPECT(!uint8_array.IsNull()); |
| EXPECT_EQ(data_length, uint8_array.Length()); |
| + const ExternalUint8ClampedArray& uint8_clamped_array = |
| + ExternalUint8ClampedArray::Handle( |
| + ExternalUint8ClampedArray::New(data, data_length, NULL, NULL)); |
| + EXPECT(!uint8_clamped_array.IsNull()); |
| + EXPECT_EQ(data_length, uint8_clamped_array.Length()); |
| + |
| EXPECT_EQ(-3, int8_array.At(0)); |
| EXPECT_EQ(253, uint8_array.At(0)); |
| + EXPECT_EQ(253, uint8_clamped_array.At(0)); |
| EXPECT_EQ(-2, int8_array.At(1)); |
| EXPECT_EQ(254, uint8_array.At(1)); |
| + EXPECT_EQ(254, uint8_clamped_array.At(1)); |
| EXPECT_EQ(-1, int8_array.At(2)); |
| EXPECT_EQ(255, uint8_array.At(2)); |
| + EXPECT_EQ(255, uint8_clamped_array.At(2)); |
| EXPECT_EQ(0, int8_array.At(3)); |
| EXPECT_EQ(0, uint8_array.At(3)); |
| + EXPECT_EQ(0, uint8_clamped_array.At(3)); |
| EXPECT_EQ(1, int8_array.At(4)); |
| EXPECT_EQ(1, uint8_array.At(4)); |
| + EXPECT_EQ(1, uint8_clamped_array.At(4)); |
| EXPECT_EQ(2, int8_array.At(5)); |
| EXPECT_EQ(2, uint8_array.At(5)); |
| + EXPECT_EQ(2, uint8_clamped_array.At(5)); |
| for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
| uint8_t value = 0; |
| @@ -1930,6 +1942,13 @@ |
| ByteArray::Copy(&value, uint8_array, i, sizeof(value)); |
| EXPECT_EQ(int8_array.At(i), value); |
| } |
| + |
| + uint8_clamped_array.SetAt(0, 123); |
| + for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
| + int8_t value = 0; |
| + ByteArray::Copy(&value, uint8_clamped_array, i, sizeof(value)); |
| + EXPECT_EQ(int8_array.At(i), value); |
| + } |
| } |
| @@ -1937,56 +1956,112 @@ |
| 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 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)); |
| + { |
|
cshapiro
2012/12/05 23:01:49
Rather than adding a nested scope, how about split
srdjan
2012/12/06 19:23:14
Done.
|
| + 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(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)); |
| + // A zero length copy. |
| + 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(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)); |
| + // Another zero length copy. |
| + 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(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 one element copy. |
| + 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(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 two element copy. |
| + 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(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 three element copy. |
| + 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(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)); |
| + // A four element copy. |
| + 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)); |
| + } |
| + |
| + { |
| + const Uint8ClampedArray& internal = |
| + Uint8ClampedArray::Handle( |
| + Uint8ClampedArray::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(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(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(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(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(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(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)); |
| + } |
| } |
| @@ -1995,137 +2070,270 @@ |
| const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
| 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)); |
| + { |
| + 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(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)); |
| + // A zero length copy. |
| + 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(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)); |
| + // Another zero length copy. |
| + 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(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 one element copy. |
| + 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(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 two element copy. |
| + 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(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 three element copy. |
| + 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(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)); |
| + // A four element copy. |
| + 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)); |
| + } |
| + { |
| + const ExternalUint8ClampedArray& external = |
| + ExternalUint8ClampedArray::Handle( |
| + ExternalUint8ClampedArray::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(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(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(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(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(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(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(ByteArrayCopyInternalExternal) { |
| const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| + uint8_t data[] = { 4, 5, 6, 7 }; |
| - 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)); |
| + { |
|
cshapiro
2012/12/05 23:01:49
ditto, here and below
srdjan
2012/12/06 19:23:14
Done.
|
| + 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)); |
| - uint8_t data[] = { 4, 5, 6, 7 }; |
| - 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(0)); |
| - EXPECT_EQ(5, external.At(1)); |
| - EXPECT_EQ(6, external.At(2)); |
| - EXPECT_EQ(7, external.At(3)); |
| + 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(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(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(internal, 0, external, 0, 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 zero length copy, take 2. |
| - ByteArray::Copy(internal, 4, external, 0, 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 zero length copy, take 2. |
| + ByteArray::Copy(internal, 4, external, 0, 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 zero length copy, take 3. |
| - ByteArray::Copy(internal, 0, external, 4, 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 zero length copy, take 3. |
| + ByteArray::Copy(internal, 0, external, 4, 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 zero length copy, take 4. |
| - ByteArray::Copy(internal, 4, external, 4, 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 zero length copy, take 4. |
| + ByteArray::Copy(internal, 4, external, 4, 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 four element copy. |
| - ByteArray::Copy(internal, 0, external, 0, 4); |
| - 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. |
| + ByteArray::Copy(internal, 0, external, 0, 4); |
| + 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(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(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(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(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)); |
| + } |
| + { |
| + const Uint8ClampedArray& internal = |
| + Uint8ClampedArray::Handle( |
| + Uint8ClampedArray::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)); |
| + |
| + const ExternalUint8ClampedArray& external = |
| + ExternalUint8ClampedArray::Handle( |
| + ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data), NULL, NULL)); |
| + EXPECT(!external.IsNull()); |
| + EXPECT_EQ(4, external.Length()); |
| + 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(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(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(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(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(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(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(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)); |
| + } |
| } |