Author: ngie
Date: Wed Nov  5 16:38:57 2014
New Revision: 274143
URL: https://svnweb.freebsd.org/changeset/base/274143

Log:
  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

Modified:
  head/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c

Modified: head/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c       Wed Nov  5 
16:30:02 2014        (r274142)
+++ head/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c       Wed Nov  5 
16:38:57 2014        (r274143)
@@ -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)
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to