| /* | |
| * Copyright 2011 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "tests/Test.h" | |
| #include "include/core/SkString.h" | |
| #include "src/base/SkTime.h" | |
| #include "tools/flags/CommandLineFlags.h" | |
| #include <cstdlib> | |
| #include <cstring> | |
| static DEFINE_string2(tmpDir, t, nullptr, "Temp directory to use."); | |
| void skiatest::Reporter::bumpTestCount() {} | |
| bool skiatest::Reporter::allowExtendedTest() const { return false; } | |
| bool skiatest::Reporter::verbose() const { return false; } | |
| void skiatest::Reporter::reportFailedWithContext(const skiatest::Failure& f) { | |
| SkString fullMessage = f.message; | |
| if (!fContextStack.empty()) { | |
| fullMessage.append(" ["); | |
| for (int i = 0; i < fContextStack.size(); ++i) { | |
| if (i > 0) { | |
| fullMessage.append(", "); | |
| } | |
| fullMessage.append(fContextStack[i]); | |
| } | |
| fullMessage.append("]"); | |
| } | |
| this->reportFailed(skiatest::Failure(f.fileName, f.lineNo, f.condition, fullMessage)); | |
| } | |
| SkString skiatest::Failure::toString() const { | |
| SkString result = SkStringPrintf("%s:%d\t", this->fileName, this->lineNo); | |
| if (!this->message.isEmpty()) { | |
| result.append(this->message); | |
| if (strlen(this->condition) > 0) { | |
| result.append(": "); | |
| } | |
| } | |
| result.append(this->condition); | |
| return result; | |
| } | |
| SkString skiatest::GetTmpDir() { | |
| if (!FLAGS_tmpDir.isEmpty()) { | |
| return SkString(FLAGS_tmpDir[0]); | |
| } | |
| #ifdef SK_BUILD_FOR_ANDROID | |
| const char* environmentVariable = "TMPDIR"; | |
| const char* defaultValue = "/data/local/tmp"; | |
| #elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_UNIX) | |
| const char* environmentVariable = "TMPDIR"; | |
| const char* defaultValue = "/tmp"; | |
| #elif defined(SK_BUILD_FOR_WIN) | |
| const char* environmentVariable = "TEMP"; | |
| const char* defaultValue = nullptr; | |
| #else | |
| const char* environmentVariable = nullptr; | |
| const char* defaultValue = nullptr; | |
| #endif | |
| const char* tmpdir = environmentVariable ? getenv(environmentVariable) : nullptr; | |
| return SkString(tmpdir ? tmpdir : defaultValue); | |
| } | |
| skiatest::Timer::Timer() : fStartNanos(SkTime::GetNSecs()) {} | |
| double skiatest::Timer::elapsedNs() const { | |
| return SkTime::GetNSecs() - fStartNanos; | |
| } | |
| double skiatest::Timer::elapsedMs() const { return this->elapsedNs() * 1e-6; } | |
| SkMSec skiatest::Timer::elapsedMsInt() const { | |
| const double elapsedMs = this->elapsedMs(); | |
| SkASSERT(SK_MSecMax >= elapsedMs); | |
| return static_cast<SkMSec>(elapsedMs); | |
| } |