0
Files
src/content/common/set_process_title_linux_unittest.cc
Ken Rockot 30f6a4ab34 Remove //services/service_manager/embedder target
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}
2020-09-17 08:34:01 +00:00

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