summaryrefslogtreecommitdiff
path: root/chromium/content/renderer/skia_benchmarking_extension_unittest.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-06-18 14:10:49 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-06-18 13:53:24 +0000
commit813fbf95af77a531c57a8c497345ad2c61d475b3 (patch)
tree821b2c8de8365f21b6c9ba17a236fb3006a1d506 /chromium/content/renderer/skia_benchmarking_extension_unittest.cc
parentaf6588f8d723931a298c995fa97259bb7f7deb55 (diff)
downloadqtwebengine-chromium-813fbf95af77a531c57a8c497345ad2c61d475b3.tar.gz
BASELINE: Update chromium to 44.0.2403.47
Change-Id: Ie056fedba95cf5e5c76b30c4b2c80fca4764aa2f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'chromium/content/renderer/skia_benchmarking_extension_unittest.cc')
-rw-r--r--chromium/content/renderer/skia_benchmarking_extension_unittest.cc135
1 files changed, 68 insertions, 67 deletions
diff --git a/chromium/content/renderer/skia_benchmarking_extension_unittest.cc b/chromium/content/renderer/skia_benchmarking_extension_unittest.cc
index 1c1bf9a9c0c..0e97ae701df 100644
--- a/chromium/content/renderer/skia_benchmarking_extension_unittest.cc
+++ b/chromium/content/renderer/skia_benchmarking_extension_unittest.cc
@@ -4,101 +4,102 @@
#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));
SkRect fillRect = SkRect::MakeXYWH(SkIntToScalar(25), SkIntToScalar(25),
SkIntToScalar(50), SkIntToScalar(50));
+ SkMatrix trans;
+ trans.setTranslate(SkIntToScalar(10), SkIntToScalar(10));
+
// Draw a trivial scene.
- canvas.save();
- canvas.clipRect(fullRect, SkRegion::kIntersect_Op, false);
- canvas.translate(SkIntToScalar(10), SkIntToScalar(10));
- canvas.scale(SkIntToScalar(2), SkIntToScalar(2));
- 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.
- DrawType cmd;
- int idx = 0;
- ASSERT_EQ(canvas.getSize(), 6);
-
- ASSERT_TRUE(canvas.getDrawCommandAt(idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SAVE);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Save");
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, CLIP_RECT);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Clip Rect");
- 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, TRANSLATE);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Translate");
- EXPECT_TRUE(HasInfoField(canvas, idx, "dx"));
- EXPECT_TRUE(HasInfoField(canvas, idx, "dy"));
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, SCALE);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Scale");
- EXPECT_TRUE(HasInfoField(canvas, idx, "sx"));
- EXPECT_TRUE(HasInfoField(canvas, idx, "sy"));
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, DRAW_RECT);
- EXPECT_STREQ(SkDrawCommand::GetCommandString(cmd), "Draw Rect");
- EXPECT_TRUE(HasInfoField(canvas, idx, "SkRect"));
-
- ASSERT_TRUE(canvas.getDrawCommandAt(++idx) != NULL);
- cmd = canvas.getDrawCommandAt(idx)->getType();
- EXPECT_EQ(cmd, RESTORE);
- 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