G'day Dilyan, On Sun, Jul 15, 2012, at 05:03 PM, Jenkins wrote: > See <http://ci.cyrusimap.org/job/cyrus-imapd-master/711/changes> > [...] > libtool: link: gcc -fPIC --coverage -fvisibility=hidden -g -O0 --coverage > -o cunit/.libs/unit cunit/unit.o cunit/syslog.o cunit/timeout.o > cunit/annotate.o cunit/backend.o cunit/binhex.o cunit/buf.o > cunit/charset.o cunit/crc32.o cunit/db.o cunit/dlist.o cunit/duplicate.o > cunit/getxstring.o cunit/glob.o cunit/guid.o cunit/hash.o cunit/imapurl.o > cunit/mboxname.o cunit/md5.o cunit/message.o cunit/msgid.o > cunit/parseaddr.o cunit/parse.o cunit/prot.o cunit/ptrarray.o > cunit/quota.o cunit/sieve.o cunit/spool.o cunit/squat.o cunit/strarray.o > cunit/strconcat.o cunit/times.o cunit/tok.o imap/mutex_fake.o > imap/spool.o sieve/.libs/libcyrus_sieve.so imap/.libs/libcyrus_imap.so > -luuid > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/lib/.libs/libcyrus_min.so> > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/lib/.libs/libcyrus.so> > -lsasl2 -lssl -lcrypto -lcunit -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err > -lkrb5support /usr/lib64/libdb-4.3.so -lpthread -lz -Wl,-rpath > -Wl,/usr/cyrus/lib -Wl,-rpath -Wl,/usr/lib64 > make[3]: Leaving directory > `<http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd'> > make check-local > make[3]: Entering directory > `<http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd'> > Running unit tests > ./cunit-to-junit.pl: ran 277 tests, 13 failed > make[3]: *** [check-local] Error 1
Some of the tests in cunit/annotate.testc depend on catching the output of syslog(), like this 1267 static void test_missing_definitions_file(void) 1268 { 1269 set_annotation_definitions(NULL); 1270 CU_SYSLOG_MATCH("annotations\\.def: could not open.*No such file"); 1271 1272 annotate_init(NULL, NULL); 1273 /* if we got here, we didn't fatal() */ 1274 1275 /* but we did complain to syslog */ 1276 CU_ASSERT_SYSLOG(/*all*/0, 1); 1277 } The CU_SYSLOG_MATCH() macro tells the test framework to remember a regexp to be matched against later messages passed to syslog() by the Code Under Test. The CU_ASSERT_SYSLOG() macro asserts that the count of matches for (0 = all) previously registered regexps is equal to the 2nd argument = 1. That assert is failing because no emitted syslog messages matched the regexp. The most probable explanation is that your visibility changes have prevented code in libcyrus_imap.so from linking against the syslog() symbol defined in cunit/syslog.c and instead they're getting the syslog in libc. -- Greg.