dsh-remote 0.8.47 → 0.8.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +89 -16
- package/lib/ignore.js +46 -0
- package/lib/index.js +68 -23
- package/lib/remote-shell-child.cjs +305 -0
- package/lib/remote-shell.js +518 -0
- package/lib/search.js +8 -3
- package/package.json +1 -1
- package/node_modules/buildcheck/.eslintrc.js +0 -5
- package/node_modules/buildcheck/.github/workflows/ci.yml +0 -88
- package/node_modules/buildcheck/.github/workflows/lint.yml +0 -27
- package/node_modules/buildcheck/.npmignore +0 -3
- package/node_modules/buildcheck/LICENSE +0 -19
- package/node_modules/buildcheck/README.md +0 -106
- package/node_modules/buildcheck/deps/Find-VisualStudio.cs +0 -250
- package/node_modules/buildcheck/lib/findvs.js +0 -361
- package/node_modules/buildcheck/lib/index.js +0 -738
- package/node_modules/buildcheck/package.json +0 -36
- package/node_modules/buildcheck/test/test.js +0 -8
- package/node_modules/cpu-features/.eslintrc.js +0 -5
- package/node_modules/cpu-features/.github/workflows/ci.yml +0 -74
- package/node_modules/cpu-features/.github/workflows/lint.yml +0 -27
- package/node_modules/cpu-features/LICENSE +0 -19
- package/node_modules/cpu-features/README.md +0 -59
- package/node_modules/cpu-features/binding.gyp +0 -16
- package/node_modules/cpu-features/buildcheck.js +0 -32
- package/node_modules/cpu-features/deps/cpu_features/.clang-format +0 -4
- package/node_modules/cpu-features/deps/cpu_features/.dockerignore +0 -31
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/Dockerfile +0 -5
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/aarch64_linux_cmake.yml +0 -30
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_freebsd_cmake.yml +0 -22
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_linux_bazel.yml +0 -26
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_linux_cmake.yml +0 -31
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_macos_cmake.yml +0 -43
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/amd64_windows_cmake.yml +0 -25
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/arm_linux_cmake.yml +0 -31
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/clang_format.yml +0 -24
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/mips_linux_cmake.yml +0 -30
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/power_linux_cmake.yml +0 -29
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/riscv_linux_cmake.yml +0 -28
- package/node_modules/cpu-features/deps/cpu_features/.github/workflows/s390x_linux_cmake.yml +0 -27
- package/node_modules/cpu-features/deps/cpu_features/.grenrc.yml +0 -21
- package/node_modules/cpu-features/deps/cpu_features/BUILD.bazel +0 -329
- package/node_modules/cpu-features/deps/cpu_features/CMakeLists.txt +0 -261
- package/node_modules/cpu-features/deps/cpu_features/CONTRIBUTING.md +0 -23
- package/node_modules/cpu-features/deps/cpu_features/LICENSE +0 -230
- package/node_modules/cpu-features/deps/cpu_features/README.md +0 -272
- package/node_modules/cpu-features/deps/cpu_features/WORKSPACE +0 -19
- package/node_modules/cpu-features/deps/cpu_features/bazel/ci/README.md +0 -5
- package/node_modules/cpu-features/deps/cpu_features/bazel/platforms.bzl +0 -11
- package/node_modules/cpu-features/deps/cpu_features/cmake/CpuFeaturesConfig.cmake.in +0 -3
- package/node_modules/cpu-features/deps/cpu_features/cmake/CpuFeaturesNdkCompatConfig.cmake.in +0 -3
- package/node_modules/cpu-features/deps/cpu_features/cmake/README.md +0 -30
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/Makefile +0 -252
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/README.md +0 -40
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/docker.dot +0 -64
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/docker.svg +0 -312
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/doc/generate_image.sh +0 -7
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/docker/amd64/Dockerfile +0 -48
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/docker/toolchain/Dockerfile +0 -34
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/sample/CMakeLists.txt +0 -22
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/sample/main.cpp +0 -11
- package/node_modules/cpu-features/deps/cpu_features/cmake/ci/vagrant/freebsd/Vagrantfile +0 -107
- package/node_modules/cpu-features/deps/cpu_features/cmake/googletest.CMakeLists.txt.in +0 -15
- package/node_modules/cpu-features/deps/cpu_features/cpu_features.gyp +0 -105
- package/node_modules/cpu-features/deps/cpu_features/include/cpu_features_cache_info.h +0 -54
- package/node_modules/cpu-features/deps/cpu_features/include/cpu_features_macros.h +0 -384
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_aarch64.h +0 -259
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_arm.h +0 -121
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_mips.h +0 -74
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_ppc.h +0 -149
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_riscv.h +0 -72
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_s390x.h +0 -108
- package/node_modules/cpu-features/deps/cpu_features/include/cpuinfo_x86.h +0 -288
- package/node_modules/cpu-features/deps/cpu_features/include/internal/bit_utils.h +0 -40
- package/node_modules/cpu-features/deps/cpu_features/include/internal/cpuid_x86.h +0 -37
- package/node_modules/cpu-features/deps/cpu_features/include/internal/filesystem.h +0 -39
- package/node_modules/cpu-features/deps/cpu_features/include/internal/hwcaps.h +0 -240
- package/node_modules/cpu-features/deps/cpu_features/include/internal/stack_line_reader.h +0 -49
- package/node_modules/cpu-features/deps/cpu_features/include/internal/string_view.h +0 -110
- package/node_modules/cpu-features/deps/cpu_features/include/internal/windows_utils.h +0 -70
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/CMakeLists.txt +0 -60
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/README.md +0 -4
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/cpu-features.c +0 -205
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/cpu-features.h +0 -320
- package/node_modules/cpu-features/deps/cpu_features/ndk_compat/ndk-compat-test.c +0 -12
- package/node_modules/cpu-features/deps/cpu_features/patches/0001-Add-Apple-Silicon-Support.patch +0 -456
- package/node_modules/cpu-features/deps/cpu_features/scripts/generate_badges.d +0 -165
- package/node_modules/cpu-features/deps/cpu_features/scripts/make_release.sh +0 -75
- package/node_modules/cpu-features/deps/cpu_features/scripts/run_integration.sh +0 -490
- package/node_modules/cpu-features/deps/cpu_features/scripts/test_integration.sh +0 -79
- package/node_modules/cpu-features/deps/cpu_features/src/copy.inl +0 -19
- package/node_modules/cpu-features/deps/cpu_features/src/define_introspection.inl +0 -86
- package/node_modules/cpu-features/deps/cpu_features/src/define_introspection_and_hwcaps.inl +0 -26
- package/node_modules/cpu-features/deps/cpu_features/src/equals.inl +0 -22
- package/node_modules/cpu-features/deps/cpu_features/src/filesystem.c +0 -62
- package/node_modules/cpu-features/deps/cpu_features/src/hwcaps.c +0 -169
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64__base_implementation.inl +0 -88
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_linux_or_android.c +0 -79
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_macos_or_iphone.c +0 -82
- package/node_modules/cpu-features/deps/cpu_features/src/impl_aarch64_windows.c +0 -138
- package/node_modules/cpu-features/deps/cpu_features/src/impl_arm_linux_or_android.c +0 -212
- package/node_modules/cpu-features/deps/cpu_features/src/impl_mips_linux_or_android.c +0 -93
- package/node_modules/cpu-features/deps/cpu_features/src/impl_ppc_linux.c +0 -163
- package/node_modules/cpu-features/deps/cpu_features/src/impl_riscv_linux.c +0 -111
- package/node_modules/cpu-features/deps/cpu_features/src/impl_s390x_linux.c +0 -120
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86__base_implementation.inl +0 -2055
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_freebsd.c +0 -68
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_linux_or_android.c +0 -58
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_macos.c +0 -57
- package/node_modules/cpu-features/deps/cpu_features/src/impl_x86_windows.c +0 -58
- package/node_modules/cpu-features/deps/cpu_features/src/stack_line_reader.c +0 -132
- package/node_modules/cpu-features/deps/cpu_features/src/string_view.c +0 -192
- package/node_modules/cpu-features/deps/cpu_features/src/utils/list_cpu_features.c +0 -461
- package/node_modules/cpu-features/deps/cpu_features/test/CMakeLists.txt +0 -114
- package/node_modules/cpu-features/deps/cpu_features/test/bit_utils_test.cc +0 -53
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_aarch64_test.cc +0 -396
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_arm_test.cc +0 -384
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_mips_test.cc +0 -176
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_ppc_test.cc +0 -131
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_riscv_test.cc +0 -180
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_s390x_test.cc +0 -82
- package/node_modules/cpu-features/deps/cpu_features/test/cpuinfo_x86_test.cc +0 -1729
- package/node_modules/cpu-features/deps/cpu_features/test/filesystem_for_testing.cc +0 -103
- package/node_modules/cpu-features/deps/cpu_features/test/filesystem_for_testing.h +0 -61
- package/node_modules/cpu-features/deps/cpu_features/test/hwcaps_for_testing.cc +0 -52
- package/node_modules/cpu-features/deps/cpu_features/test/hwcaps_for_testing.h +0 -31
- package/node_modules/cpu-features/deps/cpu_features/test/stack_line_reader_test.cc +0 -132
- package/node_modules/cpu-features/deps/cpu_features/test/string_view_test.cc +0 -202
- package/node_modules/cpu-features/lib/index.js +0 -5
- package/node_modules/cpu-features/package.json +0 -40
- package/node_modules/cpu-features/src/binding.cc +0 -151
- package/node_modules/cpu-features/test/test.js +0 -12
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 Google LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#include "cpuinfo_arm.h"
|
|
16
|
-
|
|
17
|
-
#include "filesystem_for_testing.h"
|
|
18
|
-
#include "gtest/gtest.h"
|
|
19
|
-
#include "hwcaps_for_testing.h"
|
|
20
|
-
|
|
21
|
-
namespace cpu_features {
|
|
22
|
-
namespace {
|
|
23
|
-
|
|
24
|
-
TEST(CpuinfoArmTest, ArmFeaturesEnum) {
|
|
25
|
-
const char *last_name = GetArmFeaturesEnumName(ARM_LAST_);
|
|
26
|
-
EXPECT_STREQ(last_name, "unknown_feature");
|
|
27
|
-
for (int i = static_cast<int>(ARM_SWP); i != static_cast<int>(ARM_LAST_); ++i) {
|
|
28
|
-
const auto feature = static_cast<ArmFeaturesEnum>(i);
|
|
29
|
-
const char *name = GetArmFeaturesEnumName(feature);
|
|
30
|
-
ASSERT_FALSE(name == nullptr);
|
|
31
|
-
EXPECT_STRNE(name, "");
|
|
32
|
-
EXPECT_STRNE(name, last_name);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
TEST(CpuinfoArmTest, FromHardwareCap) {
|
|
37
|
-
ResetHwcaps();
|
|
38
|
-
SetHardwareCapabilities(ARM_HWCAP_NEON, ARM_HWCAP2_AES | ARM_HWCAP2_CRC32);
|
|
39
|
-
GetEmptyFilesystem(); // disabling /proc/cpuinfo
|
|
40
|
-
const auto info = GetArmInfo();
|
|
41
|
-
EXPECT_TRUE(info.features.vfp); // triggered by vfpv3
|
|
42
|
-
EXPECT_TRUE(info.features.vfpv3); // triggered by neon
|
|
43
|
-
EXPECT_TRUE(info.features.neon);
|
|
44
|
-
EXPECT_TRUE(info.features.aes);
|
|
45
|
-
EXPECT_TRUE(info.features.crc32);
|
|
46
|
-
|
|
47
|
-
EXPECT_FALSE(info.features.vfpv4);
|
|
48
|
-
EXPECT_FALSE(info.features.iwmmxt);
|
|
49
|
-
EXPECT_FALSE(info.features.crunch);
|
|
50
|
-
EXPECT_FALSE(info.features.thumbee);
|
|
51
|
-
EXPECT_FALSE(info.features.vfpv3d16);
|
|
52
|
-
EXPECT_FALSE(info.features.idiva);
|
|
53
|
-
EXPECT_FALSE(info.features.idivt);
|
|
54
|
-
EXPECT_FALSE(info.features.pmull);
|
|
55
|
-
EXPECT_FALSE(info.features.sha1);
|
|
56
|
-
EXPECT_FALSE(info.features.sha2);
|
|
57
|
-
|
|
58
|
-
// check some random features with EnumValue():
|
|
59
|
-
EXPECT_TRUE(GetArmFeaturesEnumValue(&info.features, ARM_VFP));
|
|
60
|
-
EXPECT_FALSE(GetArmFeaturesEnumValue(&info.features, ARM_VFPV4));
|
|
61
|
-
// out of bound EnumValue() check
|
|
62
|
-
EXPECT_FALSE(GetArmFeaturesEnumValue(&info.features, (ArmFeaturesEnum)~0x0));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
TEST(CpuinfoArmTest, ODroidFromCpuInfo) {
|
|
66
|
-
ResetHwcaps();
|
|
67
|
-
auto& fs = GetEmptyFilesystem();
|
|
68
|
-
fs.CreateFile("/proc/cpuinfo", R"(processor : 0
|
|
69
|
-
model name : ARMv7 Processor rev 3 (v71)
|
|
70
|
-
BogoMIPS : 120.00
|
|
71
|
-
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
|
|
72
|
-
CPU implementer : 0x41
|
|
73
|
-
CPU architecture: 7
|
|
74
|
-
CPU variant : 0x2
|
|
75
|
-
CPU part : 0xc0f
|
|
76
|
-
CPU revision : 3)");
|
|
77
|
-
const auto info = GetArmInfo();
|
|
78
|
-
EXPECT_EQ(info.implementer, 0x41);
|
|
79
|
-
EXPECT_EQ(info.variant, 0x2);
|
|
80
|
-
EXPECT_EQ(info.part, 0xc0f);
|
|
81
|
-
EXPECT_EQ(info.revision, 3);
|
|
82
|
-
EXPECT_EQ(info.architecture, 7);
|
|
83
|
-
|
|
84
|
-
EXPECT_FALSE(info.features.swp);
|
|
85
|
-
EXPECT_TRUE(info.features.half);
|
|
86
|
-
EXPECT_TRUE(info.features.thumb);
|
|
87
|
-
EXPECT_FALSE(info.features._26bit);
|
|
88
|
-
EXPECT_TRUE(info.features.fastmult);
|
|
89
|
-
EXPECT_FALSE(info.features.fpa);
|
|
90
|
-
EXPECT_TRUE(info.features.vfp);
|
|
91
|
-
EXPECT_TRUE(info.features.edsp);
|
|
92
|
-
EXPECT_FALSE(info.features.java);
|
|
93
|
-
EXPECT_FALSE(info.features.iwmmxt);
|
|
94
|
-
EXPECT_FALSE(info.features.crunch);
|
|
95
|
-
EXPECT_FALSE(info.features.thumbee);
|
|
96
|
-
EXPECT_TRUE(info.features.neon);
|
|
97
|
-
EXPECT_TRUE(info.features.vfpv3);
|
|
98
|
-
EXPECT_FALSE(info.features.vfpv3d16);
|
|
99
|
-
EXPECT_TRUE(info.features.tls);
|
|
100
|
-
EXPECT_TRUE(info.features.vfpv4);
|
|
101
|
-
EXPECT_TRUE(info.features.idiva);
|
|
102
|
-
EXPECT_TRUE(info.features.idivt);
|
|
103
|
-
EXPECT_TRUE(info.features.vfpd32);
|
|
104
|
-
EXPECT_TRUE(info.features.lpae);
|
|
105
|
-
EXPECT_FALSE(info.features.evtstrm);
|
|
106
|
-
EXPECT_FALSE(info.features.aes);
|
|
107
|
-
EXPECT_FALSE(info.features.pmull);
|
|
108
|
-
EXPECT_FALSE(info.features.sha1);
|
|
109
|
-
EXPECT_FALSE(info.features.sha2);
|
|
110
|
-
EXPECT_FALSE(info.features.crc32);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Linux test-case
|
|
114
|
-
TEST(CpuinfoArmTest, RaspberryPiZeroFromCpuInfo) {
|
|
115
|
-
ResetHwcaps();
|
|
116
|
-
auto& fs = GetEmptyFilesystem();
|
|
117
|
-
fs.CreateFile("/proc/cpuinfo", R"(processor : 0
|
|
118
|
-
model name : ARMv6-compatible processor rev 7 (v6l)
|
|
119
|
-
BogoMIPS : 697.95
|
|
120
|
-
Features : half thumb fastmult vfp edsp java tls
|
|
121
|
-
CPU implementer : 0x41
|
|
122
|
-
CPU architecture: 7
|
|
123
|
-
CPU variant : 0x0
|
|
124
|
-
CPU part : 0xb76
|
|
125
|
-
CPU revision : 7
|
|
126
|
-
|
|
127
|
-
Hardware : BCM2835
|
|
128
|
-
Revision : 9000c1
|
|
129
|
-
Serial : 000000006cd946f3)");
|
|
130
|
-
const auto info = GetArmInfo();
|
|
131
|
-
EXPECT_EQ(info.implementer, 0x41);
|
|
132
|
-
EXPECT_EQ(info.variant, 0x0);
|
|
133
|
-
EXPECT_EQ(info.part, 0xb76);
|
|
134
|
-
EXPECT_EQ(info.revision, 7);
|
|
135
|
-
EXPECT_EQ(info.architecture, 6);
|
|
136
|
-
|
|
137
|
-
EXPECT_FALSE(info.features.swp);
|
|
138
|
-
EXPECT_TRUE(info.features.half);
|
|
139
|
-
EXPECT_TRUE(info.features.thumb);
|
|
140
|
-
EXPECT_FALSE(info.features._26bit);
|
|
141
|
-
EXPECT_TRUE(info.features.fastmult);
|
|
142
|
-
EXPECT_FALSE(info.features.fpa);
|
|
143
|
-
EXPECT_TRUE(info.features.vfp);
|
|
144
|
-
EXPECT_TRUE(info.features.edsp);
|
|
145
|
-
EXPECT_TRUE(info.features.java);
|
|
146
|
-
EXPECT_FALSE(info.features.iwmmxt);
|
|
147
|
-
EXPECT_FALSE(info.features.crunch);
|
|
148
|
-
EXPECT_FALSE(info.features.thumbee);
|
|
149
|
-
EXPECT_FALSE(info.features.neon);
|
|
150
|
-
EXPECT_FALSE(info.features.vfpv3);
|
|
151
|
-
EXPECT_FALSE(info.features.vfpv3d16);
|
|
152
|
-
EXPECT_TRUE(info.features.tls);
|
|
153
|
-
EXPECT_FALSE(info.features.vfpv4);
|
|
154
|
-
EXPECT_FALSE(info.features.idiva);
|
|
155
|
-
EXPECT_FALSE(info.features.idivt);
|
|
156
|
-
EXPECT_FALSE(info.features.vfpd32);
|
|
157
|
-
EXPECT_FALSE(info.features.lpae);
|
|
158
|
-
EXPECT_FALSE(info.features.evtstrm);
|
|
159
|
-
EXPECT_FALSE(info.features.aes);
|
|
160
|
-
EXPECT_FALSE(info.features.pmull);
|
|
161
|
-
EXPECT_FALSE(info.features.sha1);
|
|
162
|
-
EXPECT_FALSE(info.features.sha2);
|
|
163
|
-
EXPECT_FALSE(info.features.crc32);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
TEST(CpuinfoArmTest, MarvellArmadaFromCpuInfo) {
|
|
167
|
-
ResetHwcaps();
|
|
168
|
-
auto& fs = GetEmptyFilesystem();
|
|
169
|
-
fs.CreateFile("/proc/cpuinfo", R"(processor : 0
|
|
170
|
-
model name : ARMv7 Processor rev 1 (v7l)
|
|
171
|
-
BogoMIPS : 50.00
|
|
172
|
-
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
|
|
173
|
-
CPU implementer : 0x41
|
|
174
|
-
CPU architecture: 7
|
|
175
|
-
CPU variant : 0x4
|
|
176
|
-
CPU part : 0xc09
|
|
177
|
-
CPU revision : 1
|
|
178
|
-
|
|
179
|
-
processor : 1
|
|
180
|
-
model name : ARMv7 Processor rev 1 (v7l)
|
|
181
|
-
BogoMIPS : 50.00
|
|
182
|
-
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
|
|
183
|
-
CPU implementer : 0x41
|
|
184
|
-
CPU architecture: 7
|
|
185
|
-
CPU variant : 0x4
|
|
186
|
-
CPU part : 0xc09
|
|
187
|
-
CPU revision : 1
|
|
188
|
-
|
|
189
|
-
Hardware : Marvell Armada 380/385 (Device Tree)
|
|
190
|
-
Revision : 0000
|
|
191
|
-
Serial : 0000000000000000)");
|
|
192
|
-
const auto info = GetArmInfo();
|
|
193
|
-
EXPECT_EQ(info.implementer, 0x41);
|
|
194
|
-
EXPECT_EQ(info.variant, 0x4);
|
|
195
|
-
EXPECT_EQ(info.part, 0xc09);
|
|
196
|
-
EXPECT_EQ(info.revision, 1);
|
|
197
|
-
EXPECT_EQ(info.architecture, 7);
|
|
198
|
-
|
|
199
|
-
EXPECT_FALSE(info.features.swp);
|
|
200
|
-
EXPECT_TRUE(info.features.half);
|
|
201
|
-
EXPECT_TRUE(info.features.thumb);
|
|
202
|
-
EXPECT_FALSE(info.features._26bit);
|
|
203
|
-
EXPECT_TRUE(info.features.fastmult);
|
|
204
|
-
EXPECT_FALSE(info.features.fpa);
|
|
205
|
-
EXPECT_TRUE(info.features.vfp);
|
|
206
|
-
EXPECT_TRUE(info.features.edsp);
|
|
207
|
-
EXPECT_FALSE(info.features.java);
|
|
208
|
-
EXPECT_FALSE(info.features.iwmmxt);
|
|
209
|
-
EXPECT_FALSE(info.features.crunch);
|
|
210
|
-
EXPECT_FALSE(info.features.thumbee);
|
|
211
|
-
EXPECT_TRUE(info.features.neon);
|
|
212
|
-
EXPECT_TRUE(info.features.vfpv3);
|
|
213
|
-
EXPECT_FALSE(info.features.vfpv3d16);
|
|
214
|
-
EXPECT_TRUE(info.features.tls);
|
|
215
|
-
EXPECT_FALSE(info.features.vfpv4);
|
|
216
|
-
EXPECT_FALSE(info.features.idiva);
|
|
217
|
-
EXPECT_FALSE(info.features.idivt);
|
|
218
|
-
EXPECT_TRUE(info.features.vfpd32);
|
|
219
|
-
EXPECT_FALSE(info.features.lpae);
|
|
220
|
-
EXPECT_FALSE(info.features.evtstrm);
|
|
221
|
-
EXPECT_FALSE(info.features.aes);
|
|
222
|
-
EXPECT_FALSE(info.features.pmull);
|
|
223
|
-
EXPECT_FALSE(info.features.sha1);
|
|
224
|
-
EXPECT_FALSE(info.features.sha2);
|
|
225
|
-
EXPECT_FALSE(info.features.crc32);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Android test-case
|
|
229
|
-
// http://code.google.com/p/android/issues/detail?id=10812
|
|
230
|
-
TEST(CpuinfoArmTest, InvalidArmv7) {
|
|
231
|
-
ResetHwcaps();
|
|
232
|
-
auto& fs = GetEmptyFilesystem();
|
|
233
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
234
|
-
R"(Processor : ARMv6-compatible processor rev 6 (v6l)
|
|
235
|
-
BogoMIPS : 199.47
|
|
236
|
-
Features : swp half thumb fastmult vfp edsp java
|
|
237
|
-
CPU implementer : 0x41
|
|
238
|
-
CPU architecture: 7
|
|
239
|
-
CPU variant : 0x0
|
|
240
|
-
CPU part : 0xb76
|
|
241
|
-
CPU revision : 6
|
|
242
|
-
|
|
243
|
-
Hardware : SPICA
|
|
244
|
-
Revision : 0020
|
|
245
|
-
Serial : 33323613546d00ec )");
|
|
246
|
-
const auto info = GetArmInfo();
|
|
247
|
-
EXPECT_EQ(info.architecture, 6);
|
|
248
|
-
|
|
249
|
-
EXPECT_TRUE(info.features.swp);
|
|
250
|
-
EXPECT_TRUE(info.features.half);
|
|
251
|
-
EXPECT_TRUE(info.features.thumb);
|
|
252
|
-
EXPECT_FALSE(info.features._26bit);
|
|
253
|
-
EXPECT_TRUE(info.features.fastmult);
|
|
254
|
-
EXPECT_FALSE(info.features.fpa);
|
|
255
|
-
EXPECT_TRUE(info.features.vfp);
|
|
256
|
-
EXPECT_TRUE(info.features.edsp);
|
|
257
|
-
EXPECT_TRUE(info.features.java);
|
|
258
|
-
EXPECT_FALSE(info.features.iwmmxt);
|
|
259
|
-
EXPECT_FALSE(info.features.crunch);
|
|
260
|
-
EXPECT_FALSE(info.features.thumbee);
|
|
261
|
-
EXPECT_FALSE(info.features.neon);
|
|
262
|
-
EXPECT_FALSE(info.features.vfpv3);
|
|
263
|
-
EXPECT_FALSE(info.features.vfpv3d16);
|
|
264
|
-
EXPECT_FALSE(info.features.tls);
|
|
265
|
-
EXPECT_FALSE(info.features.vfpv4);
|
|
266
|
-
EXPECT_FALSE(info.features.idiva);
|
|
267
|
-
EXPECT_FALSE(info.features.idivt);
|
|
268
|
-
EXPECT_FALSE(info.features.vfpd32);
|
|
269
|
-
EXPECT_FALSE(info.features.lpae);
|
|
270
|
-
EXPECT_FALSE(info.features.evtstrm);
|
|
271
|
-
EXPECT_FALSE(info.features.aes);
|
|
272
|
-
EXPECT_FALSE(info.features.pmull);
|
|
273
|
-
EXPECT_FALSE(info.features.sha1);
|
|
274
|
-
EXPECT_FALSE(info.features.sha2);
|
|
275
|
-
EXPECT_FALSE(info.features.crc32);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
// Android test-case
|
|
279
|
-
// https://crbug.com/341598.
|
|
280
|
-
TEST(CpuinfoArmTest, InvalidNeon) {
|
|
281
|
-
ResetHwcaps();
|
|
282
|
-
auto& fs = GetEmptyFilesystem();
|
|
283
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
284
|
-
R"(Processor: ARMv7 Processory rev 0 (v71)
|
|
285
|
-
processor: 0
|
|
286
|
-
BogoMIPS: 13.50
|
|
287
|
-
|
|
288
|
-
Processor: 1
|
|
289
|
-
BogoMIPS: 13.50
|
|
290
|
-
|
|
291
|
-
Features: swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
|
|
292
|
-
CPU implementer : 0x51
|
|
293
|
-
CPU architecture: 7
|
|
294
|
-
CPU variant: 0x1
|
|
295
|
-
CPU part: 0x04d
|
|
296
|
-
CPU revision: 0
|
|
297
|
-
|
|
298
|
-
Hardware: SAMSUNG M2
|
|
299
|
-
Revision: 0010
|
|
300
|
-
Serial: 00001e030000354e)");
|
|
301
|
-
const auto info = GetArmInfo();
|
|
302
|
-
EXPECT_TRUE(info.features.swp);
|
|
303
|
-
EXPECT_FALSE(info.features.neon);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// The Nexus 4 (Qualcomm Krait) kernel configuration forgets to report IDIV
|
|
307
|
-
// support.
|
|
308
|
-
TEST(CpuinfoArmTest, Nexus4_0x510006f2) {
|
|
309
|
-
ResetHwcaps();
|
|
310
|
-
auto& fs = GetEmptyFilesystem();
|
|
311
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
312
|
-
R"(CPU implementer : 0x51
|
|
313
|
-
CPU architecture: 7
|
|
314
|
-
CPU variant : 0x0
|
|
315
|
-
CPU part : 0x6f
|
|
316
|
-
CPU revision : 2)");
|
|
317
|
-
const auto info = GetArmInfo();
|
|
318
|
-
EXPECT_TRUE(info.features.idiva);
|
|
319
|
-
EXPECT_TRUE(info.features.idivt);
|
|
320
|
-
|
|
321
|
-
EXPECT_EQ(GetArmCpuId(&info), 0x510006f2);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// The Nexus 4 (Qualcomm Krait) kernel configuration forgets to report IDIV
|
|
325
|
-
// support.
|
|
326
|
-
TEST(CpuinfoArmTest, Nexus4_0x510006f3) {
|
|
327
|
-
ResetHwcaps();
|
|
328
|
-
auto& fs = GetEmptyFilesystem();
|
|
329
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
330
|
-
R"(CPU implementer : 0x51
|
|
331
|
-
CPU architecture: 7
|
|
332
|
-
CPU variant : 0x0
|
|
333
|
-
CPU part : 0x6f
|
|
334
|
-
CPU revision : 3)");
|
|
335
|
-
const auto info = GetArmInfo();
|
|
336
|
-
EXPECT_TRUE(info.features.idiva);
|
|
337
|
-
EXPECT_TRUE(info.features.idivt);
|
|
338
|
-
|
|
339
|
-
EXPECT_EQ(GetArmCpuId(&info), 0x510006f3);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
// The 2013 Nexus 7 (Qualcomm Krait) kernel configuration forgets to report IDIV
|
|
343
|
-
// support.
|
|
344
|
-
TEST(CpuinfoArmTest, Nexus7_2013_0x511006f0) {
|
|
345
|
-
ResetHwcaps();
|
|
346
|
-
auto& fs = GetEmptyFilesystem();
|
|
347
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
348
|
-
R"(CPU implementer : 0x51
|
|
349
|
-
CPU architecture: 7
|
|
350
|
-
CPU variant : 0x1
|
|
351
|
-
CPU part : 0x06f
|
|
352
|
-
CPU revision : 0)");
|
|
353
|
-
const auto info = GetArmInfo();
|
|
354
|
-
EXPECT_TRUE(info.features.idiva);
|
|
355
|
-
EXPECT_TRUE(info.features.idivt);
|
|
356
|
-
|
|
357
|
-
EXPECT_EQ(GetArmCpuId(&info), 0x511006f0);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
// The emulator-specific Android 4.2 kernel fails to report support for the
|
|
361
|
-
// 32-bit ARM IDIV instruction. Technically, this is a feature of the virtual
|
|
362
|
-
// CPU implemented by the emulator.
|
|
363
|
-
TEST(CpuinfoArmTest, EmulatorSpecificIdiv) {
|
|
364
|
-
ResetHwcaps();
|
|
365
|
-
auto& fs = GetEmptyFilesystem();
|
|
366
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
367
|
-
R"(Processor : ARMv7 Processor rev 0 (v7l)
|
|
368
|
-
BogoMIPS : 629.14
|
|
369
|
-
Features : swp half thumb fastmult vfp edsp neon vfpv3
|
|
370
|
-
CPU implementer : 0x41
|
|
371
|
-
CPU architecture: 7
|
|
372
|
-
CPU variant : 0x0
|
|
373
|
-
CPU part : 0xc08
|
|
374
|
-
CPU revision : 0
|
|
375
|
-
|
|
376
|
-
Hardware : Goldfish
|
|
377
|
-
Revision : 0000
|
|
378
|
-
Serial : 0000000000000000)");
|
|
379
|
-
const auto info = GetArmInfo();
|
|
380
|
-
EXPECT_TRUE(info.features.idiva);
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
} // namespace
|
|
384
|
-
} // namespace cpu_features
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 Google LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#include "cpuinfo_mips.h"
|
|
16
|
-
|
|
17
|
-
#include "filesystem_for_testing.h"
|
|
18
|
-
#include "gtest/gtest.h"
|
|
19
|
-
#include "hwcaps_for_testing.h"
|
|
20
|
-
#include "internal/stack_line_reader.h"
|
|
21
|
-
#include "internal/string_view.h"
|
|
22
|
-
|
|
23
|
-
namespace cpu_features {
|
|
24
|
-
|
|
25
|
-
namespace {
|
|
26
|
-
|
|
27
|
-
TEST(CpuinfoMipsTest, MipsFeaturesEnum) {
|
|
28
|
-
const char *last_name = GetMipsFeaturesEnumName(MIPS_LAST_);
|
|
29
|
-
EXPECT_STREQ(last_name, "unknown_feature");
|
|
30
|
-
for (int i = static_cast<int>(MIPS_MSA); i != static_cast<int>(MIPS_LAST_); ++i) {
|
|
31
|
-
const auto feature = static_cast<MipsFeaturesEnum>(i);
|
|
32
|
-
const char *name = GetMipsFeaturesEnumName(feature);
|
|
33
|
-
ASSERT_FALSE(name == nullptr);
|
|
34
|
-
EXPECT_STRNE(name, "");
|
|
35
|
-
EXPECT_STRNE(name, last_name);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
TEST(CpuinfoMipsTest, FromHardwareCapBoth) {
|
|
40
|
-
ResetHwcaps();
|
|
41
|
-
SetHardwareCapabilities(MIPS_HWCAP_MSA | MIPS_HWCAP_R6, 0);
|
|
42
|
-
GetEmptyFilesystem(); // disabling /proc/cpuinfo
|
|
43
|
-
const auto info = GetMipsInfo();
|
|
44
|
-
EXPECT_TRUE(info.features.msa);
|
|
45
|
-
EXPECT_FALSE(info.features.eva);
|
|
46
|
-
EXPECT_TRUE(info.features.r6);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
TEST(CpuinfoMipsTest, FromHardwareCapOnlyOne) {
|
|
50
|
-
ResetHwcaps();
|
|
51
|
-
SetHardwareCapabilities(MIPS_HWCAP_MSA, 0);
|
|
52
|
-
GetEmptyFilesystem(); // disabling /proc/cpuinfo
|
|
53
|
-
const auto info = GetMipsInfo();
|
|
54
|
-
EXPECT_TRUE(info.features.msa);
|
|
55
|
-
EXPECT_FALSE(info.features.eva);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
TEST(CpuinfoMipsTest, Ci40) {
|
|
59
|
-
ResetHwcaps();
|
|
60
|
-
auto& fs = GetEmptyFilesystem();
|
|
61
|
-
fs.CreateFile("/proc/cpuinfo", R"(system type : IMG Pistachio SoC (B0)
|
|
62
|
-
machine : IMG Marduk – Ci40 with cc2520
|
|
63
|
-
processor : 0
|
|
64
|
-
cpu model : MIPS interAptiv (multi) V2.0 FPU V0.0
|
|
65
|
-
BogoMIPS : 363.72
|
|
66
|
-
wait instruction : yes
|
|
67
|
-
microsecond timers : yes
|
|
68
|
-
tlb_entries : 64
|
|
69
|
-
extra interrupt vector : yes
|
|
70
|
-
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
|
|
71
|
-
isa : mips1 mips2 mips32r1 mips32r2
|
|
72
|
-
ASEs implemented : mips16 dsp mt eva
|
|
73
|
-
shadow register sets : 1
|
|
74
|
-
kscratch registers : 0
|
|
75
|
-
package : 0
|
|
76
|
-
core : 0
|
|
77
|
-
VCED exceptions : not available
|
|
78
|
-
VCEI exceptions : not available
|
|
79
|
-
VPE : 0
|
|
80
|
-
)");
|
|
81
|
-
const auto info = GetMipsInfo();
|
|
82
|
-
EXPECT_FALSE(info.features.msa);
|
|
83
|
-
EXPECT_TRUE(info.features.eva);
|
|
84
|
-
EXPECT_FALSE(info.features.r6);
|
|
85
|
-
EXPECT_TRUE(info.features.mips16);
|
|
86
|
-
EXPECT_FALSE(info.features.mdmx);
|
|
87
|
-
EXPECT_FALSE(info.features.mips3d);
|
|
88
|
-
EXPECT_FALSE(info.features.smart);
|
|
89
|
-
EXPECT_TRUE(info.features.dsp);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
TEST(CpuinfoMipsTest, AR7161) {
|
|
93
|
-
ResetHwcaps();
|
|
94
|
-
auto& fs = GetEmptyFilesystem();
|
|
95
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
96
|
-
R"(system type : Atheros AR7161 rev 2
|
|
97
|
-
machine : NETGEAR WNDR3700/WNDR3800/WNDRMAC
|
|
98
|
-
processor : 0
|
|
99
|
-
cpu model : MIPS 24Kc V7.4
|
|
100
|
-
BogoMIPS : 452.19
|
|
101
|
-
wait instruction : yes
|
|
102
|
-
microsecond timers : yes
|
|
103
|
-
tlb_entries : 16
|
|
104
|
-
extra interrupt vector : yes
|
|
105
|
-
hardware watchpoint : yes, count: 4, address/irw mask: [0x0000, 0x0f98, 0x0f78, 0x0df8]
|
|
106
|
-
ASEs implemented : mips16
|
|
107
|
-
shadow register sets : 1
|
|
108
|
-
kscratch registers : 0
|
|
109
|
-
core : 0
|
|
110
|
-
VCED exceptions : not available
|
|
111
|
-
VCEI exceptions : not available
|
|
112
|
-
)");
|
|
113
|
-
const auto info = GetMipsInfo();
|
|
114
|
-
EXPECT_FALSE(info.features.msa);
|
|
115
|
-
EXPECT_FALSE(info.features.eva);
|
|
116
|
-
EXPECT_TRUE(info.features.mips16);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
TEST(CpuinfoMipsTest, Goldfish) {
|
|
120
|
-
ResetHwcaps();
|
|
121
|
-
auto& fs = GetEmptyFilesystem();
|
|
122
|
-
fs.CreateFile("/proc/cpuinfo", R"(system type : MIPS-Goldfish
|
|
123
|
-
Hardware : goldfish
|
|
124
|
-
Revison : 1
|
|
125
|
-
processor : 0
|
|
126
|
-
cpu model : MIPS 24Kc V0.0 FPU V0.0
|
|
127
|
-
BogoMIPS : 1042.02
|
|
128
|
-
wait instruction : yes
|
|
129
|
-
microsecond timers : yes
|
|
130
|
-
tlb_entries : 16
|
|
131
|
-
extra interrupt vector : yes
|
|
132
|
-
hardware watchpoint : yes, count: 1, address/irw mask: [0x0ff8]
|
|
133
|
-
ASEs implemented :
|
|
134
|
-
shadow register sets : 1
|
|
135
|
-
core : 0
|
|
136
|
-
VCED exceptions : not available
|
|
137
|
-
VCEI exceptions : not available
|
|
138
|
-
)");
|
|
139
|
-
const auto info = GetMipsInfo();
|
|
140
|
-
EXPECT_FALSE(info.features.msa);
|
|
141
|
-
EXPECT_FALSE(info.features.eva);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
TEST(CpuinfoMipsTest, BCM1250) {
|
|
145
|
-
ResetHwcaps();
|
|
146
|
-
auto& fs = GetEmptyFilesystem();
|
|
147
|
-
fs.CreateFile("/proc/cpuinfo", R"(system type : SiByte BCM91250A (SWARM)
|
|
148
|
-
processor : 0
|
|
149
|
-
cpu model : SiByte SB1 V0.2 FPU V0.2
|
|
150
|
-
BogoMIPS : 532.48
|
|
151
|
-
wait instruction : no
|
|
152
|
-
microsecond timers : yes
|
|
153
|
-
tlb_entries : 64
|
|
154
|
-
extra interrupt vector : yes
|
|
155
|
-
hardware watchpoint : yes, count: 1, address/irw mask: [0x0ff8]
|
|
156
|
-
isa : mips1 mips2 mips3 mips4 mips5 mips32r1 mips32r2 mips64r1 mips64r2
|
|
157
|
-
ASEs implemented : mdmx mips3d
|
|
158
|
-
shadow register sets : 1
|
|
159
|
-
kscratch registers : 0
|
|
160
|
-
package : 0
|
|
161
|
-
core : 0
|
|
162
|
-
VCED exceptions : not available
|
|
163
|
-
VCEI exceptions : not available
|
|
164
|
-
)");
|
|
165
|
-
const auto info = GetMipsInfo();
|
|
166
|
-
EXPECT_FALSE(info.features.msa);
|
|
167
|
-
EXPECT_FALSE(info.features.eva);
|
|
168
|
-
EXPECT_FALSE(info.features.mips16);
|
|
169
|
-
EXPECT_TRUE(info.features.mdmx);
|
|
170
|
-
EXPECT_TRUE(info.features.mips3d);
|
|
171
|
-
EXPECT_FALSE(info.features.smart);
|
|
172
|
-
EXPECT_FALSE(info.features.dsp);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
} // namespace
|
|
176
|
-
} // namespace cpu_features
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
// Copyright 2018 IBM.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#include "cpuinfo_ppc.h"
|
|
16
|
-
|
|
17
|
-
#include "filesystem_for_testing.h"
|
|
18
|
-
#include "gtest/gtest.h"
|
|
19
|
-
#include "hwcaps_for_testing.h"
|
|
20
|
-
#include "internal/string_view.h"
|
|
21
|
-
|
|
22
|
-
namespace cpu_features {
|
|
23
|
-
namespace {
|
|
24
|
-
|
|
25
|
-
TEST(CpustringsPPCTest, PPCFeaturesEnum) {
|
|
26
|
-
const char *last_name = GetPPCFeaturesEnumName(PPC_LAST_);
|
|
27
|
-
EXPECT_STREQ(last_name, "unknown_feature");
|
|
28
|
-
for (int i = static_cast<int>(PPC_32); i != static_cast<int>(PPC_LAST_); ++i) {
|
|
29
|
-
const auto feature = static_cast<PPCFeaturesEnum>(i);
|
|
30
|
-
const char *name = GetPPCFeaturesEnumName(feature);
|
|
31
|
-
ASSERT_FALSE(name == nullptr);
|
|
32
|
-
EXPECT_STRNE(name, "");
|
|
33
|
-
EXPECT_STRNE(name, last_name);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
TEST(CpustringsPPCTest, FromHardwareCap) {
|
|
38
|
-
ResetHwcaps();
|
|
39
|
-
SetHardwareCapabilities(PPC_FEATURE_HAS_FPU | PPC_FEATURE_HAS_VSX,
|
|
40
|
-
PPC_FEATURE2_ARCH_3_00);
|
|
41
|
-
GetEmptyFilesystem(); // disabling /proc/cpuinfo
|
|
42
|
-
const auto info = GetPPCInfo();
|
|
43
|
-
EXPECT_TRUE(info.features.fpu);
|
|
44
|
-
EXPECT_FALSE(info.features.mmu);
|
|
45
|
-
EXPECT_TRUE(info.features.vsx);
|
|
46
|
-
EXPECT_TRUE(info.features.arch300);
|
|
47
|
-
EXPECT_FALSE(info.features.power4);
|
|
48
|
-
EXPECT_FALSE(info.features.altivec);
|
|
49
|
-
EXPECT_FALSE(info.features.vcrypto);
|
|
50
|
-
EXPECT_FALSE(info.features.htm);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
TEST(CpustringsPPCTest, Blade) {
|
|
54
|
-
ResetHwcaps();
|
|
55
|
-
auto& fs = GetEmptyFilesystem();
|
|
56
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
57
|
-
R"(processor : 14
|
|
58
|
-
cpu : POWER7 (architected), altivec supported
|
|
59
|
-
clock : 3000.000000MHz
|
|
60
|
-
revision : 2.1 (pvr 003f 0201)
|
|
61
|
-
|
|
62
|
-
processor : 15
|
|
63
|
-
cpu : POWER7 (architected), altivec supported
|
|
64
|
-
clock : 3000.000000MHz
|
|
65
|
-
revision : 2.1 (pvr 003f 0201)
|
|
66
|
-
|
|
67
|
-
timebase : 512000000
|
|
68
|
-
platform : pSeries
|
|
69
|
-
model : IBM,8406-70Y
|
|
70
|
-
machine : CHRP IBM,8406-70Y)");
|
|
71
|
-
SetPlatformPointer("power7");
|
|
72
|
-
SetBasePlatformPointer("power8");
|
|
73
|
-
const auto strings = GetPPCPlatformStrings();
|
|
74
|
-
ASSERT_STREQ(strings.platform, "pSeries");
|
|
75
|
-
ASSERT_STREQ(strings.model, "IBM,8406-70Y");
|
|
76
|
-
ASSERT_STREQ(strings.machine, "CHRP IBM,8406-70Y");
|
|
77
|
-
ASSERT_STREQ(strings.cpu, "POWER7 (architected), altivec supported");
|
|
78
|
-
ASSERT_STREQ(strings.type.platform, "power7");
|
|
79
|
-
ASSERT_STREQ(strings.type.base_platform, "power8");
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
TEST(CpustringsPPCTest, Firestone) {
|
|
83
|
-
ResetHwcaps();
|
|
84
|
-
auto& fs = GetEmptyFilesystem();
|
|
85
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
86
|
-
R"(processor : 126
|
|
87
|
-
cpu : POWER8 (raw), altivec supported
|
|
88
|
-
clock : 2061.000000MHz
|
|
89
|
-
revision : 2.0 (pvr 004d 0200)
|
|
90
|
-
|
|
91
|
-
processor : 127
|
|
92
|
-
cpu : POWER8 (raw), altivec supported
|
|
93
|
-
clock : 2061.000000MHz
|
|
94
|
-
revision : 2.0 (pvr 004d 0200)
|
|
95
|
-
|
|
96
|
-
timebase : 512000000
|
|
97
|
-
platform : PowerNV
|
|
98
|
-
model : 8335-GTA
|
|
99
|
-
machine : PowerNV 8335-GTA
|
|
100
|
-
firmware : OPAL v3)");
|
|
101
|
-
const auto strings = GetPPCPlatformStrings();
|
|
102
|
-
ASSERT_STREQ(strings.platform, "PowerNV");
|
|
103
|
-
ASSERT_STREQ(strings.model, "8335-GTA");
|
|
104
|
-
ASSERT_STREQ(strings.machine, "PowerNV 8335-GTA");
|
|
105
|
-
ASSERT_STREQ(strings.cpu, "POWER8 (raw), altivec supported");
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
TEST(CpustringsPPCTest, w8) {
|
|
109
|
-
ResetHwcaps();
|
|
110
|
-
auto& fs = GetEmptyFilesystem();
|
|
111
|
-
fs.CreateFile("/proc/cpuinfo",
|
|
112
|
-
R"(processor : 143
|
|
113
|
-
cpu : POWER9, altivec supported
|
|
114
|
-
clock : 2300.000000MHz
|
|
115
|
-
revision : 2.2 (pvr 004e 1202)
|
|
116
|
-
|
|
117
|
-
timebase : 512000000
|
|
118
|
-
platform : PowerNV
|
|
119
|
-
model : 0000000000000000
|
|
120
|
-
machine : PowerNV 0000000000000000
|
|
121
|
-
firmware : OPAL
|
|
122
|
-
MMU : Radix)");
|
|
123
|
-
const auto strings = GetPPCPlatformStrings();
|
|
124
|
-
ASSERT_STREQ(strings.platform, "PowerNV");
|
|
125
|
-
ASSERT_STREQ(strings.model, "0000000000000000");
|
|
126
|
-
ASSERT_STREQ(strings.machine, "PowerNV 0000000000000000");
|
|
127
|
-
ASSERT_STREQ(strings.cpu, "POWER9, altivec supported");
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
} // namespace
|
|
131
|
-
} // namespace cpu_features
|