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 "bin/builtin.h" | 5 #include "bin/builtin.h" |
6 #include "include/dart_api.h" | 6 #include "include/dart_api.h" |
7 #include "include/dart_mirrors_api.h" | 7 #include "include/dart_mirrors_api.h" |
8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "platform/json.h" | 10 #include "platform/json.h" |
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 result = Dart_ListSetAsBytes(list_access_test_obj, 0, native_array, 3); | 825 result = Dart_ListSetAsBytes(list_access_test_obj, 0, native_array, 3); |
826 EXPECT(Dart_IsError(result)); | 826 EXPECT(Dart_IsError(result)); |
827 EXPECT(Dart_IsUnhandledExceptionError(result)); | 827 EXPECT(Dart_IsUnhandledExceptionError(result)); |
828 | 828 |
829 result = Dart_ListSetAt(list_access_test_obj, 0, Dart_NewInteger(42)); | 829 result = Dart_ListSetAt(list_access_test_obj, 0, Dart_NewInteger(42)); |
830 EXPECT(Dart_IsError(result)); | 830 EXPECT(Dart_IsError(result)); |
831 EXPECT(Dart_IsUnhandledExceptionError(result)); | 831 EXPECT(Dart_IsUnhandledExceptionError(result)); |
832 } | 832 } |
833 | 833 |
834 | 834 |
| 835 TEST_CASE(TypedDataViewListGetAsBytes) { |
| 836 const int kSize = 1000; |
| 837 |
| 838 const char* kScriptChars = |
| 839 "import 'dart:typed_data';\n" |
| 840 "List main(int size) {\n" |
| 841 " var a = new Int8List(size);\n" |
| 842 " var view = new Int8List.view(a.buffer, 0, size);\n" |
| 843 " return view;\n" |
| 844 "}\n"; |
| 845 // Create a test library and Load up a test script in it. |
| 846 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| 847 |
| 848 // Test with a typed data view object. |
| 849 Dart_Handle dart_args[1]; |
| 850 dart_args[0] = Dart_NewInteger(kSize); |
| 851 Dart_Handle view_obj = Dart_Invoke(lib, NewString("main"), 1, dart_args); |
| 852 EXPECT_VALID(view_obj); |
| 853 for (intptr_t i = 0; i < kSize; ++i) { |
| 854 EXPECT_VALID(Dart_ListSetAt(view_obj, i, Dart_NewInteger(i & 0xff))); |
| 855 } |
| 856 uint8_t* data = new uint8_t[kSize]; |
| 857 EXPECT_VALID(Dart_ListGetAsBytes(view_obj, 0, data, kSize)); |
| 858 for (intptr_t i = 0; i < kSize; ++i) { |
| 859 EXPECT_EQ(i & 0xff, data[i]); |
| 860 } |
| 861 |
| 862 Dart_Handle result = Dart_ListGetAsBytes(view_obj, 0, data, kSize + 1); |
| 863 EXPECT(Dart_IsError(result)); |
| 864 delete[] data; |
| 865 } |
| 866 |
| 867 |
835 TEST_CASE(TypedDataAccess) { | 868 TEST_CASE(TypedDataAccess) { |
836 EXPECT_EQ(Dart_TypedData_kInvalid, | 869 EXPECT_EQ(Dart_TypedData_kInvalid, |
837 Dart_GetTypeOfTypedData(Dart_True())); | 870 Dart_GetTypeOfTypedData(Dart_True())); |
838 EXPECT_EQ(Dart_TypedData_kInvalid, | 871 EXPECT_EQ(Dart_TypedData_kInvalid, |
839 Dart_GetTypeOfExternalTypedData(Dart_False())); | 872 Dart_GetTypeOfExternalTypedData(Dart_False())); |
840 Dart_Handle byte_array1 = Dart_NewTypedData(Dart_TypedData_kUint8, 10); | 873 Dart_Handle byte_array1 = Dart_NewTypedData(Dart_TypedData_kUint8, 10); |
841 EXPECT_VALID(byte_array1); | 874 EXPECT_VALID(byte_array1); |
842 EXPECT_EQ(Dart_TypedData_kUint8, | 875 EXPECT_EQ(Dart_TypedData_kUint8, |
843 Dart_GetTypeOfTypedData(byte_array1)); | 876 Dart_GetTypeOfTypedData(byte_array1)); |
844 EXPECT_EQ(Dart_TypedData_kInvalid, | 877 EXPECT_EQ(Dart_TypedData_kInvalid, |
(...skipping 7415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8260 EXPECT(Dart_IsError(Dart_GetClass(lib, NewString("baw")))); | 8293 EXPECT(Dart_IsError(Dart_GetClass(lib, NewString("baw")))); |
8261 // Variables foo1 and foo2 are unambiguous. | 8294 // Variables foo1 and foo2 are unambiguous. |
8262 EXPECT(!Dart_IsError(Dart_LookupVariable(lib, NewString("foo1")))); | 8295 EXPECT(!Dart_IsError(Dart_LookupVariable(lib, NewString("foo1")))); |
8263 EXPECT(!Dart_IsError(Dart_LookupVariable(lib, NewString("foo2")))); | 8296 EXPECT(!Dart_IsError(Dart_LookupVariable(lib, NewString("foo2")))); |
8264 // Functions bar1 and bar2 are unambiguous. | 8297 // Functions bar1 and bar2 are unambiguous. |
8265 EXPECT(!Dart_IsError(Dart_LookupFunction(lib, NewString("bar1")))); | 8298 EXPECT(!Dart_IsError(Dart_LookupFunction(lib, NewString("bar1")))); |
8266 EXPECT(!Dart_IsError(Dart_LookupFunction(lib, NewString("bar2")))); | 8299 EXPECT(!Dart_IsError(Dart_LookupFunction(lib, NewString("bar2")))); |
8267 } | 8300 } |
8268 | 8301 |
8269 } // namespace dart | 8302 } // namespace dart |
OLD | NEW |