#include <string.h>
#include <unistd.h>
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/process/set_process_title_linux.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"
#if BUILDFLAG(IS_CHROMEOS)
#include "base/profiler/module_cache.h"
#endif
namespace {
const std::string kNullChr(1, '\0');
std::string ReadCmdline() { … }
TEST(SetProcTitleLinuxTest, Simple) { … }
TEST(SetProcTitleLinuxTest, Empty) { … }
TEST(SetProcTitleLinuxTest, Long) { … }
#if BUILDFLAG(IS_CHROMEOS)
TEST(SetProcTitleLinuxTest, GetModuleForAddressWorksWithSetProcTitle) {
setproctitle("%s", "/opt/google/chrome/chrome --type=renderer --foo=bar");
base::ModuleCache module_cache;
const base::ModuleCache::Module* module = module_cache.GetModuleForAddress(
reinterpret_cast<uintptr_t>(&ReadCmdline));
ASSERT_NE(module, nullptr);
EXPECT_EQ(module->GetDebugBasename().value(), "chrome");
}
#endif
}