Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef PPAPI_TESTS_TEST_UTILS_H_ | 5 #ifndef PPAPI_TESTS_TEST_UTILS_H_ |
| 6 #define PPAPI_TESTS_TEST_UTILS_H_ | 6 #define PPAPI_TESTS_TEST_UTILS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "ppapi/c/dev/ppb_testing_dev.h" | 10 #include "ppapi/c/dev/ppb_testing_dev.h" |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 183 TestCompletionCallbackWithOutput(PP_Instance instance, | 183 TestCompletionCallbackWithOutput(PP_Instance instance, |
| 184 CallbackType callback_type) : | 184 CallbackType callback_type) : |
| 185 TestCompletionCallback(instance, callback_type) { | 185 TestCompletionCallback(instance, callback_type) { |
| 186 } | 186 } |
| 187 | 187 |
| 188 pp::CompletionCallbackWithOutput<OutputT> GetCallbackWithOutput(); | 188 pp::CompletionCallbackWithOutput<OutputT> GetCallbackWithOutput(); |
| 189 operator pp::CompletionCallbackWithOutput<OutputT>() { | 189 operator pp::CompletionCallbackWithOutput<OutputT>() { |
| 190 return GetCallbackWithOutput(); | 190 return GetCallbackWithOutput(); |
| 191 } | 191 } |
| 192 | 192 |
| 193 const OutputT& output() { return output_storage_.output(); } | 193 OutputT output() { |
| 194 return pp::internal::CallbackOutputTraits<OutputT>::StorageToPluginArg( | |
| 195 output_storage_); | |
| 196 } | |
| 194 | 197 |
| 195 typename pp::CompletionCallbackWithOutput<OutputT>::OutputStorageType | 198 typename pp::CompletionCallbackWithOutput<OutputT>::OutputStorageType |
| 196 output_storage_; | 199 output_storage_; |
| 197 }; | 200 }; |
| 198 | 201 |
| 199 template <typename OutputT> | 202 template <typename OutputT> |
| 200 pp::CompletionCallbackWithOutput<OutputT> | 203 pp::CompletionCallbackWithOutput<OutputT> |
| 201 TestCompletionCallbackWithOutput<OutputT>::GetCallbackWithOutput() { | 204 TestCompletionCallbackWithOutput<OutputT>::GetCallbackWithOutput() { |
| 202 Reset(); | 205 Reset(); |
| 203 if (callback_type_ == PP_BLOCKING) { | 206 if (callback_type_ == PP_BLOCKING) { |
| 204 pp::CompletionCallbackWithOutput<OutputT> cc( | 207 pp::CompletionCallbackWithOutput<OutputT> cc(&output_storage_); |
| 205 &TestCompletionCallback::Handler, | |
| 206 this, | |
| 207 &output_storage_); | |
| 208 return cc; | 208 return cc; |
| 209 } | 209 } |
| 210 | 210 |
| 211 target_loop_ = pp::MessageLoop::GetCurrent(); | 211 target_loop_ = pp::MessageLoop::GetCurrent(); |
| 212 pp::CompletionCallbackWithOutput<OutputT> cc( | 212 pp::CompletionCallbackWithOutput<OutputT> cc( |
| 213 &TestCompletionCallback::Handler, | 213 &TestCompletionCallback::Handler, |
| 214 this, | 214 this, |
| 215 &output_storage_); | 215 &output_storage_); |
| 216 if (callback_type_ == PP_OPTIONAL) | 216 if (callback_type_ == PP_OPTIONAL) |
| 217 cc.set_flags(PP_COMPLETIONCALLBACK_FLAG_OPTIONAL); | 217 cc.set_flags(PP_COMPLETIONCALLBACK_FLAG_OPTIONAL); |
| 218 return cc; | 218 return cc; |
| 219 } | 219 } |
| 220 | 220 |
| 221 | 221 |
| 222 // Verifies that the callback didn't record any errors. If the callback is run | 222 // Verifies that the callback didn't record any errors. If the callback is run |
| 223 // in an unexpected way (e.g., if it's invoked asynchronously when the call | 223 // in an unexpected way (e.g., if it's invoked asynchronously when the call |
| 224 // should have blocked), this returns an appropriate error string. | 224 // should have blocked), this returns an appropriate error string. |
| 225 #define CHECK_CALLBACK_BEHAVIOR(callback) \ | 225 #define CHECK_CALLBACK_BEHAVIOR(callback) \ |
| 226 do { \ | 226 do { \ |
| 227 if ((callback).failed()) \ | 227 if ((callback).failed()) \ |
| 228 return (callback).errors(); \ | 228 return MakeFailureMessage(__FILE__, __LINE__, \ |
| 229 (callback).errors().c_str()); \ | |
|
dmichael (off chromium)
2013/03/27 22:13:55
sweet, thanks
| |
| 229 } while (false) | 230 } while (false) |
| 230 | 231 |
| 231 /* | 232 /* |
| 232 * A set of macros to use for platform detection. These were largely copied | 233 * A set of macros to use for platform detection. These were largely copied |
| 233 * from chromium's build_config.h. | 234 * from chromium's build_config.h. |
| 234 */ | 235 */ |
| 235 #if defined(__APPLE__) | 236 #if defined(__APPLE__) |
| 236 #define PPAPI_OS_MACOSX 1 | 237 #define PPAPI_OS_MACOSX 1 |
| 237 #elif defined(ANDROID) | 238 #elif defined(ANDROID) |
| 238 #define PPAPI_OS_ANDROID 1 | 239 #define PPAPI_OS_ANDROID 1 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 252 #error Please add support for your platform in ppapi/tests/test_utils.h | 253 #error Please add support for your platform in ppapi/tests/test_utils.h |
| 253 #endif | 254 #endif |
| 254 | 255 |
| 255 /* These are used to determine POSIX-like implementations vs Windows. */ | 256 /* These are used to determine POSIX-like implementations vs Windows. */ |
| 256 #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \ | 257 #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \ |
| 257 defined(__OpenBSD__) || defined(__sun) || defined(__native_client__) | 258 defined(__OpenBSD__) || defined(__sun) || defined(__native_client__) |
| 258 #define PPAPI_POSIX 1 | 259 #define PPAPI_POSIX 1 |
| 259 #endif | 260 #endif |
| 260 | 261 |
| 261 #endif // PPAPI_TESTS_TEST_UTILS_H_ | 262 #endif // PPAPI_TESTS_TEST_UTILS_H_ |
| OLD | NEW |