Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1761)

Unified Diff: content/renderer/skia_benchmarking_extension_unittest.cc

Issue 942533002: Refactor BenchmarkingCanvas to avoid internal Skia dependencies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: balance color filter ref Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/skia_benchmarking_extension_unittest.cc
diff --git a/content/renderer/skia_benchmarking_extension_unittest.cc b/content/renderer/skia_benchmarking_extension_unittest.cc
index 8b7b2a7bd8b5f604e9980f2a4734635f1509c6da..0e97ae701dfc0cd8029290154977666aaac1bda5 100644
--- a/content/renderer/skia_benchmarking_extension_unittest.cc
+++ b/content/renderer/skia_benchmarking_extension_unittest.cc
@@ -4,45 +4,42 @@
#include "content/renderer/skia_benchmarking_extension.h"
+#include "base/values.h"
+#include "skia/ext/benchmarking_canvas.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkGraphics.h"
-#include "third_party/skia/src/utils/debugger/SkDebugCanvas.h"
-#include "third_party/skia/src/utils/debugger/SkDrawCommand.h"
namespace {
-testing::AssertionResult HasInfoField(SkDebugCanvas& canvas, int index,
- const char* field) {
+testing::AssertionResult HasArg(const base::ListValue* args,
+ const char name[]) {
+ const base::DictionaryValue* arg;
- const SkTDArray<SkString*>* info = canvas.getCommandInfo(index);
- if (info == NULL)
- return testing::AssertionFailure() << " command info not found for index "
- << index;
+ for (size_t i = 0; i < args->GetSize(); ++i) {
+ if (!args->GetDictionary(i, &arg) || arg->size() != 1)
+ return testing::AssertionFailure() << " malformed argument for index "
+ << i;
- for (int i = 0; i < info->count(); ++i) {
- const SkString* info_str = (*info)[i];
- if (info_str == NULL)
- return testing::AssertionFailure() << " NULL info string for index "
- << index;
-
- // FIXME: loose info paramter test.
- if (strstr(info_str->c_str(), field) != NULL)
- return testing::AssertionSuccess() << field << " found";
+ if (arg->HasKey(name))
+ return testing::AssertionSuccess() << " argument '" << name
+ << "' found at index " << i;
}
- return testing::AssertionFailure() << field << " not found";
+ return testing::AssertionFailure() << "argument not found: '" << name << "'";
}
}
namespace content {
-TEST(SkiaBenchmarkingExtensionTest, SkDebugCanvas) {
+TEST(SkiaBenchmarkingExtensionTest, BenchmarkingCanvas) {
SkGraphics::Init();
// Prepare canvas and resources.
- SkDebugCanvas canvas(100, 100);
+ SkCanvas canvas(100, 100);
+ skia::BenchmarkingCanvas benchmarking_canvas(&canvas);
+
SkPaint red_paint;
red_paint.setColor(SkColorSetARGB(255, 255, 0, 0));
SkRect fullRect = SkRect::MakeWH(SkIntToScalar(100), SkIntToScalar(100));
@@ -53,45 +50,56 @@ TEST(SkiaBenchmarkingExtensionTest, SkDebugCanvas) {
trans.setTranslate(SkIntToScalar(10), SkIntToScalar(10));
// Draw a trivial scene.
- canvas.save();
- canvas.clipRect(fullRect, SkRegion::kIntersect_Op, false);
- canvas.setMatrix(trans);
- canvas.drawRect(fillRect, red_paint);
- canvas.restore();
+ benchmarking_canvas.save();
+ benchmarking_canvas.clipRect(fullRect, SkRegion::kIntersect_Op, false);
+ benchmarking_canvas.setMatrix(trans);
+ benchmarking_canvas.drawRect(fillRect, red_paint);
+ benchmarking_canvas.restore();
// Verify the recorded commands.
- SkDrawCommand::OpType cmd;
- int idx = 0;
- ASSERT_EQ(canvas.getSize(), 5);
-
- ASSERT_TRUE(canvas.getDrawCommandAt(idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SkDrawCommand::kSave_OpType);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Save");
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SkDrawCommand::kClipRect_OpType);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "ClipRect");
- EXPECT_TRUE(HasInfoField(canvas, idx, "SkRect"));
- EXPECT_TRUE(HasInfoField(canvas, idx, "Op"));
- EXPECT_TRUE(HasInfoField(canvas, idx, "doAA"));
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SkDrawCommand::kSetMatrix_OpType);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "SetMatrix");
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SkDrawCommand::kDrawRect_OpType);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "DrawRect");
- EXPECT_TRUE(HasInfoField(canvas, idx, "SkRect"));
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SkDrawCommand::kRestore_OpType);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Restore");
+ const base::ListValue& ops = benchmarking_canvas.Commands();
+ ASSERT_EQ(ops.GetSize(), static_cast<size_t>(5));
+
+ size_t index = 0;
+ const base::DictionaryValue* op;
+ const base::ListValue* op_args;
+ std::string op_name;
+
+ ASSERT_TRUE(ops.GetDictionary(index++, &op));
+ EXPECT_TRUE(op->GetString("cmd_string", &op_name));
+ EXPECT_EQ(op_name, "Save");
+ ASSERT_TRUE(op->GetList("info", &op_args));
+ EXPECT_EQ(op_args->GetSize(), static_cast<size_t>(0));
+
+ ASSERT_TRUE(ops.GetDictionary(index++, &op));
+ EXPECT_TRUE(op->GetString("cmd_string", &op_name));
+ EXPECT_EQ(op_name, "ClipRect");
+ ASSERT_TRUE(op->GetList("info", &op_args));
+ EXPECT_EQ(op_args->GetSize(), static_cast<size_t>(3));
+ EXPECT_TRUE(HasArg(op_args, "rect"));
+ EXPECT_TRUE(HasArg(op_args, "op"));
+ EXPECT_TRUE(HasArg(op_args, "anti-alias"));
+
+ ASSERT_TRUE(ops.GetDictionary(index++, &op));
+ EXPECT_TRUE(op->GetString("cmd_string", &op_name));
+ EXPECT_EQ(op_name, "SetMatrix");
+ ASSERT_TRUE(op->GetList("info", &op_args));
+ EXPECT_EQ(op_args->GetSize(), static_cast<size_t>(1));
+ EXPECT_TRUE(HasArg(op_args, "matrix"));
+
+ ASSERT_TRUE(ops.GetDictionary(index++, &op));
+ EXPECT_TRUE(op->GetString("cmd_string", &op_name));
+ EXPECT_EQ(op_name, "DrawRect");
+ ASSERT_TRUE(op->GetList("info", &op_args));
+ EXPECT_EQ(op_args->GetSize(), static_cast<size_t>(2));
+ EXPECT_TRUE(HasArg(op_args, "rect"));
+ EXPECT_TRUE(HasArg(op_args, "paint"));
+
+ ASSERT_TRUE(ops.GetDictionary(index++, &op));
+ EXPECT_TRUE(op->GetString("cmd_string", &op_name));
+ EXPECT_EQ(op_name, "Restore");
+ ASSERT_TRUE(op->GetList("info", &op_args));
+ EXPECT_EQ(op_args->GetSize(), static_cast<size_t>(0));
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698