Index: ppapi/tests/testing_instance.h |
=================================================================== |
--- ppapi/tests/testing_instance.h (revision 98050) |
+++ ppapi/tests/testing_instance.h (working copy) |
@@ -17,6 +17,23 @@ |
class TestCase; |
+// How signaling works: |
+// |
+// We want to signal to the Chrome UI test harness |
+// (chrome/test/ui/ppapi_uitest.cc) that we're making progress and when we're |
+// done. The easiest thing in the UI test infrastructure is to wait for a |
+// cookie to become nonempty. We don't want to have a big wait for all tests in |
+// a TestCase since they can take a while and it might timeout. So we set a |
+// series of cookies with an incrementing number in the name. |
+// |
+// If the value of the cookie is "..." then that tells the test runner that |
+// the test is progressing. It then waits for the next numbered cookie until |
+// it either times out or the value is something other than "...". In this |
+// case, the value will be either "PASS" or "FAIL [optional message]" |
+// corresponding to the outcome of the entire test case. Timeout will be |
+// treated just like a failure of the entire test case and the test will be |
+// terminated. |
+// |
// In trusted builds, we use InstancePrivate and allow tests that use |
// synchronous scripting. NaCl does not support synchronous scripting. |
class TestingInstance : public |
@@ -81,6 +98,8 @@ |
// Appends the given HTML string to the console in the document. |
void LogHTML(const std::string& html); |
+ void ReportProgress(const std::string& progress_value); |
+ |
// Sets the given cookie in the current document. |
void SetCookie(const std::string& name, const std::string& value); |
@@ -89,6 +108,10 @@ |
// Owning pointer to the current test case. Valid after Init has been called. |
TestCase* current_case_; |
+ // The current step we're on starting at 0. This is incremented every time we |
+ // report progress via a cookie. See comment above the class. |
+ int progress_cookie_number_; |
+ |
// Set once the tests are run so we know not to re-run when the view is sized. |
bool executed_tests_; |