ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "greentea-client/test_env.h"
00003 #include "unity.h"
00004 #include "utest.h"
00005 
00006 using namespace utest::v1;
00007 
00008 
00009 // IP parsing verification
00010 void test_ip_accept(const char *string, nsapi_addr_t addr) {
00011     SocketAddress address;
00012     TEST_ASSERT(address.set_ip_address(string));
00013     TEST_ASSERT(address == SocketAddress(addr));
00014 }
00015 
00016 template <const char *string>
00017 void test_ip_reject() {
00018     SocketAddress address;
00019     TEST_ASSERT(!address.set_ip_address(string));
00020     TEST_ASSERT(!address);
00021 }
00022 
00023 #define TEST_IP_ACCEPT(name, string, ...)           \
00024 void name() {                                       \
00025     nsapi_addr_t addr = __VA_ARGS__;                \
00026     test_ip_accept(string, addr);                   \
00027 }
00028 
00029 #define TEST_IP_REJECT(name, string)                \
00030 void name() {                                       \
00031     test_ip_reject(string);                         \
00032 }
00033 
00034 
00035 // Test cases
00036 TEST_IP_ACCEPT(test_simple_ipv4_address,
00037     "12.34.56.78",
00038     {NSAPI_IPv4 ,{12,34,56,78}})
00039 TEST_IP_ACCEPT(test_left_weighted_ipv4_address,
00040     "255.0.0.0",
00041     {NSAPI_IPv4 ,{255,0,0,0}})
00042 TEST_IP_ACCEPT(test_right_weighted_ipv4_address,
00043     "0.0.0.255",
00044     {NSAPI_IPv4 ,{0,0,0,255}})
00045 TEST_IP_ACCEPT(test_null_ipv4_address,
00046     "0.0.0.0",
00047     {NSAPI_IPv4 ,{0,0,0,0}})
00048 
00049 TEST_IP_ACCEPT(test_simple_ipv6_address,
00050     "1234:5678:9abc:def0:1234:5678:9abc:def0",
00051     {NSAPI_IPv6 ,{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
00052                  0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}})
00053 TEST_IP_ACCEPT(test_left_weighted_ipv6_address,
00054     "1234:5678::",
00055     {NSAPI_IPv6 ,{0x12,0x34,0x56,0x78,0x00,0x00,0x00,0x00,
00056                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}})
00057 TEST_IP_ACCEPT(test_right_weighted_ipv6_address,
00058     "::1234:5678",
00059     {NSAPI_IPv6 ,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00060                  0x00,0x00,0x00,0x00,0x12,0x34,0x56,0x78}})
00061 TEST_IP_ACCEPT(test_hollowed_ipv6_address,
00062     "1234:5678::9abc:def8",
00063     {NSAPI_IPv6 ,{0x12,0x34,0x56,0x78,0x00,0x00,0x00,0x00,
00064                  0x00,0x00,0x00,0x00,0x9a,0xbc,0xde,0xf8}})
00065 TEST_IP_ACCEPT(test_null_ipv6_address,
00066     "::",
00067     {NSAPI_IPv6 ,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00068                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}})
00069 
00070 
00071 // Test setup
00072 utest::v1::status_t  test_setup(const size_t number_of_cases) {
00073     GREENTEA_SETUP(10, "default_auto");
00074     return verbose_test_setup_handler(number_of_cases);
00075 }
00076 
00077 Case cases[] = {
00078     Case("Simple IPv4 address", test_simple_ipv4_address),
00079     Case("Left-weighted IPv4 address", test_left_weighted_ipv4_address),
00080     Case("Right-weighted IPv4 address", test_right_weighted_ipv4_address),
00081     Case("Null IPv4 address", test_null_ipv4_address),
00082 
00083     Case("Simple IPv6 address", test_simple_ipv6_address),
00084     Case("Left-weighted IPv6 address", test_left_weighted_ipv6_address),
00085     Case("Right-weighted IPv6 address", test_right_weighted_ipv6_address),
00086     Case("Hollowed IPv6 address", test_hollowed_ipv6_address),
00087     Case("Null IPv6 address", test_null_ipv6_address),
00088 };
00089 
00090 Specification specification(test_setup, cases);
00091 
00092 int main() {
00093     return !Harness::run(specification);
00094 }