| // Copyright 2022 The Fuchsia 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 <gtest/gtest.h> |
| |
| #include "src/developer/debug/ipc/filter_utils.h" |
| #include "src/developer/debug/ipc/records.h" |
| |
| namespace debug_ipc { |
| |
| TEST(FilterUtils, FilterMatches) { |
| Filter filter{.type = debug_ipc::Filter::Type::kProcessName, .pattern = "foo"}; |
| EXPECT_TRUE(FilterMatches(filter, "foo", {})); |
| EXPECT_FALSE(FilterMatches(filter, "foobar", {})); |
| |
| filter = {.type = debug_ipc::Filter::Type::kProcessNameSubstr, .pattern = "foo"}; |
| EXPECT_TRUE(FilterMatches(filter, "foo", {})); |
| EXPECT_TRUE(FilterMatches(filter, "foobar", {})); |
| |
| filter = {.type = debug_ipc::Filter::Type::kComponentMoniker, .pattern = "/core/abc"}; |
| EXPECT_TRUE(FilterMatches(filter, "", {ComponentInfo{.moniker = "/core/abc"}})); |
| EXPECT_FALSE(FilterMatches(filter, "", {ComponentInfo{.moniker = "/core/abc/def"}})); |
| |
| filter = {.type = debug_ipc::Filter::Type::kComponentMonikerSuffix, .pattern = "abc/def"}; |
| EXPECT_TRUE(FilterMatches(filter, "", {ComponentInfo{.moniker = "/core/abc/def"}})); |
| EXPECT_FALSE(FilterMatches(filter, "", {ComponentInfo{.moniker = "/core/abc"}})); |
| |
| filter = {.type = debug_ipc::Filter::Type::kComponentName, .pattern = "foo.cm"}; |
| EXPECT_TRUE(FilterMatches(filter, "", {ComponentInfo{.url = "pkg://host#meta/foo.cm"}})); |
| |
| filter = {.type = debug_ipc::Filter::Type::kComponentUrl, .pattern = "pkg://host#meta/foo.cm"}; |
| EXPECT_TRUE( |
| FilterMatches(filter, "", {ComponentInfo{.url = "pkg://host?hash=abcd#meta/foo.cm"}})); |
| } |
| |
| } // namespace debug_ipc |