Re: [Gc] cordtest, gctest FAIL on OSX
Ivan Maidanski <ivmai-JGs/[email protected]> Wed, 07 Jan 2015 22:42:52 +0300
| Newsgroups | gmane.comp.programming.garbage-collection.boehmgc,gmane.spam.detected |
|---|---|
| Message-ID | <[email protected]> |
Hi Bruce, Thank you. I merged them both to master. -- Sunday, 04 Jan 2015, 17:39 +03:00 from Bruce Hoult <[email protected]>: There are actually two problems here. The first is in: 7bef74b Fix unresolved vsnprintf in misc.c and snprintf in cordtest (DJGPP, VC) OS X for some reason has problems with defining snprintf as a macro and including another macro expansion in its arguments. Others have found this in the past e.g. http://sourceforge.net/p/powerwatershed/discussion/1024808/thread/79db23d3/ The following patch fixes this (and hopefully doesn't break the others): -------------------------- diff --git a/cord/tests/cordtest.c b/cord/tests/cordtest.c index a5a0c30..3edd0b4 100644 --- a/cord/tests/cordtest.c +++ b/cord/tests/cordtest.c @@ -206,9 +206,9 @@ void test_extras(void) #ifdef __DJGPP__ /* snprintf is missing in DJGPP (v2.0.3) */ -# define GC_SNPRINTF sprintf -# define GC_SNPRINTF_BUFSZ_ARG(bufsz) /* empty */ +# define HAVE_SNPRINTF 0 #else +# define HAVE_SNPRINTF 1 # if defined(_MSC_VER) # if defined(_WIN32_WCE) /* _snprintf is deprecated in WinCE */ @@ -219,7 +219,6 @@ void test_extras(void) # else # define GC_SNPRINTF snprintf # endif -# define GC_SNPRINTF_BUFSZ_ARG(bufsz) (bufsz), #endif void test_printf(void) @@ -244,8 +243,12 @@ void test_printf(void) x = CORD_cat(x,x); if (CORD_sprintf(&result, "->%-120.78r!\n", x) != 124) ABORT("CORD_sprintf failed 3"); - (void)GC_SNPRINTF(result2, GC_SNPRINTF_BUFSZ_ARG(sizeof(result2)) - "->%-120.78s!\n", CORD_to_char_star(x)); +# if HAVE_SNPRINTF + (void)GC_SNPRINTF(result2, sizeof(result2), "->%-120.78s!\n", + CORD_to_char_star(x)); +# else + (void)sprintf(result2, "->%-120.78s!\n", CORD_to_char_star(x)); +# endif result2[sizeof(result2) - 1] = '\0'; if (CORD_cmp(result, result2) != 0)ABORT("CORD_sprintf goofed 5"); } -------------------------- The next problem is in: 0d147af Fix missing error handling of pthread_attr_init/getstacksize Error 22 is EINVAL. Man pthread_attr_setstacksize gives the following possible reasons for EINVAL: [EINVAL] Invalid value for attr. [EINVAL] stacksize is less than PTHREAD_STACK_MIN. [EINVAL] stacksize is not a multiple of the system page size. The following patch fixes the problem, demonstrating that the issue is "stacksize is not a multiple of the system page size." -------------------------- diff --git a/tests/test.c b/tests/test.c index 1f006e4..13ab9a9 100644 --- a/tests/test.c +++ b/tests/test.c @@ -1881,7 +1881,7 @@ int main(void) # if defined(GC_IRIX_THREADS) || defined(GC_FREEBSD_THREADS) \ || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) \ || defined(GC_OPENBSD_THREADS) - if ((code = pthread_attr_setstacksize(&attr, 1000000)) != 0) { + if ((code = pthread_attr_setstacksize(&attr, 1000*1024)) != 0) { GC_printf("pthread_attr_setstacksize failed, error=%d\n", code); FAIL; } -------------------------- With these two changes, all tests pass on OS X with current git HEAD (0322b83). Note that both problems are in the test code, not in the GC. On Tue, Dec 30, 2014 at 10:58 AM, John Leung < [email protected] > wrote: >cordtest, gctest FAIL on OSX in make check > >sys info: >OSX 10.9.2 >Xcode 4.5.2 >Please let me know what other information I need to provide. >thank you. > > >> make check >... >/Applications/Xcode.app/Contents/Developer/usr/bin/make check-TESTS >./test-driver: line 107: 11117 Abort trap: 6 "$@" > $log_file 2>&1 >FAIL: cordtest >./test-driver: line 107: 11137 Abort trap: 6 "$@" > $log_file 2>&1 >FAIL: gctest >PASS: leaktest >PASS: middletest >PASS: smashtest >PASS: hugetest >PASS: realloc_test >PASS: staticrootstest >PASS: threadleaktest >PASS: threadkey_test >PASS: subthreadcreate_test >PASS: initsecondarythread_test >PASS: disclaim_test >PASS: disclaim_bench >make[5]: Nothing to be done for `all-am'. >============================================================================ >Testsuite summary for gc 7.5.0 >============================================================================ ># TOTAL: 14 ># PASS: 12 ># SKIP: 0 ># XFAIL: 0 ># FAIL: 2 ># XPASS: 0 ># ERROR: 0 >============================================================================ >See ./test-suite.log >Please report to [email protected] >============================================================================ >make[3]: *** [test-suite.log] Error 1 >make[2]: *** [check-TESTS] Error 2 >make[1]: *** [check-am] Error 2 >make: *** [check-recursive] Error 1 > > > > >> cat ./test-suite.log >================================ > gc 7.5.0: ./test-suite.log >================================ > ># TOTAL: 14 ># PASS: 12 ># SKIP: 0 ># XFAIL: 0 ># FAIL: 2 ># XPASS: 0 ># ERROR: 0 > >.. contents:: :depth: 2 > >FAIL: cordtest >============== > > >FAIL: gctest >============ > >pthread_attr_setstacksize failed, error=22 >Test failed > > >-- >This message has been scanned for viruses and >dangerous content by MailScanner , and is >believed to be clean. >_______________________________________________ >bdwgc mailing list >[email protected] >https://lists.opendylan.org/mailman/listinfo/bdwgc _______________________________________________ bdwgc mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/bdwgc _______________________________________________ bdwgc mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/bdwgc