1. 18 May, 2019 1 commit
  2. 15 May, 2019 3 commits
  3. 24 Mar, 2019 1 commit
  4. 23 Mar, 2019 2 commits
  5. 10 Feb, 2019 1 commit
  6. 07 Feb, 2019 3 commits
  7. 06 Feb, 2019 2 commits
  8. 03 Feb, 2019 1 commit
  9. 02 Feb, 2019 7 commits
  10. 18 Nov, 2018 1 commit
  11. 02 Feb, 2018 1 commit
  12. 21 Aug, 2017 1 commit
  13. 03 Aug, 2017 1 commit
    • Simon Giesecke's avatar
      Replace console output by monitoring events for curve security issues (#2645) · 5d4e30eb
      Simon Giesecke authored
      * Fixing #2002 one way of doing it
      
       * Mechanisms can implement a new method `error_detail()`
       * This error detail have three values for the moment: no_detail
       (default), protocol, encryption.
          + generic enough to make sense for all mechanisms.
          - low granularity level on information.
      
      * Fixing #2002: implementation of the error details
      
      The ZMQ_EVENT_HANDSHAKE_FAILED event carries the error details
      as value.
      
      * Removed Microsoft extenstion for enum member access
      
      This was leading to compilation error under linux.
      
      * Adaptation of CURVE test cases
      
      * Monitoring event: changed API for detailed events
      
      Removed ZMQ_EVENT_HANDSHAKE_FAILED and replaced it by:
      - ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL,
      - ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL,
      - ZMQ_EVENT_HANDSHAKE_FAILED_ENCRYPTION
      
      Adaptation of text case `security_curve`
      
      * Removed event value comparison
      
      This was introduced for the previous API model adaptation
      
      * Removed the prints in std output and added missing details
      
      `current_error_detail` was not set in every protocol error cases
      
      * Fixed initialization of current_error_detail
      
      * Fixed error in greeting test case
      
      The handshake failure due to mechanism mismatch in greeting is actually
      a protocol error. The error handling method consider it like so and
      send a protocol handshake failure monitoring event instead of no_detail.
      
      Fixed the test_security_curve expectation as well.
      
      * Upgraded tests of monitoring events
      
      The tests check the number of monitoring events received
      
      * Problem: does not build under Linux or without ZMQ_DRAFT_API
      
      Solution:
      - properly use ZMQ_DRAFT_API conditional compilation
      - use receive timeouts instead of Sleep
      
      * Problem: duplicate definition of variable 'timeout'
      
      Solution: merged definitions
      
      * Problem: inconsistent timing dependencies
      
      Solution: reduce timing dependency by using timeouts at more places
      
      * Problem: assertion failure under Linux due to unexpected monitor event
      
      Solution: output event type to aid debugging
      
      * Problem: erroneous assertion code
      
      * Problem: assertion failure with a garbage server key due to an extra third event
      
      Solution: changed assertion to expect three events (needs to be checked)
      
      * Problem: extra include directive to non-existent file
      
      Solution: removed include directive
      
      * Problem: assertion failure on appveyor for unknown reason
      
      Solution: improve debug output
      
      * Problem: no build with libsodium and draft api
      
      Solution: add build configurations with libsodium and draft api
      
      * Problem: assertion failure on CI
      
      Solution: change assertion to reflect actual behaviour on CI (at least temporarily)
      
      * Problem: error in condition in assertion code
      
      * Problem: assertion failure on CI
      
      Solution: generalize assertion to match behavior on CI
      
      * Problem: assertion failures on CI
      
      Solution: removed inconsistent assertion on no monitor events before flushing
      improved debuggability by converting function into macro
      
      * Problem: diverging test code for three analogous test cases with garbage key
      
      Solution: extract common code into function
      
      * Problem: does not build without ZMQ_BUILD_DRAFT_API
      
      Solution: introduce dummy variable
      
      * Attempt to remove workaround regarding ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL again
      
      * Problem: EAGAIN error after handshake complete if there is no more data in inbuffer
      
      Solution: Skip tcp_read attempt in that case
      
      * Problem: handshaking event emitted after handshaking failed
      
      Solution: use stream_engine_t::handshaking instead of mechanism_t::status() to determine whether still handshaking
      
      * Include error code in debug output
      
      * Improve debugging output: output flushed events
      
      * Split up ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL into ZMQ_EVENT_HANDSHAKE_FAILED_ZMTP and ZMQ_EVENT_HANDSHAKE_FAILED_ZAP
      
      * Fixed compilation without ZMQ_BUILD_DRAFT_API
      
      * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency
      
      * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency
      
      * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency
      
      * Fixed assert_monitor_event (require event instead of allowing no event)
      Reverted erroneous change to handshaking condition
      Renamed test_wrong_key to test_garbage_key
      Generalized assumption in test_garbage_key to allow for ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL with error == EPIPE
      
      * Better isolate test cases from each other by providing a fresh context & server for each
      
      * Added diagnostic output
      
      * Changed assertion to reflect actual behavior on CI
      
      * Fixed formatting, observe maximum line length
      
      * Fixed formatting, observe maximum line length
      
      * Increase timeout to check if this fixes valgrind run
      
      * Close server with close_zero_linger
      
      * Increase timeout to check if this fixes valgrind run
      
      * Increase timeout to check if this fixes valgrind run
      
      * Generalize assertion to also work with valgrind
      
      * Fixed formatting
      
      * Add more diagnostic output
      
      * Generalize assertion to also work with valgrind
      5d4e30eb
  14. 01 May, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: tests bind to hardcoded TCP ports · 5934919f
      Luca Boccassi authored
      Solution: use ZMQ_LAST_ENDPOINT in most places. This alllows running
      tests in paralle, and on over-booked shared machines where many of
      the ports would be already in use.
      Keep 3 tests with an hardcoded port, as there are some code paths that
      require it (eg: connect before bind), but list those ports in
      tests/testutil.hpp as macros so that they do not overlap and still
      allow parallel runs.
      
      These changes were inspired by a patch uploaded to Ubuntu by the
      package maintainer, Steve Langasek <steve.langasek@ubuntu.com>.
      Thank you Steve!
      5934919f
  15. 30 Dec, 2016 1 commit
    • Luca Boccassi's avatar
      Problem: new DRAFT monitor events returned even without --enable-draft · c0e2bc4e
      Luca Boccassi authored
      Solution: wrap the event triggering in the DRAFT ifdef as well as the
      defines. This ensures that the event are returned only if the
      library was built with DRAFTs enabled.
      
      Also update the test case to expect the new events since it uses
      the catch-all mask. Although the sequence of event is different and
      this might be considered as an API breakage, using the catch-all
      ZMQ_EVENT_ALL mask implies that, well, all events are monitored so
      it's normal that new ones will be added.
      Users that don't want this kind of behaviour to change can simply
      monitor only the event that they care about.
      c0e2bc4e
  16. 01 May, 2016 1 commit
  17. 28 Jan, 2016 1 commit
  18. 28 Jul, 2015 1 commit
    • Brian Silverman's avatar
      Fix test flakiness. · e449d7bf
      Brian Silverman authored
      I'm pretty sure this is an issue with the test being too picky and not a
      bug, but the behavior in this situation is not well documented.
      e449d7bf
  19. 02 Jun, 2015 1 commit
  20. 22 Jan, 2015 1 commit
  21. 28 Apr, 2014 1 commit
    • Pieter Hintjens's avatar
      Problem: zmq_socket_monitor code is dirty · 9753de85
      Pieter Hintjens authored
      Specifically:
      
      * zmq_event_t should not be used internally in libzmq, it was
        meant to be an outward facing structure.
      
      * In 4.x, zmq_event_t does not correspond to monitor events, so
        I removed the structure entirely.
      
      * man page for zmq_socket_monitor is incomplete and the example
        code was particularly nasty.
      
      * test_monitor.cpp needed rewriting, it was not clean.
      9753de85
  22. 02 Jan, 2014 1 commit
  23. 06 Nov, 2013 1 commit
    • Pieter Hintjens's avatar
      Removed over-long pauses in tests · 5b60540e
      Pieter Hintjens authored
      - used msleep (10) in most places instead of zmq_sleep (1)
      - may cause failures on slower machines
      - to change, modify SETTLE_TIME in testutil.h
      - tested down to 1 msec on fast boxes
      5b60540e
  24. 15 Sep, 2013 1 commit
    • Pieter Hintjens's avatar
      Added z85 codec to ZMQ API · 576e3ca5
      Pieter Hintjens authored
      * Removed redundant Z85 code and include files from project
      * Simplified use of headers in test cases (now they all just use testutil.hpp)
      * Export zmq_z85_encode() and zmq_z85_decode() in API
      * Added man pages for these two functions
      576e3ca5
  25. 17 Aug, 2013 2 commits
  26. 01 Jul, 2013 2 commits