Index: ppapi/tests/test_case.h |
diff --git a/ppapi/tests/test_case.h b/ppapi/tests/test_case.h |
index b4815a1a9dc54c36f82bc519a1ab80c654a4a355..297308489f58441da361e1dd3081ee4fb3c624c6 100644 |
--- a/ppapi/tests/test_case.h |
+++ b/ppapi/tests/test_case.h |
@@ -14,6 +14,7 @@ |
#include "ppapi/c/dev/ppb_testing_dev.h" |
#include "ppapi/cpp/dev/scrollbar_dev.h" |
#include "ppapi/cpp/view.h" |
+#include "ppapi/tests/test_utils.h" |
#if (defined __native_client__) |
#include "ppapi/cpp/var.h" |
@@ -108,13 +109,28 @@ class TestCase { |
// Pointer to the instance that owns us. |
TestingInstance* instance_; |
+ protected: |
// NULL unless InitTestingInterface is called. |
const PPB_Testing_Dev* testing_interface_; |
- // Force asynchronous completion of any operation taking a callback. |
+ // TODO(dmichael): Remove this, it's for temporary backwards compatibility so |
+ // I don't have to change all the tests at once. |
bool force_async_; |
+ void set_callback_type(CallbackType callback_type) { |
+ callback_type_ = callback_type; |
+ // TODO(dmichael): Remove this; see comment on force_async_. |
+ force_async_ = (callback_type_ == PP_REQUIRED); |
+ } |
+ CallbackType callback_type() const { |
+ return callback_type_; |
+ } |
+ |
private: |
+ // Passed when creating completion callbacks in some tests. This determines |
+ // what kind of callback we use for the test. |
+ CallbackType callback_type_; |
+ |
// Var ids that should be ignored when checking for leaks on shutdown. |
std::set<int64_t> ignored_leaked_vars_; |
@@ -167,7 +183,7 @@ class TestCaseFactory { |
// test |name|. |
#define RUN_TEST(name, test_filter) \ |
if (MatchesFilter(#name, test_filter)) { \ |
- force_async_ = false; \ |
+ set_callback_type(PP_OPTIONAL); \ |
std::string error_message = Test##name(); \ |
if (error_message.empty()) \ |
error_message = CheckResourcesAndVars(); \ |
@@ -176,7 +192,7 @@ class TestCaseFactory { |
#define RUN_TEST_WITH_REFERENCE_CHECK(name, test_filter) \ |
if (MatchesFilter(#name, test_filter)) { \ |
- force_async_ = false; \ |
+ set_callback_type(PP_OPTIONAL); \ |
uint32_t objects = testing_interface_->GetLiveObjectsForInstance( \ |
instance_->pp_instance()); \ |
std::string error_message = Test##name(); \ |
@@ -192,7 +208,7 @@ class TestCaseFactory { |
// asynchronously on success or error. |
#define RUN_TEST_FORCEASYNC(name, test_filter) \ |
if (MatchesFilter(#name"ForceAsync", test_filter)) { \ |
- force_async_ = true; \ |
+ set_callback_type(PP_REQUIRED); \ |
instance_->LogTest(#name"ForceAsync", Test##name()); \ |
} |