blob: d9239c2893a919a88eaaa03faa80dece3ee186cb [file] [log] [blame]
// Copyright 2023 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 <lib/diagnostics/reader/cpp/archive_reader.h>
#include <zxtest/zxtest.h>
namespace {
TEST(ArchiveReaderTest, SanitizeMoniker) {
auto result = diagnostics::reader::SanitizeMonikerForSelectors("core/coll:bar/baz/other:foo");
EXPECT_EQ(result, "core/coll\\:bar/baz/other\\:foo");
}
TEST(ArchiveReaderTest, MakeSelector) {
{
std::string expected = "core/simple:[name=\"root\"]root";
std::string actual =
diagnostics::reader::MakeSelector("core/simple", std::nullopt, {}, std::nullopt);
EXPECT_EQ(actual, expected);
}
{
std::string expected = "core/not\\:simple:[...]root/path:prop";
std::string actual =
diagnostics::reader::MakeSelector("core/not:simple", {{"..."}}, {"root", "path"}, "prop");
EXPECT_EQ(actual, expected);
}
{
std::string expected = "core/simple:[name=\"something messy\"]root/path:prop";
std::string actual = diagnostics::reader::MakeSelector("core/simple", {{"something messy"}},
{"root", "path"}, "prop");
EXPECT_EQ(actual, expected);
}
{
std::string expected = "core/simple:[name=\"something\"]root/path";
std::string actual = diagnostics::reader::MakeSelector("core/simple", {{"something"}},
{"root", "path"}, std::nullopt);
EXPECT_EQ(actual, expected);
}
{
std::string expected = "core/simple:[name=\"one\", name=\"two\", name=\"three\"]root/path:prop";
std::string actual = diagnostics::reader::MakeSelector("core/simple", {{"one", "two", "three"}},
{"root", "path"}, "prop");
EXPECT_EQ(actual, expected);
}
{
std::string expected = "core/not\\:simple:[...]root/\\*:prop";
std::string actual =
diagnostics::reader::MakeSelector("core/not:simple", {{"..."}}, {"root", "\\*"}, "prop");
EXPECT_EQ(actual, expected);
}
{
std::string expected = "core/not\\:simple:[...]root/colons\\:are\\*messy:prop";
std::string actual = diagnostics::reader::MakeSelector(
"core/not:simple", {{"..."}}, {"root", "colons\\:are\\*messy"}, "prop");
EXPECT_EQ(actual, expected);
}
}
} // namespace