Fix test getauxval.arm_has_AT_HWCAP2. Bug: 27874785 Change-Id: Ibb39087c5353a0cca7783d39498b370e478fe91c
diff --git a/tests/getauxval_test.cpp b/tests/getauxval_test.cpp index 79df978..63bc963 100644 --- a/tests/getauxval_test.cpp +++ b/tests/getauxval_test.cpp
@@ -71,19 +71,17 @@ // but that doesn't seem very likely in 2016. utsname u; ASSERT_EQ(0, uname(&u)); - if (strcmp("aarch64", u.machine) == 0) { - GTEST_LOG_(INFO) << "This test is only meaningful for 32-bit ARM code on 64-bit devices.\n"; + if (strcmp(u.machine, "aarch64") == 0) { + // If this test fails, apps that use getauxval to decide at runtime whether crypto hardware is + // available will incorrectly assume that it isn't, and will have really bad performance. + // If this test fails, ensure that you've enabled COMPAT_BINFMT_ELF in your kernel configuration. + // Note that 0 ("I don't support any of these things") is a legitimate response --- we need + // to check errno to see whether we got a "true" 0 or a "not found" 0. + errno = 0; + getauxval(AT_HWCAP2); + ASSERT_EQ(0, errno) << "64-bit kernel not reporting AT_HWCAP2 to 32-bit ARM process"; return; } - // If this test fails, apps that use getauxval to decide at runtime whether crypto hardware is - // available will incorrectly assume that it isn't, and will have really bad performance. - // If this test fails, ensure that you've enabled COMPAT_BINFMT_ELF in your kernel configuration. - // Note that 0 ("I don't support any of these things") is a legitimate response --- we need - // to check errno to see whether we got a "true" 0 or a "not found" 0. - errno = 0; - getauxval(AT_HWCAP2); - ASSERT_EQ(0, errno) << "64-bit kernel not reporting AT_HWCAP2 to 32-bit ARM process"; -#else - GTEST_LOG_(INFO) << "This test is only meaningful for 32-bit ARM code on 64-bit devices.\n"; #endif + GTEST_LOG_(INFO) << "This test is only meaningful for 32-bit ARM code on 64-bit devices.\n"; }