Expect lib.libc.sys.getcontext_test.setcontext_link to fail on amd64; add
additional debugging to make the underlying problem more visible Calling setcontext(2) on amd64 as shown in the test program is failing on amd64, not i386, with a return code of -1 and an errno of EINVAL Further investigation is being done in the PR to determine the root cause for the failure PR: 194828 Tested with the following configuration: - amd64/i386 - 11.0-CURRENT @ r273153 - 100 times in a tight loop as root with the following commands... -- kyua test lib/libc -- kyua test lib/libc/sys -- kyua test lib/libc/sys/getcontext_test
This commit is contained in:
parent
5ff32a6885
commit
0369b14474
@ -101,6 +101,13 @@ ATF_TC_BODY(setcontext_link, tc)
|
||||
ucontext_t save;
|
||||
volatile int i = 0; /* avoid longjmp clobbering */
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#ifdef __amd64__
|
||||
atf_tc_expect_fail("setcontext in this testcase fails on "
|
||||
"FreeBSD/amd64 with rc == -1/errno == EINVAL; see PR # 194828");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
for (i = 0; i < DEPTH; ++i) {
|
||||
ATF_REQUIRE_EQ(getcontext(&uc[i]), 0);
|
||||
|
||||
@ -114,8 +121,15 @@ ATF_TC_BODY(setcontext_link, tc)
|
||||
|
||||
ATF_REQUIRE_EQ(getcontext(&save), 0);
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
if (calls == 0) {
|
||||
int rc = setcontext(&uc[DEPTH-1]);
|
||||
ATF_REQUIRE_EQ_MSG(rc, 0, "%d != 0; (errno = %d)", rc, errno);
|
||||
}
|
||||
#else
|
||||
if (calls == 0)
|
||||
ATF_REQUIRE_EQ(setcontext(&uc[DEPTH-1]), 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
ATF_TP_ADD_TCS(tp)
|
||||
|
Loading…
Reference in New Issue
Block a user