diff options
author | Mike Reed <reed@google.com> | 2016-12-14 12:34:06 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-12-14 18:34:30 +0000 |
commit | 49282296b6b1ca4e49be2441d83a3e0aad65b319 (patch) | |
tree | 733e91f2c5db90974a59355f8616522e7eccc8d6 | |
parent | 7a1cc6766d07f343923587deaf14e1a3965c2b8f (diff) |
add tests/bench for dynamicwstream
BUG=skia:
Change-Id: I5a995b63b1a2975cce8101717777eaa6fc12af21
Reviewed-on: https://skia-review.googlesource.com/6035
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
-rw-r--r-- | bench/StreamBench.cpp | 41 | ||||
-rw-r--r-- | gn/bench.gni | 1 | ||||
-rw-r--r-- | tests/StreamTest.cpp | 3 |
3 files changed, 45 insertions, 0 deletions
diff --git a/bench/StreamBench.cpp b/bench/StreamBench.cpp new file mode 100644 index 0000000000..0650a999bb --- /dev/null +++ b/bench/StreamBench.cpp @@ -0,0 +1,41 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "Benchmark.h" +#include "SkStream.h" + +class StreamBench : public Benchmark { + SkString fName; +public: + StreamBench() { + fName.printf("wstream"); + } + + bool isSuitableFor(Backend backend) override { + return backend == kNonRendering_Backend; + } + +protected: + const char* onGetName() override { return fName.c_str(); } + + void onDraw(int loops, SkCanvas* canvas) override { + for (int i = 0; i < loops*100; ++i) { + SkDynamicMemoryWStream stream; + for (int j = 0; j < 100000; ++j) { + stream.write32(j); + stream.write32(j+j); + } + } + } + +private: + typedef Benchmark INHERITED; +}; + +/////////////////////////////////////////////////////////////////////////////// + +DEF_BENCH(return new StreamBench;) diff --git a/gn/bench.gni b/gn/bench.gni index 8041c34842..d6252927c9 100644 --- a/gn/bench.gni +++ b/gn/bench.gni @@ -111,6 +111,7 @@ bench_sources = [ "$_bench/SKPAnimationBench.cpp", "$_bench/SKPBench.cpp", "$_bench/SkRasterPipelineBench.cpp", + "$_bench/StreamBench.cpp", "$_bench/SortBench.cpp", "$_bench/StrokeBench.cpp", "$_bench/SwizzleBench.cpp", diff --git a/tests/StreamTest.cpp b/tests/StreamTest.cpp index b330745fb8..d1fd75105a 100644 --- a/tests/StreamTest.cpp +++ b/tests/StreamTest.cpp @@ -352,6 +352,7 @@ DEF_TEST(StreamPeek_BlockMemoryStream, rep) { SkRandom rand(kSeed << 1); uint8_t buffer[4096]; SkDynamicMemoryWStream dynamicMemoryWStream; + size_t totalWritten = 0; for (int i = 0; i < 32; ++i) { // Randomize the length of the blocks. size_t size = rand.nextRangeU(1, sizeof(buffer)); @@ -359,6 +360,8 @@ DEF_TEST(StreamPeek_BlockMemoryStream, rep) { buffer[j] = valueSource.nextU() & 0xFF; } dynamicMemoryWStream.write(buffer, size); + totalWritten += size; + REPORTER_ASSERT(rep, totalWritten == dynamicMemoryWStream.bytesWritten()); } std::unique_ptr<SkStreamAsset> asset(dynamicMemoryWStream.detachAsStream()); sk_sp<SkData> expected(SkData::MakeUninitialized(asset->getLength())); |