diff options
Diffstat (limited to 'tests/unistd_test.cpp')
-rw-r--r-- | tests/unistd_test.cpp | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp index 6d7e6878f..7d1e6128b 100644 --- a/tests/unistd_test.cpp +++ b/tests/unistd_test.cpp @@ -183,7 +183,7 @@ TEST(UNISTD_TEST, truncate) { ASSERT_EQ(123, sb.st_size); } -TEST(UNISTD_TEST, truncate64_smoke) { +TEST(UNISTD_TEST, truncate64) { TemporaryFile tf; ASSERT_EQ(0, close(tf.fd)); ASSERT_EQ(0, truncate64(tf.path, 123)); @@ -203,7 +203,7 @@ TEST(UNISTD_TEST, ftruncate) { ASSERT_EQ(123, sb.st_size); } -TEST(UNISTD_TEST, ftruncate64_smoke) { +TEST(UNISTD_TEST, ftruncate64) { TemporaryFile tf; ASSERT_EQ(0, ftruncate64(tf.fd, 123)); ASSERT_EQ(0, close(tf.fd)); @@ -688,9 +688,9 @@ __attribute__((noinline)) static void HwasanVforkTestChild() { __attribute__((noinline)) static void HwasanReadMemory(const char* p, size_t size) { // Read memory byte-by-byte. This will blow up if the pointer tag in p does not match any memory // tag in [p, p+size). - char z; + volatile char z; for (size_t i = 0; i < size; ++i) { - DoNotOptimize(z = p[i]); + z = p[i]; } } @@ -739,7 +739,7 @@ TEST(UNISTD_TEST, gethostname) { // Does uname(2) agree? utsname buf; ASSERT_EQ(0, uname(&buf)); - ASSERT_EQ(0, strncmp(hostname, buf.nodename, sizeof(buf.nodename))); + ASSERT_EQ(0, strncmp(hostname, buf.nodename, SYS_NMLN)); ASSERT_GT(strlen(hostname), 0U); // Do we correctly detect truncation? @@ -852,9 +852,7 @@ TEST(UNISTD_TEST, _POSIX_options) { EXPECT_EQ(_POSIX_VERSION, _POSIX_MONOTONIC_CLOCK); #endif EXPECT_GT(_POSIX_NO_TRUNC, 0); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(_POSIX_VERSION, _POSIX_PRIORITY_SCHEDULING); -#endif EXPECT_EQ(_POSIX_VERSION, _POSIX_RAW_SOCKETS); EXPECT_EQ(_POSIX_VERSION, _POSIX_READER_WRITER_LOCKS); EXPECT_EQ(_POSIX_VERSION, _POSIX_REALTIME_SIGNALS); @@ -863,10 +861,8 @@ TEST(UNISTD_TEST, _POSIX_options) { EXPECT_EQ(_POSIX_VERSION, _POSIX_SEMAPHORES); EXPECT_GT(_POSIX_SHELL, 0); EXPECT_EQ(_POSIX_VERSION, _POSIX_SPAWN); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(-1, _POSIX_SPORADIC_SERVER); EXPECT_EQ(_POSIX_VERSION, _POSIX_SYNCHRONIZED_IO); -#endif EXPECT_EQ(_POSIX_VERSION, _POSIX_THREADS); EXPECT_EQ(_POSIX_VERSION, _POSIX_THREAD_ATTR_STACKADDR); EXPECT_EQ(_POSIX_VERSION, _POSIX_THREAD_ATTR_STACKSIZE); @@ -875,37 +871,27 @@ TEST(UNISTD_TEST, _POSIX_options) { #endif EXPECT_EQ(_POSIX_VERSION, _POSIX_THREAD_PRIORITY_SCHEDULING); EXPECT_EQ(_POSIX_VERSION, _POSIX_THREAD_PROCESS_SHARED); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(-1, _POSIX_THREAD_ROBUST_PRIO_PROTECT); -#endif EXPECT_EQ(_POSIX_VERSION, _POSIX_THREAD_SAFE_FUNCTIONS); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(-1, _POSIX_THREAD_SPORADIC_SERVER); -#endif EXPECT_EQ(_POSIX_VERSION, _POSIX_TIMEOUTS); EXPECT_EQ(_POSIX_VERSION, _POSIX_TIMERS); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(-1, _POSIX_TRACE); EXPECT_EQ(-1, _POSIX_TRACE_EVENT_FILTER); EXPECT_EQ(-1, _POSIX_TRACE_INHERIT); EXPECT_EQ(-1, _POSIX_TRACE_LOG); EXPECT_EQ(-1, _POSIX_TYPED_MEMORY_OBJECTS); -#endif EXPECT_NE(-1, _POSIX_VDISABLE); EXPECT_EQ(_POSIX_VERSION, _POSIX2_VERSION); EXPECT_EQ(_POSIX_VERSION, _POSIX2_C_BIND); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(_POSIX_VERSION, _POSIX2_CHAR_TERM); -#endif EXPECT_EQ(700, _XOPEN_VERSION); EXPECT_EQ(1, _XOPEN_ENH_I18N); -#if !defined(ANDROID_HOST_MUSL) EXPECT_EQ(1, _XOPEN_REALTIME); EXPECT_EQ(1, _XOPEN_REALTIME_THREADS); EXPECT_EQ(1, _XOPEN_SHM); -#endif EXPECT_EQ(1, _XOPEN_UNIX); #if defined(__BIONIC__) @@ -1529,21 +1515,11 @@ TEST(UNISTD_TEST, execvp_libcore_test_55017) { } TEST(UNISTD_TEST, exec_argv0_null) { - // http://b/33276926 and http://b/227498625. - // - // With old kernels, bionic will see the null pointer and use "<unknown>" but - // with new (5.18+) kernels, the kernel will already have substituted the - // empty string, so we don't make any assertion here about what (if anything) - // comes before the first ':'. - // - // If this ever causes trouble, we could change bionic to replace _either_ the - // null pointer or the empty string. We could also use the actual name from - // readlink() on /proc/self/exe if we ever had reason to disallow programs - // from trying to hide like this. + // http://b/33276926 char* args[] = {nullptr}; char* envs[] = {nullptr}; ASSERT_EXIT(execve("/system/bin/run-as", args, envs), testing::ExitedWithCode(1), - ": usage: run-as"); + "<unknown>: usage: run-as"); } TEST(UNISTD_TEST, fexecve_failure) { |