diff --git a/tests/Makefile b/tests/Makefile index c87e065..d96647a 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,7 @@ SUB= +all:runtests + tests: @set -e; \ for i in $(SUB)*-tests/Makefile; do \ diff --git a/tests/Makefile.opts b/tests/Makefile.opts index 0fdf387..473f0e3 100644 --- a/tests/Makefile.opts +++ b/tests/Makefile.opts @@ -1,7 +1,9 @@ # GCC # CXXFLAGS = -Wextra -Wall -std=gnu++11 -fno-exceptions -fno-threadsafe-statics -CXXFLAGS=-D_GNU_SOURCE -Werror=return-type -std=gnu++11 -Wall +EXTRA_CXXFLAGS=-g3 -O0 + +CXXFLAGS=-D_GNU_SOURCE -Werror=return-type -std=gnu++17 -Wall -g3 -O0 # CLANG SANITIZE # CXX=clang diff --git a/tests/compile-test/Makefile b/tests/compile-test/Makefile index 61c33b5..34faccd 100644 --- a/tests/compile-test/Makefile +++ b/tests/compile-test/Makefile @@ -4,7 +4,7 @@ include ../Makefile.opts APP_NAME := tinymqtt-test -ARDUINO_LIBS := AUnit AceCommon AceTime TinyMqtt EspMock ESP8266WiFi ESPAsync TinyConsole +ARDUINO_LIBS := AUnit AceCommon AceTime TinyMqtt EspMock ESP8266WiFi ESPAsync ESP8266mDNS TinyConsole ARDUINO_LIB_DIRS := ../../../EspMock/libraries EPOXY_CORE := EPOXY_CORE_ESP8266 DUMMY := 1 diff --git a/tests/local-tests/local-tests.ino b/tests/local-tests/local-tests.ino index ec74611..1379a76 100644 --- a/tests/local-tests/local-tests.ino +++ b/tests/local-tests/local-tests.ino @@ -29,6 +29,15 @@ void onPublish(const MqttClient* srce, const Topic& topic, const char* payload, lastLength = length; } +test(local_not_connected_by_default) +{ + MqttClient client; + assertEqual(client.connected(), false); + + MqttBroker broker(1883); + assertEqual(broker.connected(), false); +} + test(local_client_should_unregister_when_destroyed) { assertEqual(broker.clientsCount(), (size_t)0); @@ -73,27 +82,36 @@ test(local_client_do_not_disconnect_after_publishing_and_long_inactivity) assertEqual(published.size(), (size_t)1); // client has received something } -#if 0 test(local_connect) { assertEqual(broker.clientsCount(), (size_t)0); - MqttClient client; + MqttClient client(&broker); assertTrue(client.connected()); assertEqual(broker.clientsCount(), (size_t)1); } +test(local_publish_to_nowhere) +{ + published.clear(); + assertEqual(broker.clientsCount(), (size_t)0); + + MqttClient publisher; + MqttError status = publisher.publish("a/b"); + assertEqual(status, MqttError::MqttNowhereToSend); +} + test(local_publish_should_be_dispatched) { published.clear(); assertEqual(broker.clientsCount(), (size_t)0); - MqttClient subscriber; + MqttClient subscriber(&broker, ""); subscriber.subscribe("a/b"); subscriber.subscribe("a/c"); subscriber.setCallback(onPublish); - MqttClient publisher; + MqttClient publisher(&broker); publisher.publish("a/b"); publisher.publish("a/c"); publisher.publish("a/c"); @@ -108,16 +126,16 @@ test(local_publish_should_be_dispatched_to_local_clients) published.clear(); assertEqual(broker.clientsCount(), (size_t)0); - MqttClient subscriber_a("A"); + MqttClient subscriber_a(&broker, "A"); subscriber_a.setCallback(onPublish); subscriber_a.subscribe("a/b"); subscriber_a.subscribe("a/c"); - MqttClient subscriber_b("B"); + MqttClient subscriber_b(&broker, "B"); subscriber_b.setCallback(onPublish); subscriber_b.subscribe("a/b"); - MqttClient publisher; + MqttClient publisher(&broker); publisher.publish("a/b"); publisher.publish("a/c"); @@ -133,11 +151,11 @@ test(local_unsubscribe) published.clear(); assertEqual(broker.clientsCount(), (size_t)0); - MqttClient subscriber; + MqttClient subscriber(&broker, ""); subscriber.setCallback(onPublish); subscriber.subscribe("a/b"); - MqttClient publisher; + MqttClient publisher(&broker); publisher.publish("a/b"); subscriber.unsubscribe("a/b"); @@ -153,9 +171,9 @@ test(local_nocallback_when_destroyed) published.clear(); assertEqual(broker.clientsCount(), (size_t)0); - MqttClient publisher; + MqttClient publisher(&broker); { - MqttClient subscriber; + MqttClient subscriber(&broker); subscriber.setCallback(onPublish); subscriber.subscribe("a/b"); publisher.publish("a/b"); @@ -165,7 +183,6 @@ test(local_nocallback_when_destroyed) assertEqual(published.size(), (size_t)1); // Only one publish has been received } -#endif //---------------------------------------------------------------------------- // setup() and loop()