mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Fix StandardMessageCodec test leaks (flutter/engine#27959)
This commit is contained in:
parent
29a2647b2a
commit
941f0a93cd
@ -295,8 +295,8 @@ const StandardMessageCodec& StandardMessageCodec::GetInstance(
|
||||
if (!serializer) {
|
||||
serializer = &StandardCodecSerializer::GetInstance();
|
||||
}
|
||||
auto* sInstances = new std::map<const StandardCodecSerializer*,
|
||||
std::unique_ptr<StandardMessageCodec>>;
|
||||
static auto* sInstances = new std::map<const StandardCodecSerializer*,
|
||||
std::unique_ptr<StandardMessageCodec>>;
|
||||
auto it = sInstances->find(serializer);
|
||||
if (it == sInstances->end()) {
|
||||
// Uses new due to private constructor (to prevent API clients from
|
||||
@ -342,8 +342,8 @@ const StandardMethodCodec& StandardMethodCodec::GetInstance(
|
||||
if (!serializer) {
|
||||
serializer = &StandardCodecSerializer::GetInstance();
|
||||
}
|
||||
auto* sInstances = new std::map<const StandardCodecSerializer*,
|
||||
std::unique_ptr<StandardMethodCodec>>;
|
||||
static auto* sInstances = new std::map<const StandardCodecSerializer*,
|
||||
std::unique_ptr<StandardMethodCodec>>;
|
||||
auto it = sInstances->find(serializer);
|
||||
if (it == sInstances->end()) {
|
||||
// Uses new due to private constructor (to prevent API clients from
|
||||
|
||||
@ -76,6 +76,14 @@ static void CheckEncodeDecodeWithEncodePrefix(
|
||||
EXPECT_EQ(value, *decoded);
|
||||
}
|
||||
|
||||
TEST(StandardMessageCodec, GetInstanceCachesInstance) {
|
||||
const StandardMessageCodec& codec_a =
|
||||
StandardMessageCodec::GetInstance(nullptr);
|
||||
const StandardMessageCodec& codec_b =
|
||||
StandardMessageCodec::GetInstance(nullptr);
|
||||
EXPECT_EQ(&codec_a, &codec_b);
|
||||
}
|
||||
|
||||
TEST(StandardMessageCodec, CanEncodeAndDecodeNull) {
|
||||
std::vector<uint8_t> bytes = {0x00};
|
||||
CheckEncodeDecode(EncodableValue(), bytes);
|
||||
|
||||
@ -32,6 +32,14 @@ bool MethodCallsAreEqual(const MethodCall<>& a, const MethodCall<>& b) {
|
||||
|
||||
} // namespace
|
||||
|
||||
TEST(StandardMethodCodec, GetInstanceCachesInstance) {
|
||||
const StandardMethodCodec& codec_a =
|
||||
StandardMethodCodec::GetInstance(nullptr);
|
||||
const StandardMethodCodec& codec_b =
|
||||
StandardMethodCodec::GetInstance(nullptr);
|
||||
EXPECT_EQ(&codec_a, &codec_b);
|
||||
}
|
||||
|
||||
TEST(StandardMethodCodec, HandlesMethodCallsWithNullArguments) {
|
||||
const StandardMethodCodec& codec = StandardMethodCodec::GetInstance();
|
||||
MethodCall<> call("hello", nullptr);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user