From b3372201e639a923750c65cf3f1136fe556d71d4 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Tue, 18 Oct 2022 07:15:57 +0800 Subject: [PATCH 1/9] add methods --- lib/ui/window/pointer_data_packet.cc | 10 ++++++++++ lib/ui/window/pointer_data_packet.h | 2 ++ lib/ui/window/pointer_data_packet_converter.cc | 10 ++-------- .../window/pointer_data_packet_converter_unittests.cc | 10 ++-------- .../fuchsia/flutter/platform_view_unittest.cc | 11 ++--------- .../flutter/tests/flatland_platform_view_unittest.cc | 11 ++--------- 6 files changed, 20 insertions(+), 34 deletions(-) diff --git a/lib/ui/window/pointer_data_packet.cc b/lib/ui/window/pointer_data_packet.cc index facdd36798219..6dc58ed7af12e 100644 --- a/lib/ui/window/pointer_data_packet.cc +++ b/lib/ui/window/pointer_data_packet.cc @@ -20,4 +20,14 @@ void PointerDataPacket::SetPointerData(size_t i, const PointerData& data) { memcpy(&data_[i * sizeof(PointerData)], &data, sizeof(PointerData)); } +PointerData PointerDataPacket::GetPointerData(size_t i) { + PointerData result; + memcpy(&result, &data_[i * sizeof(PointerData)], sizeof(PointerData)); + return result; +} + +size_t PointerDataPacket::Size() { + return data_.size() / sizeof(PointerData); +} + } // namespace flutter diff --git a/lib/ui/window/pointer_data_packet.h b/lib/ui/window/pointer_data_packet.h index c7e1066958166..4167b47eeff30 100644 --- a/lib/ui/window/pointer_data_packet.h +++ b/lib/ui/window/pointer_data_packet.h @@ -20,6 +20,8 @@ class PointerDataPacket { ~PointerDataPacket(); void SetPointerData(size_t i, const PointerData& data); + PointerData GetPointerData(size_t i); + size_t Size(); const std::vector& data() const { return data_; } private: diff --git a/lib/ui/window/pointer_data_packet_converter.cc b/lib/ui/window/pointer_data_packet_converter.cc index e98558d490251..0ede673e8d26b 100644 --- a/lib/ui/window/pointer_data_packet_converter.cc +++ b/lib/ui/window/pointer_data_packet_converter.cc @@ -17,17 +17,11 @@ PointerDataPacketConverter::~PointerDataPacketConverter() = default; std::unique_ptr PointerDataPacketConverter::Convert( std::unique_ptr packet) { - size_t kBytesPerPointerData = kPointerDataFieldCount * kBytesPerField; - auto buffer = packet->data(); - size_t buffer_length = buffer.size(); - std::vector converted_pointers; // Converts each pointer data in the buffer and stores it in the // converted_pointers. - for (size_t i = 0; i < buffer_length / kBytesPerPointerData; i++) { - PointerData pointer_data; - memcpy(&pointer_data, &buffer[i * kBytesPerPointerData], - sizeof(PointerData)); + for (size_t i = 0; i < packet->Size(); i++) { + PointerData pointer_data = packet->GetPointerData(i); ConvertPointerData(pointer_data, converted_pointers); } diff --git a/lib/ui/window/pointer_data_packet_converter_unittests.cc b/lib/ui/window/pointer_data_packet_converter_unittests.cc index 8a78aa40982af..613603268ab80 100644 --- a/lib/ui/window/pointer_data_packet_converter_unittests.cc +++ b/lib/ui/window/pointer_data_packet_converter_unittests.cc @@ -133,14 +133,8 @@ void CreateSimulatedTrackpadGestureData(PointerData& data, // NOLINT void UnpackPointerPacket(std::vector& output, // NOLINT std::unique_ptr packet) { - size_t kBytesPerPointerData = kPointerDataFieldCount * kBytesPerField; - auto buffer = packet->data(); - size_t buffer_length = buffer.size(); - - for (size_t i = 0; i < buffer_length / kBytesPerPointerData; i++) { - PointerData pointer_data; - memcpy(&pointer_data, &buffer[i * kBytesPerPointerData], - sizeof(PointerData)); + for (size_t i = 0; i < packet->Size(); i++) { + PointerData pointer_data = packet->GetPointerData(i); output.push_back(pointer_data); } packet.reset(); diff --git a/shell/platform/fuchsia/flutter/platform_view_unittest.cc b/shell/platform/fuchsia/flutter/platform_view_unittest.cc index 3d7eb7977f5c0..da8196209c28a 100644 --- a/shell/platform/fuchsia/flutter/platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/platform_view_unittest.cc @@ -379,15 +379,8 @@ std::string ToString(const fml::Mapping& mapping) { // Stolen from pointer_data_packet_converter_unittests.cc. void UnpackPointerPacket(std::vector& output, // NOLINT std::unique_ptr packet) { - size_t kBytesPerPointerData = - flutter::kPointerDataFieldCount * flutter::kBytesPerField; - auto buffer = packet->data(); - size_t buffer_length = buffer.size(); - - for (size_t i = 0; i < buffer_length / kBytesPerPointerData; i++) { - flutter::PointerData pointer_data; - memcpy(&pointer_data, &buffer[i * kBytesPerPointerData], - sizeof(flutter::PointerData)); + for (size_t i = 0; i < packet->Size(); i++) { + flutter::PointerData pointer_data = packet->GetPointerData(i); output.push_back(pointer_data); } packet.reset(); diff --git a/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc b/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc index be5b4e32f1d5b..477614d0bec97 100644 --- a/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc @@ -481,15 +481,8 @@ std::string ToString(const fml::Mapping& mapping) { // Stolen from pointer_data_packet_converter_unittests.cc. void UnpackPointerPacket(std::vector& output, // NOLINT std::unique_ptr packet) { - size_t kBytesPerPointerData = - flutter::kPointerDataFieldCount * flutter::kBytesPerField; - auto buffer = packet->data(); - size_t buffer_length = buffer.size(); - - for (size_t i = 0; i < buffer_length / kBytesPerPointerData; i++) { - flutter::PointerData pointer_data; - memcpy(&pointer_data, &buffer[i * kBytesPerPointerData], - sizeof(flutter::PointerData)); + for (size_t i = 0; i < packet->Size(); i++) { + flutter::PointerData pointer_data = packet->GetPointerData(i); output.push_back(pointer_data); } packet.reset(); From c49e01aa53c34d94e4ab5b20f21bb5c4b4ab7d10 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Tue, 18 Oct 2022 07:17:28 +0800 Subject: [PATCH 2/9] add empty test --- lib/ui/BUILD.gn | 1 + lib/ui/window/pointer_data_unittests.cc | 0 2 files changed, 1 insertion(+) create mode 100644 lib/ui/window/pointer_data_unittests.cc diff --git a/lib/ui/BUILD.gn b/lib/ui/BUILD.gn index fb2d801241927..9733688423256 100644 --- a/lib/ui/BUILD.gn +++ b/lib/ui/BUILD.gn @@ -236,6 +236,7 @@ if (enable_unittests) { "window/platform_message_response_dart_port_unittests.cc", "window/platform_message_response_dart_unittests.cc", "window/pointer_data_packet_converter_unittests.cc", + "window/pointer_data_unittests.cc", ] deps = [ diff --git a/lib/ui/window/pointer_data_unittests.cc b/lib/ui/window/pointer_data_unittests.cc new file mode 100644 index 0000000000000..e69de29bb2d1d From f62484f5c9f41854da651890764a5b522b2d2148 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Tue, 18 Oct 2022 07:20:29 +0800 Subject: [PATCH 3/9] add unit test --- lib/ui/BUILD.gn | 2 +- .../window/pointer_data_packet_unittests.cc | 69 +++++++++++++++++++ lib/ui/window/pointer_data_unittests.cc | 0 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 lib/ui/window/pointer_data_packet_unittests.cc delete mode 100644 lib/ui/window/pointer_data_unittests.cc diff --git a/lib/ui/BUILD.gn b/lib/ui/BUILD.gn index 9733688423256..c5ba93d8d58d5 100644 --- a/lib/ui/BUILD.gn +++ b/lib/ui/BUILD.gn @@ -236,7 +236,7 @@ if (enable_unittests) { "window/platform_message_response_dart_port_unittests.cc", "window/platform_message_response_dart_unittests.cc", "window/pointer_data_packet_converter_unittests.cc", - "window/pointer_data_unittests.cc", + "window/pointer_data_packet_unittests.cc", ] deps = [ diff --git a/lib/ui/window/pointer_data_packet_unittests.cc b/lib/ui/window/pointer_data_packet_unittests.cc new file mode 100644 index 0000000000000..2dce79418d291 --- /dev/null +++ b/lib/ui/window/pointer_data_packet_unittests.cc @@ -0,0 +1,69 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/lib/ui/window/pointer_data.h" + +#include + +#include "gtest/gtest.h" +#include "pointer_data_packet.h" + +namespace flutter { +namespace testing { + +void CreateSimpleSimulatedPointerData(PointerData& data, // NOLINT + PointerData::Change change, + int64_t device, + double dx, + double dy, + int64_t buttons) { + data.time_stamp = 0; + data.change = change; + data.kind = PointerData::DeviceKind::kTouch; + data.signal_kind = PointerData::SignalKind::kNone; + data.device = device; + data.pointer_identifier = 0; + data.physical_x = dx; + data.physical_y = dy; + data.physical_delta_x = 0.0; + data.physical_delta_y = 0.0; + data.buttons = buttons; + data.obscured = 0; + data.synthesized = 0; + data.pressure = 0.0; + data.pressure_min = 0.0; + data.pressure_max = 0.0; + data.distance = 0.0; + data.distance_max = 0.0; + data.size = 0.0; + data.radius_major = 0.0; + data.radius_minor = 0.0; + data.radius_min = 0.0; + data.radius_max = 0.0; + data.orientation = 0.0; + data.tilt = 0.0; + data.platformData = 0; + data.scroll_delta_x = 0.0; + data.scroll_delta_y = 0.0; +} + +TEST(PointerDataPacketTest, CanGetPointerData) { + auto packet = std::make_unique(1); + PointerData data; + CreateSimpleSimulatedPointerData(data, PointerData::Change::kAdd, 1, 2.0, 3.0, + 4); + packet->SetPointerData(0, data); + + PointerData data_recovered = packet->GetPointerData(0); + ASSERT_EQ(data_recovered.physical_x, 2.0); + ASSERT_EQ(data_recovered.physical_y, 3.0); +} + +TEST(PointerDataPacketTest, CanGetSize) { + auto packet = std::make_unique(6); + ASSERT_EQ(packet->Size(), (size_t)6); +} + +} // namespace testing +} // namespace flutter diff --git a/lib/ui/window/pointer_data_unittests.cc b/lib/ui/window/pointer_data_unittests.cc deleted file mode 100644 index e69de29bb2d1d..0000000000000 From 0edacf564d611e54234193dbe372794942d3ccc5 Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Tue, 18 Oct 2022 08:00:30 +0800 Subject: [PATCH 4/9] Update licenses_flutter --- ci/licenses_golden/licenses_flutter | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 3b4555d66fe46..1b6da8898c915 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -1762,6 +1762,7 @@ FILE: ../../../flutter/lib/ui/window/pointer_data_packet.h FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter.cc FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter.h FILE: ../../../flutter/lib/ui/window/pointer_data_packet_converter_unittests.cc +FILE: ../../../flutter/lib/ui/window/pointer_data_packet_unittests.cc FILE: ../../../flutter/lib/ui/window/viewport_metrics.cc FILE: ../../../flutter/lib/ui/window/viewport_metrics.h FILE: ../../../flutter/lib/ui/window/window.cc From f747418c7ca5d3a3ce72f12c6221d95b431bca1a Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Wed, 19 Oct 2022 07:20:47 +0800 Subject: [PATCH 5/9] add const --- lib/ui/window/pointer_data_packet.cc | 4 ++-- lib/ui/window/pointer_data_packet.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ui/window/pointer_data_packet.cc b/lib/ui/window/pointer_data_packet.cc index 6dc58ed7af12e..5a31bd02a4931 100644 --- a/lib/ui/window/pointer_data_packet.cc +++ b/lib/ui/window/pointer_data_packet.cc @@ -20,13 +20,13 @@ void PointerDataPacket::SetPointerData(size_t i, const PointerData& data) { memcpy(&data_[i * sizeof(PointerData)], &data, sizeof(PointerData)); } -PointerData PointerDataPacket::GetPointerData(size_t i) { +PointerData PointerDataPacket::GetPointerData(size_t i) const { PointerData result; memcpy(&result, &data_[i * sizeof(PointerData)], sizeof(PointerData)); return result; } -size_t PointerDataPacket::Size() { +size_t PointerDataPacket::Size() const { return data_.size() / sizeof(PointerData); } diff --git a/lib/ui/window/pointer_data_packet.h b/lib/ui/window/pointer_data_packet.h index 4167b47eeff30..533eba0c7feba 100644 --- a/lib/ui/window/pointer_data_packet.h +++ b/lib/ui/window/pointer_data_packet.h @@ -20,8 +20,8 @@ class PointerDataPacket { ~PointerDataPacket(); void SetPointerData(size_t i, const PointerData& data); - PointerData GetPointerData(size_t i); - size_t Size(); + PointerData GetPointerData(size_t i) const; + size_t Size() const; const std::vector& data() const { return data_; } private: From adb93c50dee284bf7e3ef1f4f4597ed7b1f68117 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Wed, 19 Oct 2022 07:34:00 +0800 Subject: [PATCH 6/9] size -> get length --- lib/ui/window/pointer_data_packet.cc | 2 +- lib/ui/window/pointer_data_packet.h | 2 +- lib/ui/window/pointer_data_packet_converter.cc | 2 +- lib/ui/window/pointer_data_packet_converter_unittests.cc | 2 +- lib/ui/window/pointer_data_packet_unittests.cc | 4 ++-- shell/platform/fuchsia/flutter/platform_view_unittest.cc | 2 +- .../fuchsia/flutter/tests/flatland_platform_view_unittest.cc | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/ui/window/pointer_data_packet.cc b/lib/ui/window/pointer_data_packet.cc index 5a31bd02a4931..458eb86267a05 100644 --- a/lib/ui/window/pointer_data_packet.cc +++ b/lib/ui/window/pointer_data_packet.cc @@ -26,7 +26,7 @@ PointerData PointerDataPacket::GetPointerData(size_t i) const { return result; } -size_t PointerDataPacket::Size() const { +size_t PointerDataPacket::GetLength() const { return data_.size() / sizeof(PointerData); } diff --git a/lib/ui/window/pointer_data_packet.h b/lib/ui/window/pointer_data_packet.h index 533eba0c7feba..47b4dda74adc8 100644 --- a/lib/ui/window/pointer_data_packet.h +++ b/lib/ui/window/pointer_data_packet.h @@ -21,7 +21,7 @@ class PointerDataPacket { void SetPointerData(size_t i, const PointerData& data); PointerData GetPointerData(size_t i) const; - size_t Size() const; + size_t GetLength() const; const std::vector& data() const { return data_; } private: diff --git a/lib/ui/window/pointer_data_packet_converter.cc b/lib/ui/window/pointer_data_packet_converter.cc index fb6040b1b897c..6750a7da22761 100644 --- a/lib/ui/window/pointer_data_packet_converter.cc +++ b/lib/ui/window/pointer_data_packet_converter.cc @@ -20,7 +20,7 @@ std::unique_ptr PointerDataPacketConverter::Convert( std::vector converted_pointers; // Converts each pointer data in the buffer and stores it in the // converted_pointers. - for (size_t i = 0; i < packet->Size(); i++) { + for (size_t i = 0; i < packet->GetLength(); i++) { PointerData pointer_data = packet->GetPointerData(i); ConvertPointerData(pointer_data, converted_pointers); } diff --git a/lib/ui/window/pointer_data_packet_converter_unittests.cc b/lib/ui/window/pointer_data_packet_converter_unittests.cc index 0034546f84569..97ed67aa9e242 100644 --- a/lib/ui/window/pointer_data_packet_converter_unittests.cc +++ b/lib/ui/window/pointer_data_packet_converter_unittests.cc @@ -133,7 +133,7 @@ void CreateSimulatedTrackpadGestureData(PointerData& data, // NOLINT void UnpackPointerPacket(std::vector& output, // NOLINT std::unique_ptr packet) { - for (size_t i = 0; i < packet->Size(); i++) { + for (size_t i = 0; i < packet->GetLength(); i++) { PointerData pointer_data = packet->GetPointerData(i); output.push_back(pointer_data); } diff --git a/lib/ui/window/pointer_data_packet_unittests.cc b/lib/ui/window/pointer_data_packet_unittests.cc index 2dce79418d291..3c6d0adaa4354 100644 --- a/lib/ui/window/pointer_data_packet_unittests.cc +++ b/lib/ui/window/pointer_data_packet_unittests.cc @@ -60,9 +60,9 @@ TEST(PointerDataPacketTest, CanGetPointerData) { ASSERT_EQ(data_recovered.physical_y, 3.0); } -TEST(PointerDataPacketTest, CanGetSize) { +TEST(PointerDataPacketTest, CanGetLength) { auto packet = std::make_unique(6); - ASSERT_EQ(packet->Size(), (size_t)6); + ASSERT_EQ(packet->GetLength(), (size_t)6); } } // namespace testing diff --git a/shell/platform/fuchsia/flutter/platform_view_unittest.cc b/shell/platform/fuchsia/flutter/platform_view_unittest.cc index da8196209c28a..ca77fcc9433e0 100644 --- a/shell/platform/fuchsia/flutter/platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/platform_view_unittest.cc @@ -379,7 +379,7 @@ std::string ToString(const fml::Mapping& mapping) { // Stolen from pointer_data_packet_converter_unittests.cc. void UnpackPointerPacket(std::vector& output, // NOLINT std::unique_ptr packet) { - for (size_t i = 0; i < packet->Size(); i++) { + for (size_t i = 0; i < packet->GetLength(); i++) { flutter::PointerData pointer_data = packet->GetPointerData(i); output.push_back(pointer_data); } diff --git a/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc b/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc index 81b5cef5ffa2a..91dcb577fe6a8 100644 --- a/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc @@ -484,7 +484,7 @@ std::string ToString(const fml::Mapping& mapping) { // Stolen from pointer_data_packet_converter_unittests.cc. void UnpackPointerPacket(std::vector& output, // NOLINT std::unique_ptr packet) { - for (size_t i = 0; i < packet->Size(); i++) { + for (size_t i = 0; i < packet->GetLength(); i++) { flutter::PointerData pointer_data = packet->GetPointerData(i); output.push_back(pointer_data); } From 0c149ed5de26fd316feabcab722e66041e0bc3cc Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Wed, 19 Oct 2022 07:35:07 +0800 Subject: [PATCH 7/9] add boundary checks --- lib/ui/window/pointer_data_packet.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/ui/window/pointer_data_packet.cc b/lib/ui/window/pointer_data_packet.cc index 458eb86267a05..358f052ec2d47 100644 --- a/lib/ui/window/pointer_data_packet.cc +++ b/lib/ui/window/pointer_data_packet.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "flutter/lib/ui/window/pointer_data_packet.h" +#include "flutter/fml/logging.h" #include @@ -17,10 +18,12 @@ PointerDataPacket::PointerDataPacket(uint8_t* data, size_t num_bytes) PointerDataPacket::~PointerDataPacket() = default; void PointerDataPacket::SetPointerData(size_t i, const PointerData& data) { + FML_DCHECK(i < GetLength()); memcpy(&data_[i * sizeof(PointerData)], &data, sizeof(PointerData)); } PointerData PointerDataPacket::GetPointerData(size_t i) const { + FML_DCHECK(i < GetLength()); PointerData result; memcpy(&result, &data_[i * sizeof(PointerData)], sizeof(PointerData)); return result; From 4f0ebaebab6e44a194974c6e508fca08bf0fe0aa Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Wed, 19 Oct 2022 07:58:43 +0800 Subject: [PATCH 8/9] add tests --- .../window/pointer_data_packet_unittests.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/ui/window/pointer_data_packet_unittests.cc b/lib/ui/window/pointer_data_packet_unittests.cc index 3c6d0adaa4354..fe2c4ffcfd5d6 100644 --- a/lib/ui/window/pointer_data_packet_unittests.cc +++ b/lib/ui/window/pointer_data_packet_unittests.cc @@ -65,5 +65,24 @@ TEST(PointerDataPacketTest, CanGetLength) { ASSERT_EQ(packet->GetLength(), (size_t)6); } +TEST(PointerDataPacketDeathTest, DeathWhenGetPointerDataIndexOutOfBound) { + auto packet = std::make_unique(1); + PointerData data; + CreateSimpleSimulatedPointerData(data, PointerData::Change::kAdd, 1, 2.0, 3.0, + 4); + packet->SetPointerData(0, data); + + ASSERT_DEATH({ packet->GetPointerData(1); }, ""); +} + +TEST(PointerDataPacketDeathTest, DeathWhenSetPointerDataIndexOutOfBound) { + auto packet = std::make_unique(1); + PointerData data; + CreateSimpleSimulatedPointerData(data, PointerData::Change::kAdd, 1, 2.0, 3.0, + 4); + + ASSERT_DEATH({ packet->SetPointerData(1, data); }, ""); +} + } // namespace testing } // namespace flutter From 0f6feb54864edf1f3edc84e4d2749969d10dc6cd Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Wed, 19 Oct 2022 08:15:28 +0800 Subject: [PATCH 9/9] remove death test since it says "Death tests use fork(), which is unsafe particularly in a threaded context." --- .../window/pointer_data_packet_unittests.cc | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/lib/ui/window/pointer_data_packet_unittests.cc b/lib/ui/window/pointer_data_packet_unittests.cc index fe2c4ffcfd5d6..3c6d0adaa4354 100644 --- a/lib/ui/window/pointer_data_packet_unittests.cc +++ b/lib/ui/window/pointer_data_packet_unittests.cc @@ -65,24 +65,5 @@ TEST(PointerDataPacketTest, CanGetLength) { ASSERT_EQ(packet->GetLength(), (size_t)6); } -TEST(PointerDataPacketDeathTest, DeathWhenGetPointerDataIndexOutOfBound) { - auto packet = std::make_unique(1); - PointerData data; - CreateSimpleSimulatedPointerData(data, PointerData::Change::kAdd, 1, 2.0, 3.0, - 4); - packet->SetPointerData(0, data); - - ASSERT_DEATH({ packet->GetPointerData(1); }, ""); -} - -TEST(PointerDataPacketDeathTest, DeathWhenSetPointerDataIndexOutOfBound) { - auto packet = std::make_unique(1); - PointerData data; - CreateSimpleSimulatedPointerData(data, PointerData::Change::kAdd, 1, 2.0, 3.0, - 4); - - ASSERT_DEATH({ packet->SetPointerData(1, data); }, ""); -} - } // namespace testing } // namespace flutter