Easily add all supported connectivity methods to your mbed OS project
esp8266-driver/TESTS/net/connectivity/main.cpp@0:615f90842ce8, 2017-07-12 (annotated)
- Committer:
- MACRUM
- Date:
- Wed Jul 12 10:52:58 2017 +0000
- Revision:
- 0:615f90842ce8
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MACRUM | 0:615f90842ce8 | 1 | #include "mbed.h" |
MACRUM | 0:615f90842ce8 | 2 | #include "greentea-client/test_env.h" |
MACRUM | 0:615f90842ce8 | 3 | #include "unity.h" |
MACRUM | 0:615f90842ce8 | 4 | #include "utest.h" |
MACRUM | 0:615f90842ce8 | 5 | |
MACRUM | 0:615f90842ce8 | 6 | #include "ESP8266Interface.h" |
MACRUM | 0:615f90842ce8 | 7 | |
MACRUM | 0:615f90842ce8 | 8 | using namespace utest::v1; |
MACRUM | 0:615f90842ce8 | 9 | |
MACRUM | 0:615f90842ce8 | 10 | #ifndef MBED_CFG_ESP8266_TX |
MACRUM | 0:615f90842ce8 | 11 | #define MBED_CFG_ESP8266_TX D1 |
MACRUM | 0:615f90842ce8 | 12 | #endif |
MACRUM | 0:615f90842ce8 | 13 | |
MACRUM | 0:615f90842ce8 | 14 | #ifndef MBED_CFG_ESP8266_RX |
MACRUM | 0:615f90842ce8 | 15 | #define MBED_CFG_ESP8266_RX D0 |
MACRUM | 0:615f90842ce8 | 16 | #endif |
MACRUM | 0:615f90842ce8 | 17 | |
MACRUM | 0:615f90842ce8 | 18 | #ifndef MBED_CFG_ESP8266_DEBUG |
MACRUM | 0:615f90842ce8 | 19 | #define MBED_CFG_ESP8266_DEBUG false |
MACRUM | 0:615f90842ce8 | 20 | #endif |
MACRUM | 0:615f90842ce8 | 21 | |
MACRUM | 0:615f90842ce8 | 22 | |
MACRUM | 0:615f90842ce8 | 23 | // Bringing the network up and down |
MACRUM | 0:615f90842ce8 | 24 | template <int COUNT> |
MACRUM | 0:615f90842ce8 | 25 | void test_bring_up_down() { |
MACRUM | 0:615f90842ce8 | 26 | ESP8266Interface net(MBED_CFG_ESP8266_TX, MBED_CFG_ESP8266_RX, MBED_CFG_ESP8266_DEBUG); |
MACRUM | 0:615f90842ce8 | 27 | net.set_credentials(MBED_CFG_ESP8266_SSID, MBED_CFG_ESP8266_PASS); |
MACRUM | 0:615f90842ce8 | 28 | |
MACRUM | 0:615f90842ce8 | 29 | for (int i = 0; i < COUNT; i++) { |
MACRUM | 0:615f90842ce8 | 30 | int err = net.connect(); |
MACRUM | 0:615f90842ce8 | 31 | TEST_ASSERT_EQUAL(0, err); |
MACRUM | 0:615f90842ce8 | 32 | |
MACRUM | 0:615f90842ce8 | 33 | printf("MBED: IP Address %s\r\n", net.get_ip_address()); |
MACRUM | 0:615f90842ce8 | 34 | printf("MBED: Netmask %s\r\n", net.get_netmask()); |
MACRUM | 0:615f90842ce8 | 35 | printf("MBED: Gateway %s\r\n", net.get_gateway()); |
MACRUM | 0:615f90842ce8 | 36 | TEST_ASSERT(net.get_ip_address()); |
MACRUM | 0:615f90842ce8 | 37 | TEST_ASSERT(net.get_netmask()); |
MACRUM | 0:615f90842ce8 | 38 | TEST_ASSERT(net.get_gateway()); |
MACRUM | 0:615f90842ce8 | 39 | |
MACRUM | 0:615f90842ce8 | 40 | UDPSocket udp; |
MACRUM | 0:615f90842ce8 | 41 | err = udp.open(&net); |
MACRUM | 0:615f90842ce8 | 42 | TEST_ASSERT_EQUAL(0, err); |
MACRUM | 0:615f90842ce8 | 43 | err = udp.close(); |
MACRUM | 0:615f90842ce8 | 44 | TEST_ASSERT_EQUAL(0, err); |
MACRUM | 0:615f90842ce8 | 45 | |
MACRUM | 0:615f90842ce8 | 46 | TCPSocket tcp; |
MACRUM | 0:615f90842ce8 | 47 | err = tcp.open(&net); |
MACRUM | 0:615f90842ce8 | 48 | TEST_ASSERT_EQUAL(0, err); |
MACRUM | 0:615f90842ce8 | 49 | err = tcp.close(); |
MACRUM | 0:615f90842ce8 | 50 | TEST_ASSERT_EQUAL(0, err); |
MACRUM | 0:615f90842ce8 | 51 | |
MACRUM | 0:615f90842ce8 | 52 | err = net.disconnect(); |
MACRUM | 0:615f90842ce8 | 53 | TEST_ASSERT_EQUAL(0, err); |
MACRUM | 0:615f90842ce8 | 54 | } |
MACRUM | 0:615f90842ce8 | 55 | } |
MACRUM | 0:615f90842ce8 | 56 | |
MACRUM | 0:615f90842ce8 | 57 | |
MACRUM | 0:615f90842ce8 | 58 | // Test setup |
MACRUM | 0:615f90842ce8 | 59 | utest::v1::status_t test_setup(const size_t number_of_cases) { |
MACRUM | 0:615f90842ce8 | 60 | char uuid[48] = {0}; |
MACRUM | 0:615f90842ce8 | 61 | GREENTEA_SETUP_UUID(120, "default_auto", uuid, sizeof(uuid)); |
MACRUM | 0:615f90842ce8 | 62 | |
MACRUM | 0:615f90842ce8 | 63 | // create mac address based on uuid |
MACRUM | 0:615f90842ce8 | 64 | uint64_t mac = 0; |
MACRUM | 0:615f90842ce8 | 65 | for (int i = 0; i < sizeof(uuid); i++) { |
MACRUM | 0:615f90842ce8 | 66 | mac += uuid[i]; |
MACRUM | 0:615f90842ce8 | 67 | } |
MACRUM | 0:615f90842ce8 | 68 | mbed_set_mac_address((const char*)mac, /*coerce control bits*/ 1); |
MACRUM | 0:615f90842ce8 | 69 | |
MACRUM | 0:615f90842ce8 | 70 | return verbose_test_setup_handler(number_of_cases); |
MACRUM | 0:615f90842ce8 | 71 | } |
MACRUM | 0:615f90842ce8 | 72 | |
MACRUM | 0:615f90842ce8 | 73 | Case cases[] = { |
MACRUM | 0:615f90842ce8 | 74 | Case("Bringing the network up and down", test_bring_up_down<1>), |
MACRUM | 0:615f90842ce8 | 75 | Case("Bringing the network up and down twice", test_bring_up_down<2>), |
MACRUM | 0:615f90842ce8 | 76 | }; |
MACRUM | 0:615f90842ce8 | 77 | |
MACRUM | 0:615f90842ce8 | 78 | Specification specification(test_setup, cases); |
MACRUM | 0:615f90842ce8 | 79 | |
MACRUM | 0:615f90842ce8 | 80 | int main() { |
MACRUM | 0:615f90842ce8 | 81 | return !Harness::run(specification); |
MACRUM | 0:615f90842ce8 | 82 | } |