Fix __pthread_clone on ARM to set errno on failure.

MIPS and x86 appear to have been correct already.

(Also fix unit tests that ASSERT_EQ with errno so that the
arguments are in the retarded junit order.)

Bug: 3461078
Change-Id: I2418ea98927b56e15b4ba9cfec97f5e7094c6291
This commit is contained in:
Elliott Hughes
2013-02-11 16:36:48 -08:00
parent 1fea0f258a
commit 5e3fc43dde
7 changed files with 57 additions and 55 deletions

View File

@@ -173,3 +173,13 @@ TEST(pthread, pthread_sigmask) {
ASSERT_EQ(SIGUSR1, received_signal);
ASSERT_EQ(0, reinterpret_cast<int>(join_result));
}
#if !defined(__GLIBC__)
extern "C" int __pthread_clone(int (*fn)(void*), void* child_stack, int flags, void* arg);
TEST(pthread, __pthread_clone) {
uintptr_t fake_child_stack[16];
errno = 0;
ASSERT_EQ(-1, __pthread_clone(NULL, &fake_child_stack[0], CLONE_THREAD, NULL));
ASSERT_EQ(EINVAL, errno);
}
#endif