blob: 075cb30fd8b4fcfd93f50945a0946988ac41e545 [file] [log] [blame]
// 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