blob: f0816f184a88b8aa99dbf96418d7578d27b2a2f1 [file] [log] [blame] [edit]
// Copyright 2024 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "debugd/src/path_utils.h"
#include <base/strings/string_util.h>
namespace {
// The path prefix that'll be used for testing. The caller will be responsible
// for its lifecycle management.
// Use |path_utils::testing::SetPrefixForTesting(base::FilePath())| to reset.
const base::FilePath* g_test_prefix;
} // namespace
namespace debugd {
namespace path_utils {
base::FilePath GetFilePath(std::string_view file_path) {
if (g_test_prefix) {
if (base::StartsWith(file_path, "/"))
file_path.remove_prefix(1);
return g_test_prefix->Append(file_path);
}
return base::FilePath(file_path);
}
namespace testing {
void SetPrefixForTesting(const base::FilePath& prefix) {
if (g_test_prefix) {
delete g_test_prefix;
g_test_prefix = nullptr;
}
if (!prefix.empty())
g_test_prefix = new base::FilePath(prefix);
}
} // namespace testing
} // namespace path_utils
} // namespace debugd