Closed barracuda156 closed 1 year ago
UPD. Interestingly, if -DBUILD_SHARED_LIBS=ON
is set, results are slightly worse, nng.reqstress
times out.
---> Testing nng
Executing: cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_nng/nng/work/build" && ninja test
[0/1] Running tests...
Test project /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_nng/nng/work/build
Start 1: nng.core.aio_test
1/81 Test #1: nng.core.aio_test ...........................***Timeout 180.04 sec
Start 2: nng.core.buf_size_test
2/81 Test #2: nng.core.buf_size_test ...................... Passed 0.12 sec
Start 3: nng.core.errors_test
3/81 Test #3: nng.core.errors_test ........................ Passed 0.05 sec
Start 4: nng.core.id_test
4/81 Test #4: nng.core.id_test ............................ Passed 0.12 sec
Start 5: nng.core.list_test
5/81 Test #5: nng.core.list_test .......................... Passed 0.04 sec
Start 6: nng.core.message_test
6/81 Test #6: nng.core.message_test ....................... Passed 0.23 sec
Start 7: nng.core.reconnect_test
7/81 Test #7: nng.core.reconnect_test ..................... Passed 1.27 sec
Start 8: nng.core.sock_test
8/81 Test #8: nng.core.sock_test .......................... Passed 1.38 sec
Start 9: nng.core.url_test
9/81 Test #9: nng.core.url_test ........................... Passed 0.26 sec
Start 10: nng.platform.platform_test
10/81 Test #10: nng.platform.platform_test .................. Passed 1.02 sec
Start 11: nng.platform.resolver_test
11/81 Test #11: nng.platform.resolver_test .................. Passed 0.52 sec
Start 12: nng.compat.compat.nanomsg.compat_tcp_test
12/81 Test #12: nng.compat.compat.nanomsg.compat_tcp_test ... Passed 1.20 sec
Start 13: nng.sp.protocol.bus0.bug1247_test
13/81 Test #13: nng.sp.protocol.bus0.bug1247_test ........... Passed 0.09 sec
Start 14: nng.sp.protocol.pair0.pair0_test
14/81 Test #14: nng.sp.protocol.pair0.pair0_test ............ Passed 1.97 sec
Start 15: nng.sp.protocol.pair1.pair1_test
15/81 Test #15: nng.sp.protocol.pair1.pair1_test ............ Passed 2.59 sec
Start 16: nng.sp.protocol.pair1.pair1_poly_test
16/81 Test #16: nng.sp.protocol.pair1.pair1_poly_test ....... Passed 1.37 sec
Start 17: nng.sp.protocol.pipeline0.pull_test
17/81 Test #17: nng.sp.protocol.pipeline0.pull_test ......... Passed 0.92 sec
Start 18: nng.sp.protocol.pipeline0.push_test
18/81 Test #18: nng.sp.protocol.pipeline0.push_test ......... Passed 1.99 sec
Start 19: nng.sp.protocol.pubsub0.pub_test
19/81 Test #19: nng.sp.protocol.pubsub0.pub_test ............ Passed 0.94 sec
Start 20: nng.sp.protocol.pubsub0.sub_test
20/81 Test #20: nng.sp.protocol.pubsub0.sub_test ............ Passed 2.61 sec
Start 21: nng.sp.protocol.pubsub0.xsub_test
21/81 Test #21: nng.sp.protocol.pubsub0.xsub_test ........... Passed 1.73 sec
Start 22: nng.sp.protocol.reqrep0.req_test
22/81 Test #22: nng.sp.protocol.reqrep0.req_test ............***Failed 4.84 sec
Start 23: nng.sp.protocol.reqrep0.rep_test
23/81 Test #23: nng.sp.protocol.reqrep0.rep_test ............ Passed 1.92 sec
Start 24: nng.sp.protocol.reqrep0.xrep_test
24/81 Test #24: nng.sp.protocol.reqrep0.xrep_test ........... Passed 1.74 sec
Start 25: nng.sp.protocol.reqrep0.xreq_test
25/81 Test #25: nng.sp.protocol.reqrep0.xreq_test ........... Passed 1.44 sec
Start 26: nng.sp.protocol.survey0.respond_test
26/81 Test #26: nng.sp.protocol.survey0.respond_test ........ Passed 1.92 sec
Start 27: nng.sp.protocol.survey0.survey_test
27/81 Test #27: nng.sp.protocol.survey0.survey_test .........***Failed 2.25 sec
Start 28: nng.sp.protocol.survey0.xrespond_test
28/81 Test #28: nng.sp.protocol.survey0.xrespond_test ....... Passed 1.55 sec
Start 29: nng.sp.protocol.survey0.xsurvey_test
29/81 Test #29: nng.sp.protocol.survey0.xsurvey_test ........ Passed 1.57 sec
Start 30: nng.sp.transport.ipc.ipc_test
30/81 Test #30: nng.sp.transport.ipc.ipc_test ...............***Timeout 180.02 sec
Start 31: nng.sp.transport.tcp.tcp_test
31/81 Test #31: nng.sp.transport.tcp.tcp_test ...............***Failed 0.71 sec
Start 32: nng.sp.transport.ws.ws_test
32/81 Test #32: nng.sp.transport.ws.ws_test ................. Passed 0.83 sec
Start 33: nng.supplemental.base64_test
33/81 Test #33: nng.supplemental.base64_test ................ Passed 0.05 sec
Start 34: nng.supplemental.sha1_test
34/81 Test #34: nng.supplemental.sha1_test .................. Passed 0.05 sec
Start 35: nng.supplemental.wssfile_test
35/81 Test #35: nng.supplemental.wssfile_test ............... Passed 0.02 sec
Start 36: nng.supplemental.websocket_test
36/81 Test #36: nng.supplemental.websocket_test ............. Passed 0.75 sec
Start 37: nng.inproc_lat
37/81 Test #37: nng.inproc_lat .............................. Passed 9.27 sec
Start 38: nng.inproc_thr
38/81 Test #38: nng.inproc_thr .............................. Passed 5.62 sec
Start 39: nng.device
39/81 Test #39: nng.device .................................. Passed 0.30 sec
Start 40: nng.files
40/81 Test #40: nng.files ................................... Passed 0.04 sec
Start 41: nng.httpclient
41/81 Test #41: nng.httpclient .............................. Passed 5.07 sec
Start 42: nng.httpserver
42/81 Test #42: nng.httpserver .............................. Passed 3.21 sec
Start 43: nng.inproc
43/81 Test #43: nng.inproc .................................. Passed 1.61 sec
Start 44: nng.ipc
44/81 Test #44: nng.ipc .....................................***Failed 1.76 sec
Start 45: nng.ipcsupp
45/81 Test #45: nng.ipcsupp ................................. Passed 0.10 sec
Start 46: nng.ipcwinsec
46/81 Test #46: nng.ipcwinsec ............................... Passed 0.09 sec
Start 47: nng.multistress
47/81 Test #47: nng.multistress .............................***Timeout 60.02 sec
Start 48: nng.nonblock
48/81 Test #48: nng.nonblock ................................ Passed 15.11 sec
Start 49: nng.options
49/81 Test #49: nng.options ................................. Passed 0.04 sec
Start 50: nng.pipe
50/81 Test #50: nng.pipe .................................... Passed 0.46 sec
Start 51: nng.pollfd
51/81 Test #51: nng.pollfd .................................. Passed 0.47 sec
Start 52: nng.scalability
52/81 Test #52: nng.scalability ............................. Passed 1.12 sec
Start 53: nng.stats
53/81 Test #53: nng.stats ................................... Passed 0.14 sec
Start 54: nng.synch
54/81 Test #54: nng.synch ................................... Passed 0.38 sec
Start 55: nng.tls
55/81 Test #55: nng.tls ..................................... Passed 0.03 sec
Start 56: nng.tcpsupp
56/81 Test #56: nng.tcpsupp ................................. Passed 0.15 sec
Start 57: nng.tcp
57/81 Test #57: nng.tcp ..................................... Passed 1.80 sec
Start 58: nng.tcp6
58/81 Test #58: nng.tcp6 .................................... Passed 2.31 sec
Start 59: nng.udp
59/81 Test #59: nng.udp .....................................***Failed 0.16 sec
Start 60: nng.ws
60/81 Test #60: nng.ws ...................................... Passed 2.13 sec
Start 61: nng.wss
61/81 Test #61: nng.wss ..................................... Passed 0.03 sec
Start 62: nng.bus
62/81 Test #62: nng.bus ..................................... Passed 0.31 sec
Start 63: nng.reqctx
63/81 Test #63: nng.reqctx .................................. Passed 2.27 sec
Start 64: nng.reqstress
64/81 Test #64: nng.reqstress ...............................***Timeout 60.02 sec
Start 65: nng.compat_block
65/81 Test #65: nng.compat_block ............................ Passed 0.32 sec
Start 66: nng.compat_bug777
66/81 Test #66: nng.compat_bug777 ........................... Passed 0.22 sec
Start 67: nng.compat_bus
67/81 Test #67: nng.compat_bus .............................. Passed 0.32 sec
Start 68: nng.compat_cmsg
68/81 Test #68: nng.compat_cmsg ............................. Passed 0.09 sec
Start 69: nng.compat_msg
69/81 Test #69: nng.compat_msg .............................. Passed 0.12 sec
Start 70: nng.compat_iovec
70/81 Test #70: nng.compat_iovec ............................ Passed 0.09 sec
Start 71: nng.compat_device
71/81 Test #71: nng.compat_device ........................... Passed 0.73 sec
Start 72: nng.compat_pair
72/81 Test #72: nng.compat_pair ............................. Passed 0.09 sec
Start 73: nng.compat_pipeline
73/81 Test #73: nng.compat_pipeline ......................... Passed 0.17 sec
Start 74: nng.compat_poll
74/81 Test #74: nng.compat_poll ............................. Passed 0.46 sec
Start 75: nng.compat_reqrep
75/81 Test #75: nng.compat_reqrep ........................... Passed 1.14 sec
Start 76: nng.compat_survey
76/81 Test #76: nng.compat_survey ........................... Passed 3.08 sec
Start 77: nng.compat_reqttl
77/81 Test #77: nng.compat_reqttl ........................... Passed 0.34 sec
Start 78: nng.compat_shutdown
78/81 Test #78: nng.compat_shutdown ......................... Passed 0.10 sec
Start 79: nng.compat_surveyttl
79/81 Test #79: nng.compat_surveyttl ........................ Passed 0.34 sec
Start 80: nng.compat_options
80/81 Test #80: nng.compat_options .......................... Passed 0.09 sec
Start 81: nng.cplusplus_pair
81/81 Test #81: nng.cplusplus_pair .......................... Passed 0.09 sec
89% tests passed, 9 tests failed out of 81
Total Test time (real) = 582.35 sec
The following tests FAILED:
1 - nng.core.aio_test (Timeout)
22 - nng.sp.protocol.reqrep0.req_test (Failed)
27 - nng.sp.protocol.survey0.survey_test (Failed)
30 - nng.sp.transport.ipc.ipc_test (Timeout)
31 - nng.sp.transport.tcp.tcp_test (Failed)
44 - nng.ipc (Failed)
47 - nng.multistress (Timeout)
59 - nng.udp (Failed)
64 - nng.reqstress (Timeout)
Errors while running CTest
If you're actually building on Snow Leopard, I expect there to be problems. macOS has a long and storied set of problems with POSIX APIs for threading, synchronization, and timekeeping. Recent versions are much better, but the old versions have a lot of ... compromises, and I am not surprised to learn that the test suites fail in places.
The aio_test timeout is a rather serious problem, and may indicate that more work is required to support that platform.
Missing key APIs (particularly those specified by POSIX) and an absolutely atrocious implementation for thread synchronization makes older macOS a terrible target for NNG (or any multithreaded programming really -- you have to buy into the whole macOS Grand Central Dispatch approach if you want to have non-crummy performance on older systems, and to some extent even on modern versions -- and I'm not even sure GCD was present in Snow Leopard.
Anyway, I'm afraid I have no configuration capable of reproducing these errors, and honestly I'm very constrained for time, and have very little interest in supporting something that old particularly when I know how fundamentally busted the platform is for something like NNG.
If NNG provides basic work (it looks like it mostly does), then I'd ignore these test suite failures, and just move on with life. It simply isn't worth the effort to make these test suites function for this platform.
@gdamore Thank you for responding!
The aio_test timeout is a rather serious problem, and may indicate that more work is required to support that platform.
Could you just point out at what to look specifically? Yes, I know it is an old platform, and you may have a better use of your time than fixing this yourself. But an advice on this will be great.
Once unsupported flag https://github.com/nanomsg/nng/issues/1647 is thrown away, results are as follows:
Specifically, the following test cases fail: