diff options
author | Guillaume Chatelet <gchatelet@google.com> | 2021-06-30 12:51:26 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-30 12:51:26 +0300 |
commit | b3ef4ef49d8ac3c37f5d60db5f37ee43f433aa2d (patch) | |
tree | 1060132b614fcf2b5710a306bff8706f9fdaabcf /test | |
parent | 001faefdc327e7013a581b99e3cdcbe0ba968277 (diff) |
Avoid leaking internal headers for ppc (#164)
Diffstat (limited to 'test')
-rw-r--r-- | test/cpuinfo_aarch64_test.cc | 4 | ||||
-rw-r--r-- | test/cpuinfo_arm_test.cc | 18 | ||||
-rw-r--r-- | test/cpuinfo_mips_test.cc | 10 | ||||
-rw-r--r-- | test/cpuinfo_ppc_test.cc | 12 | ||||
-rw-r--r-- | test/hwcaps_for_testing.cc | 24 | ||||
-rw-r--r-- | test/hwcaps_for_testing.h | 6 |
6 files changed, 43 insertions, 31 deletions
diff --git a/test/cpuinfo_aarch64_test.cc b/test/cpuinfo_aarch64_test.cc index 20f0996..04b6143 100644 --- a/test/cpuinfo_aarch64_test.cc +++ b/test/cpuinfo_aarch64_test.cc @@ -24,6 +24,7 @@ namespace { void DisableHardwareCapabilities() { SetHardwareCapabilities(0, 0); } TEST(CpuinfoAarch64Test, FromHardwareCap) { + ResetHwcaps(); SetHardwareCapabilities(AARCH64_HWCAP_FP | AARCH64_HWCAP_AES, 0); GetEmptyFilesystem(); // disabling /proc/cpuinfo const auto info = GetAarch64Info(); @@ -62,6 +63,7 @@ TEST(CpuinfoAarch64Test, FromHardwareCap) { } TEST(CpuinfoAarch64Test, FromHardwareCap2) { + ResetHwcaps(); SetHardwareCapabilities(AARCH64_HWCAP_FP, AARCH64_HWCAP2_SVE2 | AARCH64_HWCAP2_BTI); GetEmptyFilesystem(); // disabling /proc/cpuinfo @@ -90,7 +92,7 @@ TEST(CpuinfoAarch64Test, FromHardwareCap2) { } TEST(CpuinfoAarch64Test, ARMCortexA53) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(Processor : AArch64 Processor rev 3 (aarch64) diff --git a/test/cpuinfo_arm_test.cc b/test/cpuinfo_arm_test.cc index e0b08a4..85ee7fb 100644 --- a/test/cpuinfo_arm_test.cc +++ b/test/cpuinfo_arm_test.cc @@ -21,9 +21,8 @@ namespace cpu_features { namespace { -void DisableHardwareCapabilities() { SetHardwareCapabilities(0, 0); } - TEST(CpuinfoArmTest, FromHardwareCap) { + ResetHwcaps(); SetHardwareCapabilities(ARM_HWCAP_NEON, ARM_HWCAP2_AES | ARM_HWCAP2_CRC32); GetEmptyFilesystem(); // disabling /proc/cpuinfo const auto info = GetArmInfo(); @@ -52,7 +51,7 @@ TEST(CpuinfoArmTest, FromHardwareCap) { } TEST(CpuinfoArmTest, ODroidFromCpuInfo) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(processor : 0 model name : ARMv7 Processor rev 3 (v71) @@ -101,7 +100,7 @@ CPU revision : 3)"); // Linux test-case TEST(CpuinfoArmTest, RaspberryPiZeroFromCpuInfo) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) @@ -153,7 +152,7 @@ Serial : 000000006cd946f3)"); } TEST(CpuinfoArmTest, MarvellArmadaFromCpuInfo) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(processor : 0 model name : ARMv7 Processor rev 1 (v7l) @@ -217,7 +216,7 @@ Serial : 0000000000000000)"); // Android test-case // http://code.google.com/p/android/issues/detail?id=10812 TEST(CpuinfoArmTest, InvalidArmv7) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(Processor : ARMv6-compatible processor rev 6 (v6l) @@ -267,6 +266,7 @@ Serial : 33323613546d00ec )"); // Android test-case // https://crbug.com/341598. TEST(CpuinfoArmTest, InvalidNeon) { + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(Processor: ARMv7 Processory rev 0 (v71) @@ -294,7 +294,7 @@ Serial: 00001e030000354e)"); // The Nexus 4 (Qualcomm Krait) kernel configuration forgets to report IDIV // support. TEST(CpuinfoArmTest, Nexus4_0x510006f2) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(CPU implementer : 0x51 @@ -312,7 +312,7 @@ CPU revision : 2)"); // The Nexus 4 (Qualcomm Krait) kernel configuration forgets to report IDIV // support. TEST(CpuinfoArmTest, Nexus4_0x510006f3) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(CPU implementer : 0x51 @@ -331,7 +331,7 @@ CPU revision : 3)"); // 32-bit ARM IDIV instruction. Technically, this is a feature of the virtual // CPU implemented by the emulator. TEST(CpuinfoArmTest, EmulatorSpecificIdiv) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(Processor : ARMv7 Processor rev 0 (v7l) diff --git a/test/cpuinfo_mips_test.cc b/test/cpuinfo_mips_test.cc index d734058..a01624a 100644 --- a/test/cpuinfo_mips_test.cc +++ b/test/cpuinfo_mips_test.cc @@ -24,9 +24,8 @@ namespace cpu_features { namespace { -void DisableHardwareCapabilities() { SetHardwareCapabilities(0, 0); } - TEST(CpuinfoMipsTest, FromHardwareCapBoth) { + ResetHwcaps(); SetHardwareCapabilities(MIPS_HWCAP_MSA | MIPS_HWCAP_R6, 0); GetEmptyFilesystem(); // disabling /proc/cpuinfo const auto info = GetMipsInfo(); @@ -36,6 +35,7 @@ TEST(CpuinfoMipsTest, FromHardwareCapBoth) { } TEST(CpuinfoMipsTest, FromHardwareCapOnlyOne) { + ResetHwcaps(); SetHardwareCapabilities(MIPS_HWCAP_MSA, 0); GetEmptyFilesystem(); // disabling /proc/cpuinfo const auto info = GetMipsInfo(); @@ -44,7 +44,7 @@ TEST(CpuinfoMipsTest, FromHardwareCapOnlyOne) { } TEST(CpuinfoMipsTest, Ci40) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(system type : IMG Pistachio SoC (B0) machine : IMG Marduk – Ci40 with cc2520 @@ -72,7 +72,7 @@ VPE : 0 } TEST(CpuinfoMipsTest, AR7161) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(system type : Atheros AR7161 rev 2 @@ -98,7 +98,7 @@ VCEI exceptions : not available } TEST(CpuinfoMipsTest, Goldfish) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(system type : MIPS-Goldfish Hardware : goldfish diff --git a/test/cpuinfo_ppc_test.cc b/test/cpuinfo_ppc_test.cc index 8f0cb65..b43a7c8 100644 --- a/test/cpuinfo_ppc_test.cc +++ b/test/cpuinfo_ppc_test.cc @@ -22,9 +22,8 @@ namespace cpu_features { namespace { -void DisableHardwareCapabilities() { SetHardwareCapabilities(0, 0); } - TEST(CpustringsPPCTest, FromHardwareCap) { + ResetHwcaps(); SetHardwareCapabilities(PPC_FEATURE_HAS_FPU | PPC_FEATURE_HAS_VSX, PPC_FEATURE2_ARCH_3_00); GetEmptyFilesystem(); // disabling /proc/cpuinfo @@ -40,7 +39,7 @@ TEST(CpustringsPPCTest, FromHardwareCap) { } TEST(CpustringsPPCTest, Blade) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(processor : 14 @@ -57,7 +56,8 @@ timebase : 512000000 platform : pSeries model : IBM,8406-70Y machine : CHRP IBM,8406-70Y)"); - SetPlatformTypes("power7", "power8"); + SetPlatformPointer("power7"); + SetBasePlatformPointer("power8"); const auto strings = GetPPCPlatformStrings(); ASSERT_STREQ(strings.platform, "pSeries"); ASSERT_STREQ(strings.model, "IBM,8406-70Y"); @@ -68,7 +68,7 @@ machine : CHRP IBM,8406-70Y)"); } TEST(CpustringsPPCTest, Firestone) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(processor : 126 @@ -94,7 +94,7 @@ firmware : OPAL v3)"); } TEST(CpustringsPPCTest, w8) { - DisableHardwareCapabilities(); + ResetHwcaps(); auto& fs = GetEmptyFilesystem(); fs.CreateFile("/proc/cpuinfo", R"(processor : 143 diff --git a/test/hwcaps_for_testing.cc b/test/hwcaps_for_testing.cc index a8086a0..fc0013d 100644 --- a/test/hwcaps_for_testing.cc +++ b/test/hwcaps_for_testing.cc @@ -22,25 +22,31 @@ namespace cpu_features { namespace { static auto* const g_hardware_capabilities = new HardwareCapabilities(); -static auto* const g_platform_types = new PlatformType(); +static const char* g_platform_pointer = nullptr; +static const char* g_base_platform_pointer = nullptr; } // namespace void SetHardwareCapabilities(uint32_t hwcaps, uint32_t hwcaps2) { g_hardware_capabilities->hwcaps = hwcaps; g_hardware_capabilities->hwcaps2 = hwcaps2; } +void SetPlatformPointer(const char* string) { g_platform_pointer = string; } +void SetBasePlatformPointer(const char* string) { + g_base_platform_pointer = string; +} + +void ResetHwcaps() { + SetHardwareCapabilities(0, 0); + SetPlatformPointer(nullptr); + SetBasePlatformPointer(nullptr); +} HardwareCapabilities CpuFeatures_GetHardwareCapabilities(void) { return *g_hardware_capabilities; } - -void SetPlatformTypes(const char* platform, const char* base_platform) { - CpuFeatures_StringView_CopyString(str(platform), g_platform_types->platform, - sizeof(g_platform_types->platform)); - CpuFeatures_StringView_CopyString(str(base_platform), - g_platform_types->base_platform, - sizeof(g_platform_types->base_platform)); +const char* CpuFeatures_GetPlatformPointer(void) { return g_platform_pointer; } +const char* CpuFeatures_GetBasePlatformPointer(void) { + return g_base_platform_pointer; } -PlatformType CpuFeatures_GetPlatformType(void) { return *g_platform_types; } } // namespace cpu_features diff --git a/test/hwcaps_for_testing.h b/test/hwcaps_for_testing.h index bcab82e..2138bac 100644 --- a/test/hwcaps_for_testing.h +++ b/test/hwcaps_for_testing.h @@ -20,7 +20,11 @@ namespace cpu_features { void SetHardwareCapabilities(uint32_t hwcaps, uint32_t hwcaps2); -void SetPlatformTypes(const char *platform, const char *base_platform); +void SetPlatformPointer(const char* string); +void SetBasePlatformPointer(const char* string); + +// To be called before each test. +void ResetHwcaps(); } // namespace cpu_features |