Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: mojo/dart/embedder/test/validation_unittest.cc

Issue 1411843005: Dart: Removes C++ set for closing handles on an unhandled exception. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Address comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdio.h> 5 #include <stdio.h>
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 24 matching lines...) Expand all
35 .AppendASCII("validation"); 35 .AppendASCII("validation");
36 36
37 return path.AsUTF8Unsafe(); 37 return path.AsUTF8Unsafe();
38 } 38 }
39 39
40 static bool generateEntropy(uint8_t* buffer, intptr_t length) { 40 static bool generateEntropy(uint8_t* buffer, intptr_t length) {
41 base::RandBytes(reinterpret_cast<void*>(buffer), length); 41 base::RandBytes(reinterpret_cast<void*>(buffer), length);
42 return true; 42 return true;
43 } 43 }
44 44
45 static void exceptionCallback(bool* exception, Dart_Handle error) { 45 static void exceptionCallback(bool* exception,
46 int64_t* closed_handles,
47 Dart_Handle error,
48 int64_t count) {
46 *exception = true; 49 *exception = true;
50 *closed_handles = count;
47 } 51 }
48 52
49 // Enumerates files inside |path| and collects all data needed to run 53 // Enumerates files inside |path| and collects all data needed to run
50 // conformance tests. 54 // conformance tests.
51 // For each test there are three entries in the returned vector. 55 // For each test there are three entries in the returned vector.
52 // [0] -> test name. 56 // [0] -> test name.
53 // [1] -> contents of test's .data file. 57 // [1] -> contents of test's .data file.
54 // [2] -> contents of test's .expected file. 58 // [2] -> contents of test's .expected file.
55 static std::vector<std::string> CollectTests(base::FilePath path) { 59 static std::vector<std::string> CollectTests(base::FilePath path) {
56 base::FileEnumerator enumerator(path, false, base::FileEnumerator::FILES); 60 base::FileEnumerator enumerator(path, false, base::FileEnumerator::FILES);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 117
114 // Setup the package root. 118 // Setup the package root.
115 base::FilePath package_root; 119 base::FilePath package_root;
116 PathService::Get(base::DIR_EXE, &package_root); 120 PathService::Get(base::DIR_EXE, &package_root);
117 package_root = package_root.AppendASCII("gen") 121 package_root = package_root.AppendASCII("gen")
118 .AppendASCII("dart-pkg") 122 .AppendASCII("dart-pkg")
119 .AppendASCII("packages"); 123 .AppendASCII("packages");
120 124
121 char* error = NULL; 125 char* error = NULL;
122 bool unhandled_exception = false; 126 bool unhandled_exception = false;
127 int64_t closed_handles = 0;
123 DartControllerConfig config; 128 DartControllerConfig config;
124 // Run with strict compilation even in Release mode so that ASAN testing gets 129 // Run with strict compilation even in Release mode so that ASAN testing gets
125 // coverage of Dart asserts, type-checking, etc. 130 // coverage of Dart asserts, type-checking, etc.
126 config.strict_compilation = true; 131 config.strict_compilation = true;
127 config.script_uri = path.value(); 132 config.script_uri = path.value();
128 config.package_root = package_root.AsUTF8Unsafe(); 133 config.package_root = package_root.AsUTF8Unsafe();
129 config.callbacks.exception = 134 config.callbacks.exception =
130 base::Bind(&exceptionCallback, &unhandled_exception); 135 base::Bind(&exceptionCallback, &unhandled_exception, &closed_handles);
131 config.entropy = generateEntropy; 136 config.entropy = generateEntropy;
132 config.SetVmFlags(nullptr, 0); 137 config.SetVmFlags(nullptr, 0);
133 config.error = &error; 138 config.error = &error;
134 config.SetScriptFlags(arguments_c_str.data(), arguments_c_str.size()); 139 config.SetScriptFlags(arguments_c_str.data(), arguments_c_str.size());
135 140
136 bool success = DartController::RunSingleDartScript(config); 141 bool success = DartController::RunSingleDartScript(config);
137 EXPECT_TRUE(success) << error; 142 EXPECT_TRUE(success) << error;
138 EXPECT_FALSE(unhandled_exception); 143 EXPECT_FALSE(unhandled_exception);
144 EXPECT_EQ(closed_handles, 0);
139 } 145 }
140 146
141 TEST(DartTest, validation) { 147 TEST(DartTest, validation) {
142 RunTest(GetPath()); 148 RunTest(GetPath());
143 } 149 }
144 150
145 } // namespace 151 } // namespace
146 } // namespace dart 152 } // namespace dart
147 } // namespace mojo 153 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698