diff options
-rw-r--r-- | tests/Test.cpp | 15 | ||||
-rw-r--r-- | tests/Test.h | 4 |
2 files changed, 13 insertions, 6 deletions
diff --git a/tests/Test.cpp b/tests/Test.cpp index 07db96953e..5558a0be5e 100644 --- a/tests/Test.cpp +++ b/tests/Test.cpp @@ -60,7 +60,7 @@ const char* Test::getName() { namespace { class LocalReporter : public Reporter { public: - explicit LocalReporter(const Reporter& reporterToMimic) : fReporter(reporterToMimic) {} + explicit LocalReporter(Reporter* reporterToMimic) : fReporter(reporterToMimic) {} int failure_size() const { return fFailures.count(); } const char* failure(int i) const { return fFailures[i].c_str(); } @@ -72,16 +72,21 @@ namespace { } } + // Proxy down to fReporter. We assume these calls are threadsafe. virtual bool allowExtendedTest() const SK_OVERRIDE { - return fReporter.allowExtendedTest(); + return fReporter->allowExtendedTest(); } virtual bool allowThreaded() const SK_OVERRIDE { - return fReporter.allowThreaded(); + return fReporter->allowThreaded(); + } + + virtual void bumpTestCount() SK_OVERRIDE { + fReporter->bumpTestCount(); } private: - const Reporter& fReporter; + Reporter* fReporter; // Unowned. SkTArray<SkString> fFailures; }; } // namespace @@ -93,7 +98,7 @@ void Test::run() { const SkMSec start = SkTime::GetMSecs(); // Run the test into a LocalReporter so we know if it's passed or failed without interference // from other tests that might share fReporter. - LocalReporter local(*fReporter); + LocalReporter local(fReporter); this->onRun(&local); fPassed = local.failure_size() == 0; fElapsed = SkTime::GetMSecs() - start; diff --git a/tests/Test.h b/tests/Test.h index a4baf5b13c..dfa12a6dfc 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -32,14 +32,16 @@ namespace skiatest { kLastResult = kFailed }; - void bumpTestCount() { sk_atomic_inc(&fTestCount); } int countTests() const { return fTestCount; } void startTest(Test*); void report(const char testDesc[], Result); void endTest(Test*); + virtual bool allowExtendedTest() const { return false; } virtual bool allowThreaded() const { return false; } + virtual void bumpTestCount() { sk_atomic_inc(&fTestCount); } + // helpers for tests void reportFailed(const char desc[]) { this->report(desc, kFailed); |