Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /base /linux_util_unittest.cc
blob: f9119ff17d917e4d383153fb7aecf9f69f018ef6 [file] [log] [blame]
Avi Drissmane4622aa2022-09-08 20:36:06[diff] [blame]1// Copyright 2019 The Chromium Authors
Tomas Popela5b9b01f2019-09-10 19:42:31[diff] [blame]2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include"base/linux_util.h"
6
7#include"testing/gtest/include/gtest/gtest.h"
8
9namespace{
10
11constchar kPrettyName[]="PRETTY_NAME";
12
13TEST(LinuxUtilTest,ParseEtcOsReleaseFile){
14constchar kOsRelease[]= R"X(
15NAME=Fedora
16VERSION="30(WorkstationEdition\)\"
17ID=fedora
18VERSION_ID=30
19VERSION_CODENAME=""
20PLATFORM_ID="platform:f30
21PRETTY_NAME="Fedora 30 (Workstation Edition)"
22ANSI_COLOR="0;34"
23LOGO=fedora-logo-icon
24CPE_NAME="cpe:/o:fedoraproject:fedora:30"
25HOME_URL="https://fedoraproject.org/"
26DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f30/system-administrators-guide/"
27SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
28BUG_REPORT_URL="https://bugzilla.redhat.com/"
29REDHAT_BUGZILLA_PRODUCT="Fedora"
30REDHAT_BUGZILLA_PRODUCT_VERSION=30
31REDHAT_SUPPORT_PRODUCT="Fedora"
32REDHAT_SUPPORT_PRODUCT_VERSION=30
33PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
34VARIANT="Workstation Edition"
35VARIANT_ID=workstation)X";
36
37constchar kOsReleaseMissingPrettyName[]= R"(
38NAME=Fedora
39VERSION='30 (Workstation Edition)'
40VARIANT_ID=workstation)";
41
42 std::string value=
43 base::GetKeyValueFromOSReleaseFileForTesting(kOsRelease, kPrettyName);
44 EXPECT_EQ(value,"Fedora 30 (Workstation Edition)");
45// Missing key in the file
46 value= base::GetKeyValueFromOSReleaseFileForTesting(
47 kOsReleaseMissingPrettyName, kPrettyName);
48 EXPECT_EQ(value,"");
49// Value quoted with single ticks
50 value= base::GetKeyValueFromOSReleaseFileForTesting(
51 kOsReleaseMissingPrettyName,"VERSION");
52 EXPECT_EQ(value,"30 (Workstation Edition)");
53// Empty file
54 value= base::GetKeyValueFromOSReleaseFileForTesting("", kPrettyName);
55 EXPECT_EQ(value,"");
56// Misspelled key
57 value=
58 base::GetKeyValueFromOSReleaseFileForTesting(kOsRelease,"PRETY_NAME");
59 EXPECT_EQ(value,"");
60// Broken key=value format
61 value= base::GetKeyValueFromOSReleaseFileForTesting("A/B", kPrettyName);
62 EXPECT_EQ(value,"");
63// Empty values
64 value=
65 base::GetKeyValueFromOSReleaseFileForTesting("PRETTY_NAME=", kPrettyName);
66 EXPECT_EQ(value,"");
67 value= base::GetKeyValueFromOSReleaseFileForTesting("PRETTY_NAME=\"\"",
68 kPrettyName);
69 EXPECT_EQ(value,"");
70// Only one key=value in the whole file
71 value= base::GetKeyValueFromOSReleaseFileForTesting("PRETTY_NAME=\"Linux\"",
72 kPrettyName);
73 EXPECT_EQ(value,"Linux");
74}
75
76}// namespace

[8]ページ先頭

©2009-2025 Movatter.jp