
Sources for this target are moved back into //content/common. No behavioral changes. Bug: 977637 Change-Id: I1aed5fb1010b11224cf509e0f3cf3de549bb6193 Tbr: avi@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2411468 Commit-Queue: Ken Rockot <rockot@google.com> Reviewed-by: Matt Falkenhagen <falken@chromium.org> Cr-Commit-Position: refs/heads/master@{#807802}
54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
// Copyright 2020 The Chromium 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 <string.h>
|
|
#include <unistd.h>
|
|
|
|
#include "base/files/file_path.h"
|
|
#include "base/files/file_util.h"
|
|
#include "base/strings/string_util.h"
|
|
#include "content/common/set_process_title_linux.h"
|
|
#include "testing/gtest/include/gtest/gtest.h"
|
|
|
|
namespace {
|
|
|
|
const std::string kNullChr(1, '\0');
|
|
|
|
std::string ReadCmdline() {
|
|
std::string cmdline;
|
|
CHECK(base::ReadFileToString(base::FilePath("/proc/self/cmdline"), &cmdline));
|
|
// The process title appears in different formats depending on Linux kernel
|
|
// version:
|
|
// "title" (on Linux --4.17)
|
|
// "title\0\0\0...\0" (on Linux 4.18--5.2)
|
|
// "title\0" (on Linux 5.3--)
|
|
//
|
|
// For unit tests, just trim trailing null characters to support all cases.
|
|
return base::TrimString(cmdline, kNullChr, base::TRIM_TRAILING).as_string();
|
|
}
|
|
|
|
TEST(SetProcTitleLinuxTest, Simple) {
|
|
setproctitle("a %s cat", "cute");
|
|
EXPECT_TRUE(base::EndsWith(ReadCmdline(), " a cute cat",
|
|
base::CompareCase::SENSITIVE))
|
|
<< ReadCmdline();
|
|
|
|
setproctitle("-a %s cat", "cute");
|
|
EXPECT_EQ(ReadCmdline(), "a cute cat");
|
|
}
|
|
|
|
TEST(SetProcTitleLinuxTest, Empty) {
|
|
setproctitle("-");
|
|
EXPECT_EQ(ReadCmdline(), "");
|
|
}
|
|
|
|
TEST(SetProcTitleLinuxTest, Long) {
|
|
setproctitle("-long cat is l%0100000dng", 0);
|
|
EXPECT_TRUE(base::StartsWith(ReadCmdline(), "long cat is l00000000",
|
|
base::CompareCase::SENSITIVE))
|
|
<< ReadCmdline();
|
|
}
|
|
|
|
} // namespace
|