Commit Graph

403 Commits

Author SHA1 Message Date
Roger A. Light
28c11f4cce Fix tests where broker suddenly disconnects client
This seems to be required just on more modern Python versions.
2019-11-06 14:07:07 +00:00
Roger A. Light
aceabcdef2 Tidy up async test outputs. 2019-11-06 13:37:35 +00:00
Jerome Malinge
fba1f6bc0a Fix test on invalid null will topic value in connect packet
Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:58:00 +01:00
Jerome Malinge
11dc077d15 Fix test on invalid reserved bit value in connect packet
Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:57:58 +01:00
Jerome Malinge
ce0b0d23d6 Add send of pubcomp in 02-subpub-qos2 script
To keep the broker session working while launching several tests on
the same broker, the last packet of this transaction must be sent.

Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:57:55 +01:00
Jerome Malinge
d76e5fd199 Fix way of sending packets in compliance tests
According to the documentation of python 3 socket::send method
(https://docs.python.org/3/library/socket.html#socket.socket.send),
the call to send must be retry until all data is sent while sending
packet with a "large" amount of data.

Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:57:38 +01:00
Roger A. Light
b2a9daf1db 02 broker subpub tests with v5 support 2019-10-13 18:08:44 +01:00
Roger A. Light
b966455f21 02 broker subscribe tests with v5 support 2019-10-13 13:04:44 +01:00
Roger A. Light
3261c30d08 02 broker unsubscribe tests with v5 support 2019-10-13 12:58:40 +01:00
Roger A. Light
e0d0af54a5 01 broker tests with v5 support 2019-10-10 17:15:19 +01:00
Roger A. Light
7b73cd2bf7 04 broker tests with v5 support 2019-10-10 15:35:43 +01:00
Roger A. Light
b9360bb147 Fixes for 06 broker v5 tests 2019-10-10 14:51:32 +01:00
Roger A. Light
cae7ddeec1 10 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
feb79d5880 11 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
c453d2cb3e 07 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
48f1ca8538 05 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
16f57cc834 Simpler v5 session expiry in tests. 2019-10-10 14:20:00 +01:00
Roger A. Light
98d600099b 03 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
7ea5ba845b Add "ready" message to will takeover test. 2019-10-10 14:20:00 +01:00
Roger A. Light
09e95fff5a Add test for session takeover and wills. 2019-10-10 14:20:00 +01:00
Roger A. Light
87bd08b0e0 Add MQTT v5 support to bridge tests. 2019-10-09 13:31:23 +01:00
Roger A. Light
fad184c9c2 Bridge remapping refactoring and tests. 2019-10-03 16:46:15 +01:00
Roger A. Light
8463c33720 Refactor property remaining length calculation. 2019-10-03 10:36:24 +01:00
Roger A. Light
c471dfb201 Fix sub topics being limited to 200 chars instead of 200 levels
Closes #1441. Thanks to Christoph Krey.
2019-10-02 13:00:01 +01:00
Roger A. Light
093c8f90f5 Fix publish props not being passed to v5 msg callback for QoS 2 msgs.
Closes #1432. Thanks to Magnus Galåen.
2019-09-26 16:47:34 +01:00
Roger A. Light
4db1e80410 More allow_zero_length_clientid fixes.
Closes #1429. Thanks to Dustin Sallings.
2019-09-26 11:53:58 +01:00
Roger A. Light
539c1b9bcb Tests for zero length client id, plus fix for one case where it was allowed 2019-09-26 11:14:52 +01:00
Roger A. Light
8dcb993274 Some tests weren't using python3. 2019-09-24 22:51:55 +01:00
Roger A. Light
1a8c44b84f Fix regression on use of mosquitto_connect_async() not working.
Closes #1415 and #1422. Thanks to Karl Palsson, Till Zimmermann and Liam Fry.
2019-09-24 20:15:04 +01:00
Roger A. Light
3e094991c4 Hopeful fix for travis. 2019-09-17 12:50:48 +01:00
Roger A. Light
e479a80cbe Extra test for issue 1401. 2019-09-17 12:50:37 +01:00
Roger A. Light
1066750931 Restrict topic hierarchy to 200 levels to prevent possible stack overflow.
Closes #1412. Thanks to Ryan Shaw.
2019-09-15 22:57:36 +01:00
Roger A. Light
9bbf5bb65f Fix 11-message-expiry test when running under valgrind 2019-09-11 08:51:51 +01:00
Roger A. Light
367fc0cffc Updated SSL test files, plus a new empty crl file. 2019-09-10 13:34:14 +01:00
Roger A. Light
3c35c6cdd9 Fix Will not being sent if will delay greater than session expiry.
Closes #1401. Thanks to Will Lisac.
2019-09-05 12:46:46 +01:00
Roger A. Light
f6b22f8248 Fix clients using use_identity_as_* being disconnected on SIGHUP.
Closes #1402. Thanks to twegener-embertec.
2019-09-05 11:37:43 +01:00
Roger A. Light
be07c842d1 Don't error trying to cleanup missing persistence file. 2019-08-07 11:32:26 +01:00
Roger A. Light
50695f8103 Fix v5 DISCONNECT packets with remaining length == 2.
These were being treated as a protocol error.

Closes #1367. Thanks to Frank Pagliughi.
2019-08-05 21:13:23 +01:00
Roger A. Light
efc8ed39af Fix incoming msgs not being removed when there are no subs
Fix incoming messages not being removed for a client if the topic being
published to does not have any subscribers.

Closes #1322. Thanks to Yannic Schröder.
2019-07-31 18:52:51 +01:00
Roger A. Light
696a9b8019 Fix incomgin QoS 2 with max_inflight_messages set to 1.
Closes #1332. Thanks to xmas79.
2019-07-30 23:25:12 +01:00
Roger A. Light
552059e17d Pedantic test fixes from failgrind. 2019-07-30 15:01:12 +01:00
Roger A. Light
f14a47c015 Further attempt 2019-05-29 22:02:40 +01:00
Roger A. Light
18b897e5e3 Attempt to fix 11-message-expiry for travis. 2019-05-29 21:31:27 +01:00
Roger A. Light
de695af8c0 Fix zero length client ids being rejected for MQTT v5 clients.
This was happening when clean start was set to true.
2019-05-29 16:07:45 +01:00
Roger A. Light
e51e40e95c Fix incorrect shared subscription topic of '$shared.' 2019-05-29 15:40:17 +01:00
Roger A. Light
e43a278652 Fix test compilation. 2019-05-28 22:12:13 +01:00
Roger A. Light
999c478c88 Fixes for bug #1273
* Fix Will message for a persistent client incorrectly being sent when the client reconnects after a clean disconnect.
* Fix Will message for a persistent client not being sent on disconnect.
* Fix mosquitto_pub not using the `-c` option.

Thanks to Yannic Schröder.

Closes #1273.
2019-05-21 17:08:52 +01:00
Roger A. Light
41cb9bf750 Simplify ping checking in tests. 2019-05-13 21:17:04 +01:00
Roger A. Light
cd3877e628 Fix detection of incoming v3.1/v3.1.1 bridges.
Closes #1263. Thanks to vrst37.
2019-05-08 11:53:51 +01:00
Roger A. Light
f64d3b1e5c Fix broker originated messages not being sent.
This occurred when `check_retain_source` was set to true.

Closes #1245. Thanks to Christoph Krey.
2019-04-30 13:25:54 +01:00
Roger A. Light
ab77b5c000 Test for Will property usage. 2019-04-30 13:25:32 +01:00
Roger A. Light
3b4a5419c3 Build fixes around CFLAGS et al.
- Split CFLAGS and CPPFLAGS, and LDFLAGS and LDADD/LIBADD.
- test/unit now respects CPPFLAGS and LDFLAGS.

Closes #1232. Thanks to Greg Troxel.
2019-04-26 17:06:54 +01:00
Roger A. Light
d6c7923d16 Add make check and document testing procedure.
Also support test target in cmake.
2019-04-26 16:25:35 +01:00
Roger A. Light
17eae08c5e Test build fixes. 2019-04-17 21:25:25 +01:00
Roger A. Light
56757df512 Bump version and changelog details. 2019-04-17 17:44:02 +01:00
Roger A. Light
689989cc56 Fix inflight quota inc/dec for both broker and library. 2019-04-17 16:15:41 +01:00
Roger A. Light
8531cb1d79 Separate broker message queues into in/out.
This allows and includes better flow control handling for QoS>0.
2019-04-17 09:29:34 +01:00
Roger A. Light
8b532705d9 Fix test datatype. 2019-04-11 11:04:16 +01:00
Roger A. Light
969885d967 Crude random client testing
This needs a lot of improvement, but is a reasonable start.
2019-04-10 22:51:33 +01:00
Roger A. Light
638ab2f969 Fix unexpected behaviour when reusing a mid after a publish is denied. 2019-04-10 22:33:31 +01:00
Roger A. Light
052c2ffa05 Clean unit test directory. 2019-04-10 08:40:55 +01:00
Roger A. Light
2e7dcee342 Multistep auth, plus reauth, plus tests. 2019-04-04 22:08:55 +01:00
Roger A. Light
c1776a0b39 Add reauth parameter for extended auth. 2019-04-04 15:09:53 +01:00
Roger A. Light
0f6e51d582 Code and tests for returning single stage auth data back to client. 2019-04-04 14:36:03 +01:00
Roger A. Light
494f35bd8d Add mosquitto_set_username() plugin function. 2019-04-04 12:39:38 +01:00
Roger A. Light
a29a7dadc6 Basic plugin support for single step extended auth. 2019-04-04 11:37:04 +01:00
Roger A. Light
2fcf246f07 Fix potential crashes on memory alloc failure in tests only. 2019-04-03 16:14:15 +01:00
Roger A. Light
fb8a2baaad Refactor client msgs to use utlist to reduce code complexity. 2019-04-03 14:13:12 +01:00
Roger A. Light
fe854d3a64 Refactor handle__connect() ahead of extended auth changes. 2019-04-03 10:50:19 +01:00
Roger A. Light
636d0f1f74 Fix printing on broker tests. 2019-04-02 14:06:28 +01:00
Roger A. Light
a8dce08618 Always kill broker on failure. 2019-04-02 13:58:44 +01:00
Roger A. Light
950dabcf9b Test for leaking will on connect denied. 2019-04-02 13:11:20 +01:00
Roger A. Light
e5f58a8ff3 Test for unsupported extended auth. 2019-04-02 10:22:16 +01:00
Roger A. Light
0d7523c309 Use helpers in all tests. 2019-04-02 10:22:16 +01:00
Roger A. Light
7e49d91898 Convert tests to Python 3 2019-03-28 21:32:12 +00:00
Roger A. Light
75c2a39d2c Send topic alias maximum from the broker. 2019-03-27 17:38:35 +00:00
Roger A. Light
2a5995106a Fix Coverity Scan defect 140436. Null dereference. 2019-03-26 12:05:23 +00:00
Roger A. Light
43c159b9a5 Support and tests for saving message expiry interval. 2019-03-25 23:17:57 +00:00
Roger A. Light
5f0cb3a44c Possible fix for errant test. 2019-03-25 07:18:29 +00:00
Roger A. Light
61fe26474e Test and fix for client message prop persistence. 2019-03-25 06:55:45 +00:00
Roger A. Light
5841da2c36 Tests for persisting message store properties. 2019-03-24 21:38:00 +00:00
Roger A. Light
efb20625fb Code and tests for persisting client msg properties. 2019-03-23 22:52:08 +00:00
Roger A. Light
48253bc12c Persist message store publish properties. 2019-03-21 21:43:36 +00:00
Roger A. Light
2f15a7be2b Add subscription-identifier and options to persistence. 2019-03-21 14:19:48 +00:00
Roger A. Light
214a5f3aab v5 persistence file format
This includes changes to improve read/write performance.
It is not complete, and will have further changes to add properties and anything else required for MQTT v5.
2019-03-21 00:35:56 +00:00
Roger A. Light
e249ca7e91 Separate the persistence actual writing functions. 2019-03-19 16:27:34 +00:00
Roger A. Light
7a53b28080 Start of persistence writing tests. 2019-03-19 16:27:34 +00:00
Roger A. Light
320ddc1303 Merge branch 'master'
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	client/Makefile
	config.mk
	installer/mosquitto.nsi
	installer/mosquitto64.nsi
	lib/mosquitto.h
	lib/mqtt3_protocol.h
	lib/util_mosq.c
	set-version.sh
	snap/snapcraft.yaml
	src/bridge.c
	src/database.c
	src/handle_connack.c
	src/loop.c
	src/persist.c
	test/broker/Makefile
2019-03-16 10:05:38 +00:00
Roger A. Light
a7d0660749 Separate out persist reading code from restoring code. 2019-03-16 09:42:15 +00:00
Roger A. Light
9411d94842 Start of tests for persistence reading. 2019-03-14 20:57:25 +00:00
Roger A. Light
c944f840a6 Don't advertise shared subs as unavailable any more. 2019-03-14 10:58:15 +00:00
Roger Light
8a8d13cf96 Shared subscription support. 2019-03-14 06:48:33 +00:00
Roger A. Light
2ea97a6cd9 Check for authentication method on CONNECT, and reject. 2019-03-06 16:12:36 +00:00
Roger A. Light
ac91144495 Session expiry interval support - not working for file persistence. 2019-03-06 14:47:16 +00:00
Roger A. Light
105ad17dc6 Tests and support for QoS 1 reporting of no subscribers on publish. 2019-03-04 07:36:35 +00:00
Roger A. Light
7b002abd7e Sort tests. 2019-03-03 22:07:44 +00:00
Roger A. Light
7448f0cab8 Update merged tests. 2019-03-03 22:04:22 +00:00
Roger A. Light
6a1ac70ee6 Disallow writing to $ topics where appropriate. 2019-03-03 22:00:30 +00:00
Roger A. Light
7207041428 Fix delayed bridge local subs causing missing messages.
Closes #1174. Thanks to beville.

Bug: https://github.com/eclipse/mosquitto/issues/1174
2019-02-28 15:38:15 +00:00
Roger A. Light
36f10c7623 Update tests to not use TLS 1.0. 2019-02-28 12:08:26 +00:00
Roger A. Light
571c643b3d More C90 fixes for travis. 2019-02-27 23:17:05 +00:00
Roger A. Light
72941db546 Coverity fixes
1399064
1399065
1398655
1398656
1398654
1399067
1399066
1399063
1399060
1399059
1399068
1399062
1398657
1398653
1302848
1302847
1399070
2019-02-27 12:38:20 +00:00
Roger A. Light
91a2932e25 Add missing test. 2019-02-27 09:37:02 +00:00
Roger A. Light
b2c0c3d573 Handle DISCONNECT with will. 2019-02-27 09:27:34 +00:00
Roger A. Light
3b6b6d5fa8 Test improvements
And some related fixes.
2019-02-27 09:27:34 +00:00
Roger A. Light
c506c8335b Will delay tests and implementation. 2019-02-27 09:27:34 +00:00
Roger A. Light
5aabc171b0 Merge branch 'mqtt5' into develop 2019-02-26 18:51:31 +00:00
Roger A. Light
c3c8c99f5d Fix dropping oversize messages for QoS>0. 2019-02-21 08:31:54 +00:00
Roger A. Light
1d17ced449 Broker configurable max_packet_size
Plus tests.
2019-02-19 15:57:20 +00:00
Roger A. Light
b9b8e0ff2a Add client support for outgoing maximum packet size. 2019-02-19 15:14:34 +00:00
Roger A. Light
1877f8a326 Tests and implementation for maximum packet size.
This is for broker outgoing connack and publish packets only.
2019-02-18 19:50:51 +00:00
Roger A. Light
8db16591fa Test and fix for subscription identifiers not being updated.
Closes #1169. Thanks to Christoph Krey.
2019-02-18 12:24:19 +00:00
Roger A. Light
66c1e2ccf0 Add mosquitto_unsubscribe_multiple(), plus tests. 2019-02-17 20:59:16 +00:00
Roger A. Light
c823073be6 v5 unsubscribe test, single topic. 2019-02-17 19:47:53 +00:00
Roger A. Light
1479c57e34 v5 report reason code=no sub when unsubscribing. 2019-02-17 10:14:02 +00:00
Roger A. Light
1ec0cea34a Fix missing reason_code on v5 UNSUBACK.
Closes #1167. Thanks to Christoph Krey.
2019-02-17 09:30:06 +00:00
Roger A. Light
5e8199323b Fix clients being disconnected when ACLs are in use.
This only affects the case where a client connects using a username, and
the anonymous ACL list is defined but specific user ACLs are not
defined.

Closes #1162. Thanks to quonb.
2019-02-14 17:46:01 +00:00
Roger A. Light
f9f3fdbfe3 Fix pattern matching test. 2019-02-13 12:05:43 +00:00
Roger A. Light
d5dfd575b3 Fix broker TLS tests. 2019-02-13 11:51:52 +00:00
Roger A. Light
baa4642bd3 Generic ptest implementation. 2019-02-12 19:06:14 +00:00
Roger A. Light
b4a94f5900 Fix some ssl tests. 2019-02-12 18:51:19 +00:00
Roger A. Light
950ad8d16f Speed up pattern matching test. 2019-02-12 18:29:05 +00:00
Roger A. Light
016ce7dca5 Simplify ptest implementation. 2019-02-12 18:28:54 +00:00
Roger A. Light
e2f269bda8 Test duration printing on ptest. 2019-02-12 17:12:38 +00:00
Roger A. Light
084062c85e Merge branch 'fixes' into mqtt5 2019-02-12 17:05:42 +00:00
Roger A. Light
bb914b985c Fix mosquitto_topic_matches_sub() rc with sub=="topic/#abc".
This now returns MOSQ_ERR_INVAL as expected.
2019-02-12 11:34:45 +00:00
Roger A. Light
b6fb2c5824 Fix property write test after function changes. 2019-02-12 11:34:45 +00:00
Roger Light
c40957a7d8 Fix and tests for CVE-2018-12546. 2019-02-08 13:01:07 +00:00
Roger A. Light
d8505624d0 Fix and tests for security bug #541870. 2019-02-08 13:01:07 +00:00
Roger A. Light
36b5421c59 Fix and tests for security bug #543401. 2019-02-08 13:01:07 +00:00
Roger Light
5236295159 Handle mismatched handshakes properly.
For example, a QoS1 PUBLISH with QoS2 reply.
2019-02-08 13:01:07 +00:00
Roger A. Light
873ffce27a Send DISCONNECT on invalid topic alias, plus test. 2019-01-25 22:53:31 +00:00
Roger A. Light
219f47b07f Add test for multiple unsubscribe. 2019-01-25 21:38:33 +00:00
Roger A. Light
6b977fa198 Test and fixes for expiring retained messages. 2019-01-23 10:00:13 +00:00
Roger A. Light
ca3782b38d Test and fixes for will message expiry interval. 2019-01-22 17:51:57 +00:00
Roger A. Light
6a59e92db8 Set remaining message expiry interval when republishing. 2019-01-22 12:43:52 +00:00
Roger A. Light
0a9885aea1 Rename "resv" in connack to "flags" to better match v5 spec. 2019-01-22 12:12:18 +00:00
Roger A. Light
f9a17e2782 Add alias support to the broker. 2019-01-18 21:30:34 +00:00
Roger A. Light
1cc3e558ee Test for server keepalive. 2019-01-18 21:14:23 +00:00
Roger Light
8513af4da5 Tests and fixes for shortened DISCONNECT packets. 2019-01-17 18:51:23 +00:00
Roger Light
4b97a90ef9 Tests and fixes for truncated PUB* packets
For the cases where reason_code is 0, or properties are missing.
2019-01-17 17:24:31 +00:00
Roger A. Light
326292681a Add maximum-qos support to broker and client.
This comes in the form of:

* Per listener maximum_qos option, which can be in the range 0-2.
* Changes to mosquitto_publish*() to return MOSQ_ERR_QOS_NOT_SUPPORTED
  if attempting to publish with a higher QoS than supported.
* Bridges will downgrade messages to match the maximum QoS.

More tests on the broker side (specifically bridges) are required. This
needs bridge support for MQTT 5 first.
2019-01-09 18:03:01 +00:00
Roger Light
930a314caf Add reason_code to on_publish_v5 callback. 2019-01-09 17:06:43 +00:00
Roger Light
740a128769 Support PUBREC reason code >=0x80 as partial qos2 flow. 2019-01-09 15:00:12 +00:00
Roger Light
6119f83571 Add receive-maximum=1 test for client. 2019-01-09 13:56:15 +00:00
Roger A. Light
aeba5b5d0d Fix and tests for client side receive-maximum. 2019-01-09 12:21:15 +00:00
Roger Light
9aec82b0e1 Finalise test proplists in the packet gen funcs.
This makes it easier to add part of a proplist in the test itself, and have the gen func add some more.
2019-01-08 18:37:38 +00:00
Roger Light
67c1d4453e Receive maximum support for clients. 2019-01-08 14:24:41 +00:00
Roger A. Light
6eefb45b44 Broker tests for Receive Maximum. 2019-01-03 23:32:39 +00:00
Roger A. Light
00c4fd137a More UTF-8 tests. 2018-12-29 21:27:24 +00:00