OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 "platform/assert.h" | 5 #include "platform/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/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
10 #include "vm/object.h" | 10 #include "vm/object.h" |
(...skipping 1881 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1892 data_length, NULL, NULL)); | 1892 data_length, NULL, NULL)); |
1893 EXPECT(!int8_array.IsNull()); | 1893 EXPECT(!int8_array.IsNull()); |
1894 EXPECT_EQ(data_length, int8_array.Length()); | 1894 EXPECT_EQ(data_length, int8_array.Length()); |
1895 | 1895 |
1896 const ExternalUint8Array& uint8_array = | 1896 const ExternalUint8Array& uint8_array = |
1897 ExternalUint8Array::Handle( | 1897 ExternalUint8Array::Handle( |
1898 ExternalUint8Array::New(data, data_length, NULL, NULL)); | 1898 ExternalUint8Array::New(data, data_length, NULL, NULL)); |
1899 EXPECT(!uint8_array.IsNull()); | 1899 EXPECT(!uint8_array.IsNull()); |
1900 EXPECT_EQ(data_length, uint8_array.Length()); | 1900 EXPECT_EQ(data_length, uint8_array.Length()); |
1901 | 1901 |
| 1902 const ExternalUint8ClampedArray& uint8_clamped_array = |
| 1903 ExternalUint8ClampedArray::Handle( |
| 1904 ExternalUint8ClampedArray::New(data, data_length, NULL, NULL)); |
| 1905 EXPECT(!uint8_clamped_array.IsNull()); |
| 1906 EXPECT_EQ(data_length, uint8_clamped_array.Length()); |
| 1907 |
1902 EXPECT_EQ(-3, int8_array.At(0)); | 1908 EXPECT_EQ(-3, int8_array.At(0)); |
1903 EXPECT_EQ(253, uint8_array.At(0)); | 1909 EXPECT_EQ(253, uint8_array.At(0)); |
| 1910 EXPECT_EQ(253, uint8_clamped_array.At(0)); |
1904 | 1911 |
1905 EXPECT_EQ(-2, int8_array.At(1)); | 1912 EXPECT_EQ(-2, int8_array.At(1)); |
1906 EXPECT_EQ(254, uint8_array.At(1)); | 1913 EXPECT_EQ(254, uint8_array.At(1)); |
| 1914 EXPECT_EQ(254, uint8_clamped_array.At(1)); |
1907 | 1915 |
1908 EXPECT_EQ(-1, int8_array.At(2)); | 1916 EXPECT_EQ(-1, int8_array.At(2)); |
1909 EXPECT_EQ(255, uint8_array.At(2)); | 1917 EXPECT_EQ(255, uint8_array.At(2)); |
| 1918 EXPECT_EQ(255, uint8_clamped_array.At(2)); |
1910 | 1919 |
1911 EXPECT_EQ(0, int8_array.At(3)); | 1920 EXPECT_EQ(0, int8_array.At(3)); |
1912 EXPECT_EQ(0, uint8_array.At(3)); | 1921 EXPECT_EQ(0, uint8_array.At(3)); |
| 1922 EXPECT_EQ(0, uint8_clamped_array.At(3)); |
1913 | 1923 |
1914 EXPECT_EQ(1, int8_array.At(4)); | 1924 EXPECT_EQ(1, int8_array.At(4)); |
1915 EXPECT_EQ(1, uint8_array.At(4)); | 1925 EXPECT_EQ(1, uint8_array.At(4)); |
| 1926 EXPECT_EQ(1, uint8_clamped_array.At(4)); |
1916 | 1927 |
1917 EXPECT_EQ(2, int8_array.At(5)); | 1928 EXPECT_EQ(2, int8_array.At(5)); |
1918 EXPECT_EQ(2, uint8_array.At(5)); | 1929 EXPECT_EQ(2, uint8_array.At(5)); |
| 1930 EXPECT_EQ(2, uint8_clamped_array.At(5)); |
1919 | 1931 |
1920 for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { | 1932 for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
1921 uint8_t value = 0; | 1933 uint8_t value = 0; |
1922 ByteArray::Copy(&value, int8_array, i, sizeof(value)); | 1934 ByteArray::Copy(&value, int8_array, i, sizeof(value)); |
1923 EXPECT_EQ(value, uint8_array.At(i)); | 1935 EXPECT_EQ(value, uint8_array.At(i)); |
1924 } | 1936 } |
1925 | 1937 |
1926 int8_array.SetAt(2, -123); | 1938 int8_array.SetAt(2, -123); |
1927 uint8_array.SetAt(0, 123); | 1939 uint8_array.SetAt(0, 123); |
1928 for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { | 1940 for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
1929 int8_t value = 0; | 1941 int8_t value = 0; |
1930 ByteArray::Copy(&value, uint8_array, i, sizeof(value)); | 1942 ByteArray::Copy(&value, uint8_array, i, sizeof(value)); |
1931 EXPECT_EQ(int8_array.At(i), value); | 1943 EXPECT_EQ(int8_array.At(i), value); |
1932 } | 1944 } |
| 1945 |
| 1946 uint8_clamped_array.SetAt(0, 123); |
| 1947 for (intptr_t i = 0 ; i < int8_array.Length(); ++i) { |
| 1948 int8_t value = 0; |
| 1949 ByteArray::Copy(&value, uint8_clamped_array, i, sizeof(value)); |
| 1950 EXPECT_EQ(int8_array.At(i), value); |
| 1951 } |
1933 } | 1952 } |
1934 | 1953 |
1935 | 1954 |
1936 TEST_CASE(ByteArrayCopyInternal) { | 1955 TEST_CASE(UInt8ByteArrayCopyInternal) { |
1937 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; | 1956 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
1938 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; | 1957 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
1939 | 1958 |
1940 const Uint8Array& internal = | 1959 const Uint8Array& internal = |
1941 Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); | 1960 Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
1942 EXPECT(!internal.IsNull()); | 1961 EXPECT(!internal.IsNull()); |
1943 EXPECT_EQ(4, internal.Length()); | 1962 EXPECT_EQ(4, internal.Length()); |
1944 EXPECT_EQ(0, internal.At(0)); | 1963 EXPECT_EQ(0, internal.At(0)); |
1945 EXPECT_EQ(1, internal.At(1)); | 1964 EXPECT_EQ(1, internal.At(1)); |
1946 EXPECT_EQ(2, internal.At(2)); | 1965 EXPECT_EQ(2, internal.At(2)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1982 EXPECT_EQ(6, internal.At(3)); | 2001 EXPECT_EQ(6, internal.At(3)); |
1983 | 2002 |
1984 // A four element copy. | 2003 // A four element copy. |
1985 ByteArray::Copy(internal, 0, b_0_1_2_3, 4); | 2004 ByteArray::Copy(internal, 0, b_0_1_2_3, 4); |
1986 EXPECT_EQ(0, internal.At(0)); | 2005 EXPECT_EQ(0, internal.At(0)); |
1987 EXPECT_EQ(1, internal.At(1)); | 2006 EXPECT_EQ(1, internal.At(1)); |
1988 EXPECT_EQ(2, internal.At(2)); | 2007 EXPECT_EQ(2, internal.At(2)); |
1989 EXPECT_EQ(3, internal.At(3)); | 2008 EXPECT_EQ(3, internal.At(3)); |
1990 } | 2009 } |
1991 | 2010 |
| 2011 TEST_CASE(ClampedUInt8ByteArrayCopyInternal) { |
| 2012 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| 2013 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
| 2014 |
| 2015 const Uint8ClampedArray& internal = |
| 2016 Uint8ClampedArray::Handle( |
| 2017 Uint8ClampedArray::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
| 2018 EXPECT(!internal.IsNull()); |
| 2019 EXPECT_EQ(4, internal.Length()); |
| 2020 EXPECT_EQ(0, internal.At(0)); |
| 2021 EXPECT_EQ(1, internal.At(1)); |
| 2022 EXPECT_EQ(2, internal.At(2)); |
| 2023 EXPECT_EQ(3, internal.At(3)); |
| 2024 |
| 2025 // A zero length copy. |
| 2026 ByteArray::Copy(internal, 0, b_4_5_6_7, 0); |
| 2027 EXPECT_EQ(0, internal.At(0)); |
| 2028 EXPECT_EQ(1, internal.At(1)); |
| 2029 EXPECT_EQ(2, internal.At(2)); |
| 2030 EXPECT_EQ(3, internal.At(3)); |
| 2031 |
| 2032 // Another zero length copy. |
| 2033 ByteArray::Copy(internal, 4, b_4_5_6_7, 0); |
| 2034 EXPECT_EQ(0, internal.At(0)); |
| 2035 EXPECT_EQ(1, internal.At(1)); |
| 2036 EXPECT_EQ(2, internal.At(2)); |
| 2037 EXPECT_EQ(3, internal.At(3)); |
| 2038 |
| 2039 // A one element copy. |
| 2040 ByteArray::Copy(internal, 0, b_4_5_6_7, 1); |
| 2041 EXPECT_EQ(4, internal.At(0)); |
| 2042 EXPECT_EQ(1, internal.At(1)); |
| 2043 EXPECT_EQ(2, internal.At(2)); |
| 2044 EXPECT_EQ(3, internal.At(3)); |
| 2045 |
| 2046 // A two element copy. |
| 2047 ByteArray::Copy(internal, 2, b_4_5_6_7, 2); |
| 2048 EXPECT_EQ(4, internal.At(0)); |
| 2049 EXPECT_EQ(1, internal.At(1)); |
| 2050 EXPECT_EQ(4, internal.At(2)); |
| 2051 EXPECT_EQ(5, internal.At(3)); |
| 2052 |
| 2053 // A three element copy. |
| 2054 ByteArray::Copy(internal, 1, b_4_5_6_7, 3); |
| 2055 EXPECT_EQ(4, internal.At(0)); |
| 2056 EXPECT_EQ(4, internal.At(1)); |
| 2057 EXPECT_EQ(5, internal.At(2)); |
| 2058 EXPECT_EQ(6, internal.At(3)); |
| 2059 |
| 2060 // A four element copy. |
| 2061 ByteArray::Copy(internal, 0, b_0_1_2_3, 4); |
| 2062 EXPECT_EQ(0, internal.At(0)); |
| 2063 EXPECT_EQ(1, internal.At(1)); |
| 2064 EXPECT_EQ(2, internal.At(2)); |
| 2065 EXPECT_EQ(3, internal.At(3)); |
| 2066 } |
| 2067 |
1992 | 2068 |
1993 TEST_CASE(ByteArrayCopyExternal) { | 2069 TEST_CASE(Uint8ByteArrayCopyExternal) { |
1994 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; | 2070 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
1995 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; | 2071 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
1996 | 2072 |
1997 uint8_t data[] = { 0, 1, 2, 3 }; | 2073 uint8_t data[] = { 0, 1, 2, 3 }; |
| 2074 |
1998 const ExternalUint8Array& external = | 2075 const ExternalUint8Array& external = |
1999 ExternalUint8Array::Handle( | 2076 ExternalUint8Array::Handle( |
2000 ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); | 2077 ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); |
2001 EXPECT(!external.IsNull()); | 2078 EXPECT(!external.IsNull()); |
2002 EXPECT_EQ(4, external.Length()); | 2079 EXPECT_EQ(4, external.Length()); |
2003 EXPECT_EQ(0, external.At(0)); | 2080 EXPECT_EQ(0, external.At(0)); |
2004 EXPECT_EQ(1, external.At(1)); | 2081 EXPECT_EQ(1, external.At(1)); |
2005 EXPECT_EQ(2, external.At(2)); | 2082 EXPECT_EQ(2, external.At(2)); |
2006 EXPECT_EQ(3, external.At(3)); | 2083 EXPECT_EQ(3, external.At(3)); |
2007 | 2084 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2042 | 2119 |
2043 // A four element copy. | 2120 // A four element copy. |
2044 ByteArray::Copy(external, 0, b_0_1_2_3, 4); | 2121 ByteArray::Copy(external, 0, b_0_1_2_3, 4); |
2045 EXPECT_EQ(0, external.At(0)); | 2122 EXPECT_EQ(0, external.At(0)); |
2046 EXPECT_EQ(1, external.At(1)); | 2123 EXPECT_EQ(1, external.At(1)); |
2047 EXPECT_EQ(2, external.At(2)); | 2124 EXPECT_EQ(2, external.At(2)); |
2048 EXPECT_EQ(3, external.At(3)); | 2125 EXPECT_EQ(3, external.At(3)); |
2049 } | 2126 } |
2050 | 2127 |
2051 | 2128 |
2052 TEST_CASE(ByteArrayCopyInternalExternal) { | 2129 TEST_CASE(ClampedUint8ByteArrayCopyExternal) { |
2053 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; | 2130 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| 2131 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
| 2132 |
| 2133 uint8_t data[] = { 0, 1, 2, 3 }; |
| 2134 |
| 2135 const ExternalUint8ClampedArray& external = |
| 2136 ExternalUint8ClampedArray::Handle( |
| 2137 ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data), NULL, NULL)); |
| 2138 EXPECT(!external.IsNull()); |
| 2139 EXPECT_EQ(4, external.Length()); |
| 2140 EXPECT_EQ(0, external.At(0)); |
| 2141 EXPECT_EQ(1, external.At(1)); |
| 2142 EXPECT_EQ(2, external.At(2)); |
| 2143 EXPECT_EQ(3, external.At(3)); |
| 2144 |
| 2145 // A zero length copy. |
| 2146 ByteArray::Copy(external, 0, b_4_5_6_7, 0); |
| 2147 EXPECT_EQ(0, external.At(0)); |
| 2148 EXPECT_EQ(1, external.At(1)); |
| 2149 EXPECT_EQ(2, external.At(2)); |
| 2150 EXPECT_EQ(3, external.At(3)); |
| 2151 |
| 2152 // Another zero length copy. |
| 2153 ByteArray::Copy(external, 4, b_4_5_6_7, 0); |
| 2154 EXPECT_EQ(0, external.At(0)); |
| 2155 EXPECT_EQ(1, external.At(1)); |
| 2156 EXPECT_EQ(2, external.At(2)); |
| 2157 EXPECT_EQ(3, external.At(3)); |
| 2158 |
| 2159 // A one element copy. |
| 2160 ByteArray::Copy(external, 0, b_4_5_6_7, 1); |
| 2161 EXPECT_EQ(4, external.At(0)); |
| 2162 EXPECT_EQ(1, external.At(1)); |
| 2163 EXPECT_EQ(2, external.At(2)); |
| 2164 EXPECT_EQ(3, external.At(3)); |
| 2165 |
| 2166 // A two element copy. |
| 2167 ByteArray::Copy(external, 2, b_4_5_6_7, 2); |
| 2168 EXPECT_EQ(4, external.At(0)); |
| 2169 EXPECT_EQ(1, external.At(1)); |
| 2170 EXPECT_EQ(4, external.At(2)); |
| 2171 EXPECT_EQ(5, external.At(3)); |
| 2172 |
| 2173 // A three element copy. |
| 2174 ByteArray::Copy(external, 1, b_4_5_6_7, 3); |
| 2175 EXPECT_EQ(4, external.At(0)); |
| 2176 EXPECT_EQ(4, external.At(1)); |
| 2177 EXPECT_EQ(5, external.At(2)); |
| 2178 EXPECT_EQ(6, external.At(3)); |
| 2179 |
| 2180 // A four element copy. |
| 2181 ByteArray::Copy(external, 0, b_0_1_2_3, 4); |
| 2182 EXPECT_EQ(0, external.At(0)); |
| 2183 EXPECT_EQ(1, external.At(1)); |
| 2184 EXPECT_EQ(2, external.At(2)); |
| 2185 EXPECT_EQ(3, external.At(3)); |
| 2186 } |
| 2187 |
| 2188 |
| 2189 TEST_CASE(Uint8ByteArrayCopyInternalExternal) { |
| 2190 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| 2191 uint8_t data[] = { 4, 5, 6, 7 }; |
2054 | 2192 |
2055 const Uint8Array& internal = | 2193 const Uint8Array& internal = |
2056 Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); | 2194 Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
2057 EXPECT(!internal.IsNull()); | 2195 EXPECT(!internal.IsNull()); |
2058 EXPECT_EQ(4, internal.Length()); | 2196 EXPECT_EQ(4, internal.Length()); |
2059 EXPECT_EQ(0, internal.At(0)); | 2197 EXPECT_EQ(0, internal.At(0)); |
2060 EXPECT_EQ(1, internal.At(1)); | 2198 EXPECT_EQ(1, internal.At(1)); |
2061 EXPECT_EQ(2, internal.At(2)); | 2199 EXPECT_EQ(2, internal.At(2)); |
2062 EXPECT_EQ(3, internal.At(3)); | 2200 EXPECT_EQ(3, internal.At(3)); |
2063 | 2201 |
2064 uint8_t data[] = { 4, 5, 6, 7 }; | |
2065 const ExternalUint8Array& external = | 2202 const ExternalUint8Array& external = |
2066 ExternalUint8Array::Handle( | 2203 ExternalUint8Array::Handle( |
2067 ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); | 2204 ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); |
2068 EXPECT(!external.IsNull()); | 2205 EXPECT(!external.IsNull()); |
2069 EXPECT_EQ(4, external.Length()); | 2206 EXPECT_EQ(4, external.Length()); |
2070 EXPECT_EQ(4, external.At(0)); | 2207 EXPECT_EQ(4, external.At(0)); |
2071 EXPECT_EQ(5, external.At(1)); | 2208 EXPECT_EQ(5, external.At(1)); |
2072 EXPECT_EQ(6, external.At(2)); | 2209 EXPECT_EQ(6, external.At(2)); |
2073 EXPECT_EQ(7, external.At(3)); | 2210 EXPECT_EQ(7, external.At(3)); |
2074 | 2211 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2122 EXPECT_EQ(5, internal.At(1)); | 2259 EXPECT_EQ(5, internal.At(1)); |
2123 EXPECT_EQ(6, internal.At(2)); | 2260 EXPECT_EQ(6, internal.At(2)); |
2124 EXPECT_EQ(7, internal.At(3)); | 2261 EXPECT_EQ(7, internal.At(3)); |
2125 EXPECT_EQ(4, external.At(0)); | 2262 EXPECT_EQ(4, external.At(0)); |
2126 EXPECT_EQ(5, external.At(1)); | 2263 EXPECT_EQ(5, external.At(1)); |
2127 EXPECT_EQ(6, external.At(2)); | 2264 EXPECT_EQ(6, external.At(2)); |
2128 EXPECT_EQ(7, external.At(3)); | 2265 EXPECT_EQ(7, external.At(3)); |
2129 } | 2266 } |
2130 | 2267 |
2131 | 2268 |
| 2269 TEST_CASE(ClampedUint8ByteArrayCopyInternalExternal) { |
| 2270 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| 2271 uint8_t data[] = { 4, 5, 6, 7 }; |
| 2272 |
| 2273 const Uint8ClampedArray& internal = |
| 2274 Uint8ClampedArray::Handle( |
| 2275 Uint8ClampedArray::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
| 2276 EXPECT(!internal.IsNull()); |
| 2277 EXPECT_EQ(4, internal.Length()); |
| 2278 EXPECT_EQ(0, internal.At(0)); |
| 2279 EXPECT_EQ(1, internal.At(1)); |
| 2280 EXPECT_EQ(2, internal.At(2)); |
| 2281 EXPECT_EQ(3, internal.At(3)); |
| 2282 |
| 2283 const ExternalUint8ClampedArray& external = |
| 2284 ExternalUint8ClampedArray::Handle( |
| 2285 ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data), NULL, NULL)); |
| 2286 EXPECT(!external.IsNull()); |
| 2287 EXPECT_EQ(4, external.Length()); |
| 2288 EXPECT_EQ(4, external.At(0)); |
| 2289 EXPECT_EQ(5, external.At(1)); |
| 2290 EXPECT_EQ(6, external.At(2)); |
| 2291 EXPECT_EQ(7, external.At(3)); |
| 2292 |
| 2293 // A zero length copy. |
| 2294 ByteArray::Copy(internal, 0, external, 0, 0); |
| 2295 EXPECT_EQ(0, internal.At(0)); |
| 2296 EXPECT_EQ(1, internal.At(1)); |
| 2297 EXPECT_EQ(2, internal.At(2)); |
| 2298 EXPECT_EQ(3, internal.At(3)); |
| 2299 |
| 2300 // A zero length copy, take 2. |
| 2301 ByteArray::Copy(internal, 4, external, 0, 0); |
| 2302 EXPECT_EQ(0, internal.At(0)); |
| 2303 EXPECT_EQ(1, internal.At(1)); |
| 2304 EXPECT_EQ(2, internal.At(2)); |
| 2305 EXPECT_EQ(3, internal.At(3)); |
| 2306 |
| 2307 // A zero length copy, take 3. |
| 2308 ByteArray::Copy(internal, 0, external, 4, 0); |
| 2309 EXPECT_EQ(0, internal.At(0)); |
| 2310 EXPECT_EQ(1, internal.At(1)); |
| 2311 EXPECT_EQ(2, internal.At(2)); |
| 2312 EXPECT_EQ(3, internal.At(3)); |
| 2313 |
| 2314 // A zero length copy, take 4. |
| 2315 ByteArray::Copy(internal, 4, external, 4, 0); |
| 2316 EXPECT_EQ(0, internal.At(0)); |
| 2317 EXPECT_EQ(1, internal.At(1)); |
| 2318 EXPECT_EQ(2, internal.At(2)); |
| 2319 EXPECT_EQ(3, internal.At(3)); |
| 2320 |
| 2321 // A four element copy. |
| 2322 ByteArray::Copy(internal, 0, external, 0, 4); |
| 2323 EXPECT_EQ(4, internal.At(0)); |
| 2324 EXPECT_EQ(5, internal.At(1)); |
| 2325 EXPECT_EQ(6, internal.At(2)); |
| 2326 EXPECT_EQ(7, internal.At(3)); |
| 2327 EXPECT_EQ(4, external.At(0)); |
| 2328 EXPECT_EQ(5, external.At(1)); |
| 2329 EXPECT_EQ(6, external.At(2)); |
| 2330 EXPECT_EQ(7, external.At(3)); |
| 2331 |
| 2332 // A four element copy, take 2. |
| 2333 ByteArray::Copy(external, 0, b_0_1_2_3, 4); |
| 2334 EXPECT_EQ(0, external.At(0)); |
| 2335 EXPECT_EQ(1, external.At(1)); |
| 2336 EXPECT_EQ(2, external.At(2)); |
| 2337 EXPECT_EQ(3, external.At(3)); |
| 2338 ByteArray::Copy(external, 0, internal, 0, 4); |
| 2339 EXPECT_EQ(4, internal.At(0)); |
| 2340 EXPECT_EQ(5, internal.At(1)); |
| 2341 EXPECT_EQ(6, internal.At(2)); |
| 2342 EXPECT_EQ(7, internal.At(3)); |
| 2343 EXPECT_EQ(4, external.At(0)); |
| 2344 EXPECT_EQ(5, external.At(1)); |
| 2345 EXPECT_EQ(6, external.At(2)); |
| 2346 EXPECT_EQ(7, external.At(3)); |
| 2347 } |
| 2348 |
| 2349 |
2132 TEST_CASE(Script) { | 2350 TEST_CASE(Script) { |
2133 const char* url_chars = "builtin:test-case"; | 2351 const char* url_chars = "builtin:test-case"; |
2134 const char* source_chars = "This will not compile."; | 2352 const char* source_chars = "This will not compile."; |
2135 const String& url = String::Handle(String::New(url_chars)); | 2353 const String& url = String::Handle(String::New(url_chars)); |
2136 const String& source = String::Handle(String::New(source_chars)); | 2354 const String& source = String::Handle(String::New(source_chars)); |
2137 const Script& script = Script::Handle(Script::New(url, | 2355 const Script& script = Script::Handle(Script::New(url, |
2138 source, | 2356 source, |
2139 RawScript::kSourceTag)); | 2357 RawScript::kSourceTag)); |
2140 EXPECT(!script.IsNull()); | 2358 EXPECT(!script.IsNull()); |
2141 EXPECT(script.IsScript()); | 2359 EXPECT(script.IsScript()); |
(...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3250 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); | 3468 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); |
3251 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); | 3469 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); |
3252 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); | 3470 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); |
3253 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); | 3471 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); |
3254 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); | 3472 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); |
3255 } | 3473 } |
3256 | 3474 |
3257 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 3475 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
3258 | 3476 |
3259 } // namespace dart | 3477 } // namespace dart |
OLD | NEW |