mosquitto/test/broker
Roger A. Light d0152406e3 Fix will messages being incorrectly delayed.
This occured if a client set session-expiry-interval=0 when using
will-delay-interval>0.

Closes #3505. Thanks to Julian Graf.
2026-02-16 11:37:36 +00:00
..
c Fix password length not being passed to MOSQ_EVT_BASIC_AUTH events. 2026-02-13 13:14:38 +00:00
data Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
01-bad-initial-packets.py Mac: Fix network loss occasionally being BrokenPipeError 2026-01-27 10:02:07 +00:00
01-connect-575314.py
01-connect-accept-protocol.py
01-connect-allow-anonymous.py
01-connect-auto-id.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
01-connect-disconnect-v5.py
01-connect-global-max-clients.py
01-connect-global-max-connections.py
01-connect-listener-allow-anonymous.py
01-connect-max-connections.py
01-connect-max-keepalive.py
01-connect-take-over.py
01-connect-uname-no-password-denied.pwfile
01-connect-uname-no-password-denied.py
01-connect-uname-or-anon.pwfile
01-connect-uname-or-anon.py
01-connect-uname-password-denied-no-will.py
01-connect-uname-password-denied.pwfile
01-connect-uname-password-denied.py
01-connect-uname-password-success-no-tls.pwfile
01-connect-uname-password-success-no-tls.py
01-connect-unix-socket.py
01-connect-windows-line-endings.py
01-connect-zero-length-id.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
01-plugin-connect-uname-password-denied.pwfile
01-plugin-connect-uname-password-denied.py
02-shared-nolocal.py
02-shared-qos0-v5.py
02-subhier-crash.py
02-subpub-b2c-topic-alias.py
02-subpub-qos0-long-topic.py
02-subpub-qos0-oversize-payload.py
02-subpub-qos0-queued-bytes.py
02-subpub-qos0-retain-as-publish.py
02-subpub-qos0-send-retain.py
02-subpub-qos0-subscription-id.py
02-subpub-qos0-topic-alias-unknown.py
02-subpub-qos0-topic-alias.py
02-subpub-qos1-message-expiry-retain.py Merge branch 'fixes' into develop 2026-01-15 00:49:53 +00:00
02-subpub-qos1-message-expiry-will.py Merge branch 'fixes' into develop 2026-01-15 00:49:53 +00:00
02-subpub-qos1-message-expiry.py Merge branch 'fixes' into develop 2026-01-15 00:49:53 +00:00
02-subpub-qos1-nolocal.py
02-subpub-qos1-oversize-payload.py
02-subpub-qos1.py
02-subpub-qos2-1322.py
02-subpub-qos2-max-inflight-bytes.py
02-subpub-qos2-pubrec-error.py Merge branch 'fixes' into develop 2026-01-15 00:49:53 +00:00
02-subpub-qos2-receive-maximum-1.py
02-subpub-qos2-receive-maximum-2.py
02-subpub-qos2.py
02-subpub-recover-subscriptions.py
02-subscribe-dollar-v5.py
02-subscribe-invalid-utf8.py
02-subscribe-long-topic.py
02-subscribe-persistence-flipflop.py
03-pattern-matching.py
03-publish-b2c-disconnect-qos1.py
03-publish-b2c-disconnect-qos2.py
03-publish-b2c-qos1-len.py
03-publish-b2c-qos2-len.py
03-publish-bad-flags.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
03-publish-c2b-disconnect-qos2.py
03-publish-c2b-qos2-len.py
03-publish-dollar-v5.py
03-publish-dollar.py
03-publish-invalid-utf8.py
03-publish-long-topic.py
03-publish-qos1-max-inflight-expire.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
03-publish-qos1-max-inflight.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
03-publish-qos1-no-subscribers-v5.py
03-publish-qos1-queued-bytes.conf
03-publish-qos1-queued-bytes.py
03-publish-qos1-retain-disabled.py
03-publish-qos1.py
03-publish-qos2-dup.py
03-publish-qos2-max-inflight-exceeded.py
03-publish-qos2-max-inflight.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
03-publish-qos2-reuse-mid.py
03-publish-qos2.py
04-retain-check-source-persist-diff-port.py
04-retain-check-source-persist.py
04-retain-check-source.py
04-retain-clear-multiple.py
04-retain-qos0-clear.py
04-retain-qos0-fresh.py
04-retain-qos0-repeated.py
04-retain-qos0.py
04-retain-qos1-qos0.py
04-retain-upgrade-outgoing-qos.py
05-clean-session-qos1.py
05-session-expiry-kick.py
05-session-expiry-v5.py
06-bridge-b2br-disconnect-qos1.py
06-bridge-b2br-disconnect-qos2.py
06-bridge-b2br-late-connection-retain.py
06-bridge-b2br-late-connection.py
06-bridge-b2br-remapping.py
06-bridge-br2b-disconnect-qos1.py
06-bridge-br2b-disconnect-qos2.py
06-bridge-br2b-remapping.py
06-bridge-clean-session-core.py Fix bridge clean session tests 2026-02-13 15:29:12 +00:00
06-bridge-clean-session-csF-lcsF.py
06-bridge-clean-session-csF-lcsN.py
06-bridge-clean-session-csF-lcsT.py
06-bridge-clean-session-csT-lcsF.py
06-bridge-clean-session-csT-lcsN.py
06-bridge-clean-session-csT-lcsT.py
06-bridge-config-reload.py
06-bridge-fail-persist-resend-qos1.py
06-bridge-fail-persist-resend-qos2.py
06-bridge-no-local.py
06-bridge-outgoing-retain.py
06-bridge-per-listener-settings.py
06-bridge-reconnect-local-out.py
06-bridge-remap-receive-wildcard.py
06-bridge-remote-shutdown.py
07-will-control.py
07-will-delay-invalid-573191.py
07-will-delay-reconnect.py Fix will messages being incorrectly delayed. 2026-02-16 11:37:36 +00:00
07-will-delay-recover.py Fix will messages being incorrectly delayed. 2026-02-16 11:37:36 +00:00
07-will-delay-session-expiry-0.py Fix will messages being incorrectly delayed. 2026-02-16 11:37:36 +00:00
07-will-delay-session-expiry.py
07-will-delay-session-expiry2.py
07-will-delay.py Fix will messages being incorrectly delayed. 2026-02-16 11:37:36 +00:00
07-will-disconnect-with-will.py
07-will-invalid-utf8.py
07-will-no-flag.py
07-will-null-topic.py
07-will-null.py
07-will-oversize-payload.py
07-will-per-listener.py
07-will-properties.py
07-will-qos0.py
07-will-reconnect-1273.py
07-will-takeover.py
08-ssl-bridge-helper.py
08-ssl-bridge.py Enable and fix tests on Mac 2026-01-27 10:02:08 +00:00
08-ssl-connect-cert-auth-crl.py
08-ssl-connect-cert-auth-expired-allowed.py
08-ssl-connect-cert-auth-expired.py
08-ssl-connect-cert-auth-revoked.py
08-ssl-connect-cert-auth-without.py
08-ssl-connect-cert-auth.py
08-ssl-connect-dhparam.py
08-ssl-connect-identity.py
08-ssl-connect-no-auth-wrong-ca.py
08-ssl-connect-no-auth.py
08-ssl-connect-no-identity.py
08-ssl-hup-disconnect.py
08-tls-psk-bridge.psk
08-tls-psk-bridge.py
08-tls-psk-pub.psk
08-tls-psk-pub.py
09-acl-access-variants.py
09-acl-change.py
09-acl-empty-file.py
09-auth-bad-method.py
09-extended-auth-change-username.py
09-extended-auth-multistep-reauth.py
09-extended-auth-multistep.py
09-extended-auth-reauth.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
09-extended-auth-single.py
09-extended-auth-single2.py
09-plugin-acl-access-variants.py
09-plugin-acl-change.py
09-plugin-auth-acl-pub-prop.py MOSQ_EVT_ACL_CHECK event is now passed message properties where possible. 2026-01-12 23:51:02 +00:00
09-plugin-auth-acl-pub.py
09-plugin-auth-acl-sub-denied.py
09-plugin-auth-acl-sub.py
09-plugin-auth-context-params.py
09-plugin-auth-defer-unpwd-fail.py
09-plugin-auth-defer-unpwd-success.py
09-plugin-auth-msg-params.py
09-plugin-auth-unpwd-fail.py Fix password length not being passed to MOSQ_EVT_BASIC_AUTH events. 2026-02-13 13:14:38 +00:00
09-plugin-auth-unpwd-success.py Fix password length not being passed to MOSQ_EVT_BASIC_AUTH events. 2026-02-13 13:14:38 +00:00
09-plugin-auth-v2-unpwd-fail.py
09-plugin-auth-v2-unpwd-success.py
09-plugin-auth-v3-unpwd-fail.py
09-plugin-auth-v3-unpwd-success.py
09-plugin-auth-v4-unpwd-fail.py
09-plugin-auth-v4-unpwd-success.py
09-plugin-auth-v5-unpwd-fail.py
09-plugin-auth-v5-unpwd-success.py
09-plugin-bad.py
09-plugin-change-id.py
09-plugin-delayed-auth.py Fix connect refused in 09-plugin-delayed-auth test 2026-01-14 13:00:50 +00:00
09-plugin-evt-client-offline.py
09-plugin-evt-message-in.py
09-plugin-evt-message-out.py
09-plugin-evt-psk-key.py
09-plugin-evt-reload.py
09-plugin-evt-subscribe.py
09-plugin-evt-tick.py
09-plugin-evt-unsubscribe.py
09-plugin-load-acl.py Fix callback handling when using plugin_load. 2026-01-29 14:10:10 +00:00
09-plugin-load-basic-auth.py Fix callback handling when using plugin_load. 2026-01-29 14:10:10 +00:00
09-plugin-load-extended-auth.py Fix callback handling when using plugin_load. 2026-01-29 14:10:10 +00:00
09-plugin-publish.py
09-plugin-unsupported.py
09-pwfile-parse-invalid.py
10-listener-mount-point.py
11-message-expiry.py
11-persistence-autosave-changes.py
11-persistent-subscription-no-local.py
11-persistent-subscription.py
11-pub-props.py
11-subscription-id.py
12-prop-assigned-client-identifier.py
12-prop-maximum-packet-size-broker.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
12-prop-maximum-packet-size-publish-qos1.py Fix outgoing maximum-packet-size limit check. 2026-02-15 23:00:32 +00:00
12-prop-maximum-packet-size-publish-qos2.py Fix outgoing maximum-packet-size limit check. 2026-02-15 23:00:32 +00:00
12-prop-response-topic-correlation-data.py
12-prop-response-topic.py
12-prop-server-keepalive.py Set max_packet_size to 2,000,000 bytes by default 2026-01-13 12:15:46 +00:00
12-prop-subpub-content-type.py
12-prop-subpub-payload-format.py
13-websocket-bad-origin.py
14-dynsec-acl.py
14-dynsec-allow-wildcard.py
14-dynsec-anon-group.py
14-dynsec-auth.py
14-dynsec-client-invalid.py
14-dynsec-client.py
14-dynsec-config-init-env.py
14-dynsec-config-init-file.py
14-dynsec-config-init-random.py
14-dynsec-default-access.py
14-dynsec-disable-client.py
14-dynsec-group-invalid.py
14-dynsec-group.py
14-dynsec-modify-client.py
14-dynsec-modify-group.py
14-dynsec-modify-role.py
14-dynsec-plugin-invalid.py
14-dynsec-role-invalid.py
14-dynsec-role.py
15-persist-bridge-queue.py
15-persist-client-drop-expired-messages.py
15-persist-client-expired-session.py
15-persist-client-msg-in-v3-1-1.py
15-persist-client-msg-in-v5-0.py
15-persist-client-msg-modify-acl.py
15-persist-client-msg-out-clear-v3-1-1.py
15-persist-client-msg-out-dup-v3-1-1.py
15-persist-client-msg-out-queue-v3-1-1.py
15-persist-client-msg-out-v3-1-1-db.py
15-persist-client-msg-out-v3-1-1.py
15-persist-client-msg-out-v5-0.py
15-persist-client-v3-1-1.py
15-persist-client-v5-0.py
15-persist-client-will.py
15-persist-migrate-db.py
15-persist-publish-properties-v5-0.py
15-persist-retain-clear.py
15-persist-retain-v3-1-1.py
15-persist-retain-v5-0.py
15-persist-subscription-v3-1-1.py
15-persist-subscription-v5-0.py
16-cmd-args.py
16-config-huge.py Fix tests when building with WITH_WEBSOCKETS=no. 2026-02-14 23:56:27 +00:00
16-config-includedir.py
16-config-missing.py
16-config-parse-errors-tls-psk.py
16-config-parse-errors-tls.py
16-config-parse-errors-without-tls.py
17-control-list-listeners.py
17-control-list-plugins.py
17-control-missing-endpoint.py
20-sparkplug-aware.py
20-sparkplug-compliance.py
21-proxy-bad-version.py
21-proxy-v1-bad.py
21-proxy-v1-success.py
21-proxy-v2-bad-config.py
21-proxy-v2-bad-header.py
21-proxy-v2-ipv4.py
21-proxy-v2-ipv6.py
21-proxy-v2-local.py
21-proxy-v2-long-tlv.py
21-proxy-v2-lost-connection.py
21-proxy-v2-ssl-cipher.py
21-proxy-v2-ssl-common-name-failure.py Fix inconsistent client disconnect log format 2026-02-03 00:19:59 +00:00
21-proxy-v2-ssl-common-name-success.py
21-proxy-v2-ssl-require-cert-failure.py
21-proxy-v2-ssl-require-cert-success.py
21-proxy-v2-ssl-require-tls-failure.py
21-proxy-v2-ssl-require-tls-success.py
21-proxy-v2-unix.py
21-proxy-v2-websockets.py
22-http-api-acl.py Fix version tests for release candidates 2026-01-18 23:47:10 +00:00
22-http-api-api.py Fix version tests for release candidates 2026-01-18 23:47:10 +00:00
22-http-api-auth.pwfile
22-http-api-auth.py
22-http-api-file.py
22-http-api-tls.py
23-security-acl-file-reload.py
23-security-password-file-reload.py
CMakeLists.txt Don't enforce receive-maximum on the broker 2026-02-04 21:37:51 +00:00
dynamic-security-init.json
dynsec_helper.py
Makefile Fix will messages being incorrectly delayed. 2026-02-16 11:37:36 +00:00
mosq_test_helper.py
msg_sequence_test.py
ntest.py
persist_module_helper.py
persist_sqlite.py
prop_subpub_helper.py
proxy_helper.py
readme.txt
test.py Fix will messages being incorrectly delayed. 2026-02-16 11:37:36 +00:00
test.supp

----- Broker Tests -----

This folder contains a number of tests to exercise the functionality of the
broker. Feel free to add more.

Numbering is as follows:

01: Connection tests
02: Subscribe/unsubscribe tests
03: Publish tests
04: Retained message tests
05: Session management tests
06: Bridge tests
07: Will tests
08: TLS tests
09: Auth tests
10: Listener tests
11: Persistence tests
12: Property tests
13: Malformed tests
14: Dynamic security tests