| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/assert.h" | 5 #include "vm/assert.h" |
| 6 #include "vm/assembler.h" | 6 #include "vm/assembler.h" |
| 7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
| 8 #include "vm/isolate.h" | 8 #include "vm/isolate.h" |
| 9 #include "vm/object.h" | 9 #include "vm/object.h" |
| 10 #include "vm/object_store.h" | 10 #include "vm/object_store.h" |
| (...skipping 1574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1585 | 1585 |
| 1586 other_array = Array::New(kArrayLen - 1); | 1586 other_array = Array::New(kArrayLen - 1); |
| 1587 other_array.SetAt(0, array); | 1587 other_array.SetAt(0, array); |
| 1588 other_array.SetAt(2, array); | 1588 other_array.SetAt(2, array); |
| 1589 EXPECT(!array.Equals(other_array)); | 1589 EXPECT(!array.Equals(other_array)); |
| 1590 | 1590 |
| 1591 EXPECT_EQ(0, Array::Handle(Array::Empty()).Length()); | 1591 EXPECT_EQ(0, Array::Handle(Array::Empty()).Length()); |
| 1592 } | 1592 } |
| 1593 | 1593 |
| 1594 | 1594 |
| 1595 TEST_CASE(ByteBuffer) { |
| 1596 uint8_t data[] = { 253, 254, 255, 0, 1, 2, 3, 4 }; |
| 1597 intptr_t data_length = ARRAY_SIZE(data); |
| 1598 |
| 1599 const ByteBuffer& array1 = |
| 1600 ByteBuffer::Handle(ByteBuffer::New(data, data_length)); |
| 1601 EXPECT(!array1.IsNull()); |
| 1602 EXPECT_EQ(data_length, array1.Length()); |
| 1603 EXPECT_EQ(-3, array1.At<int8_t>(0)); |
| 1604 EXPECT_EQ(253, array1.At<uint8_t>(0)); |
| 1605 EXPECT_EQ(-2, array1.At<int8_t>(1)); |
| 1606 EXPECT_EQ(254, array1.At<uint8_t>(1)); |
| 1607 EXPECT_EQ(-1, array1.At<int8_t>(2)); |
| 1608 EXPECT_EQ(255, array1.At<uint8_t>(2)); |
| 1609 EXPECT_EQ(0, array1.At<int8_t>(3)); |
| 1610 EXPECT_EQ(0, array1.At<uint8_t>(3)); |
| 1611 EXPECT_EQ(1, array1.At<int8_t>(4)); |
| 1612 EXPECT_EQ(1, array1.At<uint8_t>(4)); |
| 1613 EXPECT_EQ(2, array1.At<int8_t>(5)); |
| 1614 EXPECT_EQ(2, array1.At<uint8_t>(5)); |
| 1615 |
| 1616 const ByteBuffer& array2 = |
| 1617 ByteBuffer::Handle(ByteBuffer::New(data, data_length)); |
| 1618 EXPECT(!array1.IsNull()); |
| 1619 EXPECT_EQ(data_length, array2.Length()); |
| 1620 EXPECT(array1.Equals(array2)); |
| 1621 EXPECT(array2.Equals(array1)); |
| 1622 |
| 1623 array1.SetAt<uint8_t>(0, 123); |
| 1624 array2.SetAt<int8_t>(2, -123); |
| 1625 EXPECT(array1.Equals(array2)); |
| 1626 EXPECT(array2.Equals(array1)); |
| 1627 } |
| 1628 |
| 1629 |
| 1630 TEST_CASE(ByteBufferAlignedAccess) { |
| 1631 uint8_t data[16]; |
| 1632 intptr_t data_length = ARRAY_SIZE(data); |
| 1633 |
| 1634 const ByteBuffer& array1 = |
| 1635 ByteBuffer::Handle(ByteBuffer::New(data, data_length)); |
| 1636 EXPECT(!array1.IsNull()); |
| 1637 EXPECT_EQ(data_length, array1.Length()); |
| 1638 |
| 1639 const ByteBuffer& array2 = |
| 1640 ByteBuffer::Handle(ByteBuffer::New(data, data_length)); |
| 1641 EXPECT(!array2.IsNull()); |
| 1642 EXPECT_EQ(data_length, array2.Length()); |
| 1643 |
| 1644 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1645 array1.SetAt<float>(0, FLT_MIN); |
| 1646 array1.SetAt<float>(4, FLT_MAX); |
| 1647 EXPECT_EQ(FLT_MIN, array2.At<float>(0)); |
| 1648 EXPECT_EQ(FLT_MAX, array2.At<float>(4)); |
| 1649 |
| 1650 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1651 array1.SetAt<float>(0, 0.0f); |
| 1652 EXPECT_EQ(0.0f, array2.At<float>(0)); |
| 1653 array1.SetAt<float>(4, 1.0f); |
| 1654 EXPECT_EQ(1.0f, array2.At<float>(4)); |
| 1655 |
| 1656 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1657 array1.SetAt<double>(0, DBL_MIN); |
| 1658 EXPECT_EQ(DBL_MIN, array2.At<double>(0)); |
| 1659 array1.SetAt<double>(8, DBL_MAX); |
| 1660 EXPECT_EQ(DBL_MAX, array2.At<double>(8)); |
| 1661 |
| 1662 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1663 array1.SetAt<double>(0, 0.0); |
| 1664 EXPECT_EQ(0.0, array2.At<double>(0)); |
| 1665 array1.SetAt<double>(8, 1.0); |
| 1666 EXPECT_EQ(1.0, array2.At<double>(8)); |
| 1667 } |
| 1668 |
| 1669 |
| 1670 TEST_CASE(ByteBufferUnlignedAccess) { |
| 1671 uint8_t data[24]; |
| 1672 intptr_t data_length = ARRAY_SIZE(data); |
| 1673 |
| 1674 const ByteBuffer& array1 = |
| 1675 ByteBuffer::Handle(ByteBuffer::New(data, data_length)); |
| 1676 EXPECT(!array1.IsNull()); |
| 1677 EXPECT_EQ(data_length, array1.Length()); |
| 1678 |
| 1679 const ByteBuffer& array2 = |
| 1680 ByteBuffer::Handle(ByteBuffer::New(data, data_length)); |
| 1681 EXPECT(!array2.IsNull()); |
| 1682 EXPECT_EQ(data_length, array2.Length()); |
| 1683 |
| 1684 int float_misalign = 3; |
| 1685 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1686 array1.SetUnalignedAt<float>(float_misalign, FLT_MIN); |
| 1687 array1.SetUnalignedAt<float>(4 + float_misalign, FLT_MAX); |
| 1688 EXPECT_EQ(FLT_MIN, array2.UnalignedAt<float>(float_misalign)); |
| 1689 EXPECT_EQ(FLT_MAX, array2.UnalignedAt<float>(4 + float_misalign)); |
| 1690 |
| 1691 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1692 array1.SetUnalignedAt<float>(float_misalign, 0.0f); |
| 1693 EXPECT_EQ(0.0f, array2.UnalignedAt<float>(float_misalign)); |
| 1694 array1.SetUnalignedAt<float>(4 + float_misalign, 1.0f); |
| 1695 EXPECT_EQ(1.0f, array2.UnalignedAt<float>(4 + float_misalign)); |
| 1696 |
| 1697 int double_misalign = 5; |
| 1698 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1699 array1.SetUnalignedAt<double>(double_misalign, DBL_MIN); |
| 1700 EXPECT_EQ(DBL_MIN, array2.UnalignedAt<double>(double_misalign)); |
| 1701 array1.SetUnalignedAt<double>(8 + double_misalign, DBL_MAX); |
| 1702 EXPECT_EQ(DBL_MAX, |
| 1703 array2.UnalignedAt<double>(8+ double_misalign)); |
| 1704 |
| 1705 memset(data, 0xAA, ARRAY_SIZE(data)); |
| 1706 array1.SetUnalignedAt<double>(double_misalign, 0.0); |
| 1707 EXPECT_EQ(0.0, array2.UnalignedAt<double>(double_misalign)); |
| 1708 array1.SetUnalignedAt<double>(8 + double_misalign, 1.0); |
| 1709 EXPECT_EQ(1.0, array2.UnalignedAt<double>(8 + double_misalign)); |
| 1710 } |
| 1711 |
| 1712 |
| 1595 TEST_CASE(Script) { | 1713 TEST_CASE(Script) { |
| 1596 const char* url_chars = "builtin:test-case"; | 1714 const char* url_chars = "builtin:test-case"; |
| 1597 const char* source_chars = "This will not compile."; | 1715 const char* source_chars = "This will not compile."; |
| 1598 const String& url = String::Handle(String::New(url_chars)); | 1716 const String& url = String::Handle(String::New(url_chars)); |
| 1599 const String& source = String::Handle(String::New(source_chars)); | 1717 const String& source = String::Handle(String::New(source_chars)); |
| 1600 const Script& script = Script::Handle(Script::New(url, | 1718 const Script& script = Script::Handle(Script::New(url, |
| 1601 source, | 1719 source, |
| 1602 RawScript::kSource)); | 1720 RawScript::kSource)); |
| 1603 EXPECT(!script.IsNull()); | 1721 EXPECT(!script.IsNull()); |
| 1604 EXPECT(script.IsScript()); | 1722 EXPECT(script.IsScript()); |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1949 cls = iterator.GetNextClass(); | 2067 cls = iterator.GetNextClass(); |
| 1950 ASSERT((cls.raw() == ae66.raw()) || (cls.raw() == re44.raw())); | 2068 ASSERT((cls.raw() == ae66.raw()) || (cls.raw() == re44.raw())); |
| 1951 count++; | 2069 count++; |
| 1952 } | 2070 } |
| 1953 ASSERT(count == 2); | 2071 ASSERT(count == 2); |
| 1954 } | 2072 } |
| 1955 | 2073 |
| 1956 #endif // TARGET_ARCH_IA32. | 2074 #endif // TARGET_ARCH_IA32. |
| 1957 | 2075 |
| 1958 } // namespace dart | 2076 } // namespace dart |
| OLD | NEW |