Commit f54f60c5 authored by Sigurdur Asgeirsson's avatar Sigurdur Asgeirsson Committed by Commit Bot

PM: Add death tests for safe downcast.

Bug: 969764
Change-Id: I78592474edd3ee7c69700940baa148349b4c9830
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1764967Reviewed-by: default avatarSébastien Marchand <sebmarchand@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#689505}
parent 4405d8d5
...@@ -48,6 +48,15 @@ TEST_F(FrameNodeImplTest, SafeDowncast) { ...@@ -48,6 +48,15 @@ TEST_F(FrameNodeImplTest, SafeDowncast) {
EXPECT_EQ(static_cast<Node*>(node), base->ToNode()); EXPECT_EQ(static_cast<Node*>(node), base->ToNode());
} }
using FrameNodeImplDeathTest = FrameNodeImplTest;
TEST_F(FrameNodeImplDeathTest, SafeDowncast) {
auto process = CreateNode<ProcessNodeImpl>();
auto page = CreateNode<PageNodeImpl>();
auto frame = CreateNode<FrameNodeImpl>(process.get(), page.get());
ASSERT_DEATH(PageNodeImpl::FromNodeBase(frame.get()), "Check failed: .*");
}
TEST_F(FrameNodeImplTest, AddFrameHierarchyBasic) { TEST_F(FrameNodeImplTest, AddFrameHierarchyBasic) {
auto process = CreateNode<ProcessNodeImpl>(); auto process = CreateNode<ProcessNodeImpl>();
auto page = CreateNode<PageNodeImpl>(); auto page = CreateNode<PageNodeImpl>();
......
...@@ -50,6 +50,13 @@ TEST_F(PageNodeImplTest, SafeDowncast) { ...@@ -50,6 +50,13 @@ TEST_F(PageNodeImplTest, SafeDowncast) {
EXPECT_EQ(static_cast<Node*>(node), base->ToNode()); EXPECT_EQ(static_cast<Node*>(node), base->ToNode());
} }
using PageNodeImplDeathTest = PageNodeImplTest;
TEST_F(PageNodeImplDeathTest, SafeDowncast) {
auto page = CreateNode<PageNodeImpl>();
ASSERT_DEATH(FrameNodeImpl::FromNodeBase(page.get()), "Check failed: .*");
}
TEST_F(PageNodeImplTest, AddFrameBasic) { TEST_F(PageNodeImplTest, AddFrameBasic) {
auto process_node = CreateNode<ProcessNodeImpl>(); auto process_node = CreateNode<ProcessNodeImpl>();
auto page_node = CreateNode<PageNodeImpl>(); auto page_node = CreateNode<PageNodeImpl>();
......
...@@ -29,6 +29,13 @@ TEST_F(ProcessNodeImplTest, SafeDowncast) { ...@@ -29,6 +29,13 @@ TEST_F(ProcessNodeImplTest, SafeDowncast) {
EXPECT_EQ(static_cast<Node*>(node), base->ToNode()); EXPECT_EQ(static_cast<Node*>(node), base->ToNode());
} }
using ProcessNodeImplDeathTest = ProcessNodeImplTest;
TEST_F(ProcessNodeImplDeathTest, SafeDowncast) {
auto process = CreateNode<ProcessNodeImpl>();
ASSERT_DEATH(FrameNodeImpl::FromNodeBase(process.get()), "Check failed: .*");
}
TEST_F(ProcessNodeImplTest, MeasureCPUUsage) { TEST_F(ProcessNodeImplTest, MeasureCPUUsage) {
auto process_node = CreateNode<ProcessNodeImpl>(); auto process_node = CreateNode<ProcessNodeImpl>();
process_node->SetCPUUsage(1.0); process_node->SetCPUUsage(1.0);
......
...@@ -58,6 +58,13 @@ TEST_F(SystemNodeImplTest, SafeDowncast) { ...@@ -58,6 +58,13 @@ TEST_F(SystemNodeImplTest, SafeDowncast) {
EXPECT_EQ(static_cast<Node*>(node), base->ToNode()); EXPECT_EQ(static_cast<Node*>(node), base->ToNode());
} }
using SystemNodeImplDeathTest = SystemNodeImplTest;
TEST_F(SystemNodeImplDeathTest, SafeDowncast) {
auto system = CreateNode<SystemNodeImpl>();
ASSERT_DEATH(PageNodeImpl::FromNodeBase(system.get()), "Check failed: .*");
}
namespace { namespace {
class LenientMockObserver : public SystemNodeImpl::Observer { class LenientMockObserver : public SystemNodeImpl::Observer {
......
...@@ -26,7 +26,6 @@ class WorkerNodeImplTest : public GraphTestHarness { ...@@ -26,7 +26,6 @@ class WorkerNodeImplTest : public GraphTestHarness {
TEST_F(WorkerNodeImplTest, SafeDowncast) { TEST_F(WorkerNodeImplTest, SafeDowncast) {
auto process = CreateNode<ProcessNodeImpl>(); auto process = CreateNode<ProcessNodeImpl>();
auto page = CreateNode<PageNodeImpl>();
auto worker = CreateNode<WorkerNodeImpl>(WorkerNode::WorkerType::kDedicated, auto worker = CreateNode<WorkerNodeImpl>(WorkerNode::WorkerType::kDedicated,
process.get()); process.get());
WorkerNode* node = worker.get(); WorkerNode* node = worker.get();
...@@ -36,6 +35,15 @@ TEST_F(WorkerNodeImplTest, SafeDowncast) { ...@@ -36,6 +35,15 @@ TEST_F(WorkerNodeImplTest, SafeDowncast) {
EXPECT_EQ(static_cast<Node*>(node), base->ToNode()); EXPECT_EQ(static_cast<Node*>(node), base->ToNode());
} }
using WorkerNodeImplDeathTest = WorkerNodeImplTest;
TEST_F(WorkerNodeImplDeathTest, SafeDowncast) {
auto process = CreateNode<ProcessNodeImpl>();
auto worker = CreateNode<WorkerNodeImpl>(WorkerNode::WorkerType::kDedicated,
process.get());
ASSERT_DEATH(FrameNodeImpl::FromNodeBase(worker.get()), "Check failed: .*");
}
// Create a worker of each type and register the frame as a client of each. // Create a worker of each type and register the frame as a client of each.
TEST_F(WorkerNodeImplTest, AddWorkerNodes) { TEST_F(WorkerNodeImplTest, AddWorkerNodes) {
auto process = CreateNode<ProcessNodeImpl>(); auto process = CreateNode<ProcessNodeImpl>();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment