| Index: ppapi/tests/testing_instance.cc
|
| ===================================================================
|
| --- ppapi/tests/testing_instance.cc (revision 98050)
|
| +++ ppapi/tests/testing_instance.cc (working copy)
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <algorithm>
|
| #include <cstring>
|
| +#include <sstream>
|
| #include <vector>
|
|
|
| #include "ppapi/cpp/module.h"
|
| @@ -14,6 +15,10 @@
|
|
|
| TestCaseFactory* TestCaseFactory::head_ = NULL;
|
|
|
| +// Cookie value we use to signal "we're still working." See the comment above
|
| +// the class declaration for how this works.
|
| +static const char kProgressSignal[] = "...";
|
| +
|
| // Returns a new heap-allocated test case for the given test, or NULL on
|
| // failure.
|
| TestingInstance::TestingInstance(PP_Instance instance)
|
| @@ -23,6 +28,7 @@
|
| : pp::InstancePrivate(instance),
|
| #endif
|
| current_case_(NULL),
|
| + progress_cookie_number_(0),
|
| executed_tests_(false),
|
| nacl_mode_(false) {
|
| callback_factory_.Initialize(this);
|
| @@ -87,6 +93,9 @@
|
|
|
| void TestingInstance::LogTest(const std::string& test_name,
|
| const std::string& error_message) {
|
| + // Tell the browser we're still working.
|
| + ReportProgress(kProgressSignal);
|
| +
|
| std::string html;
|
| html.append("<div class=\"test_line\"><span class=\"test_name\">");
|
| html.append(test_name);
|
| @@ -113,7 +122,7 @@
|
| }
|
|
|
| void TestingInstance::ExecuteTests(int32_t unused) {
|
| - SetCookie("STARTUP_COOKIE", "STARTED");
|
| + ReportProgress(kProgressSignal);
|
|
|
| // Clear the console.
|
| PostMessage(pp::Var("TESTING_MESSAGE:ClearConsole"));
|
| @@ -134,7 +143,7 @@
|
| }
|
|
|
| // Declare we're done by setting a cookie to either "PASS" or the errors.
|
| - SetCookie("COMPLETION_COOKIE", errors_.empty() ? "PASS" : errors_);
|
| + ReportProgress(errors_.empty() ? "PASS" : errors_);
|
| PostMessage(pp::Var("TESTING_MESSAGE:DidExecuteTests"));
|
| }
|
|
|
| @@ -189,6 +198,14 @@
|
| PostMessage(pp::Var(message));
|
| }
|
|
|
| +void TestingInstance::ReportProgress(const std::string& progress_value) {
|
| + // Use streams since nacl doesn't compile base yet (for StringPrintf).
|
| + std::ostringstream cookie_name;
|
| + cookie_name << "PPAPI_PROGRESS_" << progress_cookie_number_;
|
| + SetCookie(cookie_name.str(), progress_value);
|
| + progress_cookie_number_++;
|
| +}
|
| +
|
| void TestingInstance::SetCookie(const std::string& name,
|
| const std::string& value) {
|
| std::string message("TESTING_MESSAGE:SetCookie:");
|
|
|