From 3ed5af18fdd93a4f8cdb8b9b9492c0a7d4d1851c Mon Sep 17 00:00:00 2001 From: Anurag Kar Date: Mon, 3 Sep 2018 02:31:44 +0530 Subject: [PATCH] HTTP Server Example Tests : Fix various issues * Fixed regex constraints for parsing IP and other parameters from monitor log. * httplib connection timeouts set * Redundent tests (commented out earlier) have been removed from advanced_tests. These tests are already run during unit testing. --- .../http_server_advanced_test.py | 47 +--- .../http_server/advanced_tests/main/main.c | 2 +- .../http_server/advanced_tests/main/tests.c | 241 +----------------- .../advanced_tests/scripts/test.py | 30 +-- .../http_server_persistence_test.py | 4 +- .../persistent_sockets/main/main.c | 4 +- .../persistent_sockets/scripts/adder.py | 2 +- .../simple/http_server_simple_test.py | 4 +- .../protocols/http_server/simple/main/main.c | 4 +- .../http_server/simple/scripts/client.py | 8 +- 10 files changed, 44 insertions(+), 302 deletions(-) diff --git a/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py b/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py index 5241dbaa9..b520461e9 100644 --- a/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py +++ b/examples/protocols/http_server/advanced_tests/http_server_advanced_test.py @@ -62,15 +62,10 @@ def test_examples_protocol_http_server_advanced(env, extra_data): # Parse IP address of STA print "Waiting to connect with AP" - got_ip = dut1.expect(re.compile(r"(?:[\s\S]*)Got IP: (\d+.\d+.\d+.\d+)"), timeout=30)[0] + got_ip = dut1.expect(re.compile(r"(?:[\s\S]*)Got IP: '(\d+.\d+.\d+.\d+)'"), timeout=30)[0] - #print "Leak Tests..." - ## Expected Leak test Logs - #dut1.expect("Leak Test Started...", timeout=15); - #dut1.expect("Leak Test Passed", timeout=15); - - got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Started HTTP server on port: (\d+)"), timeout=15)[0] - result = dut1.expect(re.compile(r"(?:[\s\S]*)Max URI handlers: (\d+)(?:[\s\S]*)Max Open Sessions: (\d+)(?:[\s\S]*)Max Header Length: (\d+)(?:[\s\S]*)Max URI Length: (\d+)(?:[\s\S]*)Max Stack Size: (\d+)"), timeout=15) + got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Started HTTP server on port: '(\d+)'"), timeout=15)[0] + result = dut1.expect(re.compile(r"(?:[\s\S]*)Max URI handlers: '(\d+)'(?:[\s\S]*)Max Open Sessions: '(\d+)'(?:[\s\S]*)Max Header Length: '(\d+)'(?:[\s\S]*)Max URI Length: '(\d+)'(?:[\s\S]*)Max Stack Size: '(\d+)'"), timeout=15) max_uri_handlers = int(result[0]) max_sessions = int(result[1]) max_hdr_len = int(result[2]) @@ -80,31 +75,6 @@ def test_examples_protocol_http_server_advanced(env, extra_data): print "Got IP : " + got_ip print "Got Port : " + got_port - #print "Handler Tests..." - ## Expected Handler Test Logs - #dut1.expect("Test: Register Max URI handlers", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Test: Register Max URI + 1 handlers", timeout=15) - #dut1.expect("no slots left for registering handler", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Test: Unregister 0th handler", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Test: Again unregister 0th handler not registered", timeout=15) - #dut1.expect("handler 0 with method 1 not found", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Test: Register back 0th handler", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Test: Register 0th handler again after registering", timeout=15) - #dut1.expect("handler 0 with method 1 already registered", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Test: Register 1 more handler", timeout=15) - #dut1.expect("no slots left for registering handler", timeout=15) - #dut1.expect("Success") - #dut1.expect("Test: Unregister all handlers", timeout=15) - #dut1.expect("Success", timeout=15) - #dut1.expect("Registering basic handlers", timeout=15) - #dut1.expect("Success", timeout=15) - # Run test script # If failed raise appropriate exception failed = False @@ -121,15 +91,16 @@ def test_examples_protocol_http_server_advanced(env, extra_data): if not client.recv_timeout_test(got_ip, got_port): failed = True - test_size = 50*1024 # 50KB - if not client.packet_size_limit_test(got_ip, got_port, test_size): - print "Ignoring failure" + ## This test fails a lot! Enable when connection is stable + #test_size = 50*1024 # 50KB + #if not client.packet_size_limit_test(got_ip, got_port, test_size): + # print "Ignoring failure" print "Getting initial stack usage..." if not client.get_hello(got_ip, got_port): failed = True - inital_stack = int(dut1.expect(re.compile(r"(?:[\s\S]*)Free Stack for server task: (\d+)"), timeout=15)[0]) + inital_stack = int(dut1.expect(re.compile(r"(?:[\s\S]*)Free Stack for server task: '(\d+)'"), timeout=15)[0]) if inital_stack < 0.1*max_stack_size: print "More than 90% of stack being used on server start" @@ -181,7 +152,7 @@ def test_examples_protocol_http_server_advanced(env, extra_data): if not client.get_hello(got_ip, got_port): failed = True - final_stack = int(dut1.expect(re.compile(r"(?:[\s\S]*)Free Stack for server task: (\d+)"), timeout=15)[0]) + final_stack = int(dut1.expect(re.compile(r"(?:[\s\S]*)Free Stack for server task: '(\d+)'"), timeout=15)[0]) if final_stack < 0.05*max_stack_size: print "More than 95% of stack got used during tests" diff --git a/examples/protocols/http_server/advanced_tests/main/main.c b/examples/protocols/http_server/advanced_tests/main/main.c index 65aef4ff6..de32966c8 100644 --- a/examples/protocols/http_server/advanced_tests/main/main.c +++ b/examples/protocols/http_server/advanced_tests/main/main.c @@ -28,7 +28,7 @@ static esp_err_t event_handler(void *ctx, system_event_t *event) break; case SYSTEM_EVENT_STA_GOT_IP: ESP_LOGI(TAG, "SYSTEM_EVENT_STA_GOT_IP"); - ESP_LOGI(TAG, "Got IP: %s", + ESP_LOGI(TAG, "Got IP: '%s'", ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip)); // Start webserver tests diff --git a/examples/protocols/http_server/advanced_tests/main/tests.c b/examples/protocols/http_server/advanced_tests/main/tests.c index c8e11d36e..1aa64bcbc 100644 --- a/examples/protocols/http_server/advanced_tests/main/tests.c +++ b/examples/protocols/http_server/advanced_tests/main/tests.c @@ -17,7 +17,7 @@ bool basic_sanity = true; esp_err_t hello_get_handler(httpd_req_t *req) { #define STR "Hello World!" - ESP_LOGI(TAG, "Free Stack for server task: %d", uxTaskGetStackHighWaterMark(NULL)); + ESP_LOGI(TAG, "Free Stack for server task: '%d'", uxTaskGetStackHighWaterMark(NULL)); httpd_resp_send(req, STR, strlen(STR)); return ESP_OK; #undef STR @@ -244,155 +244,6 @@ void register_basic_handlers(httpd_handle_t hd) ESP_LOGI(TAG, "Success"); } -/********************* Basic Handlers End *******************/ - -esp_err_t my_hello_post_handler(httpd_req_t *req) -{ - char buf[10]; - char outbuf[50]; - int ret; - - ret = httpd_req_recv(req, buf, sizeof(buf)); - if (ret < 0) { - return ESP_FAIL; - } - - httpd_resp_set_status(req, HTTPD_404); - httpd_resp_set_type(req, HTTPD_TYPE_TEXT); - ESP_LOGI(TAG, "Read %d bytes as:%s:", ret, buf); - buf[ret] = '\0'; -#define STR "my_hello_handler" - snprintf(outbuf, sizeof(outbuf), STR" %s", buf); - httpd_resp_send(req, outbuf, strlen(outbuf)); - return ESP_OK; -#undef STR -} - - -/********************* Test Handler Limit Start *******************/ - -esp_err_t null_func(httpd_req_t *req) -{ - return ESP_OK; -} - -httpd_uri_t handler_limit_uri (char* path) -{ - httpd_uri_t uri = { - .uri = path, - .method = HTTP_GET, - .handler = null_func, - .user_ctx = NULL, - }; - return uri; -}; - -static inline unsigned num_digits(unsigned x) -{ - unsigned digits = 1; - while ((x = x/10) != 0) { - digits++; - } - return digits; -} - -#define HTTPD_TEST_MAX_URI_HANDLERS 8 - -void test_handler_limit(httpd_handle_t hd) -{ - int i, ret; - char x[HTTPD_TEST_MAX_URI_HANDLERS+1][num_digits(HTTPD_TEST_MAX_URI_HANDLERS)+1]; - httpd_uri_t uris[HTTPD_TEST_MAX_URI_HANDLERS+1]; - - for (i = 0; i < HTTPD_TEST_MAX_URI_HANDLERS + 1; i++) { - sprintf(x[i],"%d",i); - uris[i] = handler_limit_uri(x[i]); - } - - /* Register multiple instances of the same handler for MAX URI Handlers */ - ESP_LOGI(TAG, "Test: Register Max URI handlers: %d...", HTTPD_TEST_MAX_URI_HANDLERS); - for (i = 0; i < HTTPD_TEST_MAX_URI_HANDLERS; i++) { - ret = httpd_register_uri_handler(hd, &uris[i]); - if (ret != ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - } - ESP_LOGI(TAG, "Success"); - - /* Register the MAX URI + 1 Handlers should fail */ - ESP_LOGI(TAG, "Test: Register Max URI + 1 handlers: %d th...", HTTPD_TEST_MAX_URI_HANDLERS +1 ); - ret = httpd_register_uri_handler(hd, &uris[HTTPD_TEST_MAX_URI_HANDLERS]); - if (ret == ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - ESP_LOGI(TAG, "Success"); - - /* Unregister the one of the Handler should pass */ - ESP_LOGI(TAG, "Test: Unregister 0th handler..."); - ret = httpd_unregister_uri_handler(hd, uris[0].uri, uris[0].method); - if (ret != ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - ESP_LOGI(TAG, "Success"); - - /* Unregister non added Handler should fail */ - ESP_LOGI(TAG, "Test: Again unregister 0th handler not registered..."); - ret = httpd_unregister_uri_handler(hd, uris[0].uri, uris[0].method); - if (ret == ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - ESP_LOGI(TAG, "Success"); - - /* Register the MAX URI Handler should pass */ - ESP_LOGI(TAG, "Test: Register back 0th handler..."); - ret = httpd_register_uri_handler(hd, &uris[0]); - if (ret != ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - ESP_LOGI(TAG, "Success"); - - /* Reregister same instance of handler should fail */ - ESP_LOGI(TAG, "Test: Register 0th handler again after registering..."); - ret = httpd_register_uri_handler(hd, &uris[0]); - if (ret == ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - ESP_LOGI(TAG, "Success"); - - /* Register the MAX URI + 1 Handlers should fail */ - ESP_LOGI(TAG, "Test: Register 1 more handler..."); - ret = httpd_register_uri_handler(hd, &uris[HTTPD_TEST_MAX_URI_HANDLERS]); - if (ret == ESP_OK) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - ESP_LOGI(TAG, "Success"); - - /* Unregister the same handler for MAX URI Handlers */ - ESP_LOGI(TAG, "Test: Unregister all handlers:"); - for (i = 0; i < HTTPD_TEST_MAX_URI_HANDLERS; i++) { - ret = httpd_unregister_uri_handler(hd, uris[i].uri, uris[i].method); - if (ret != 0) { - ESP_LOGI(TAG, "Fail"); - goto error_ret; - } - } - ESP_LOGI(TAG, "Success"); -error_ret: - for (; i < HTTPD_TEST_MAX_URI_HANDLERS; i++) { - httpd_unregister_uri_handler(hd, uris[i].uri, uris[i].method); - } - basic_sanity = false; -} - -/********************* Test Handler Limit End *******************/ - httpd_handle_t test_httpd_start() { pre_start_mem = esp_get_free_heap_size(); @@ -404,27 +255,12 @@ httpd_handle_t test_httpd_start() config.max_open_sockets = (CONFIG_LWIP_MAX_SOCKETS - 3); if (httpd_start(&hd, &config) == ESP_OK) { - ESP_LOGI(TAG, "Started HTTP server on port: %d", config.server_port); - ESP_LOGI(TAG, "Max URI handlers: %d", config.max_uri_handlers); - ESP_LOGI(TAG, "Max Open Sessions: %d", config.max_open_sockets); - ESP_LOGI(TAG, "Max Header Length: %d", HTTPD_MAX_REQ_HDR_LEN); - ESP_LOGI(TAG, "Max URI Length: %d", HTTPD_MAX_URI_LEN); - ESP_LOGI(TAG, "Max Stack Size: %d", config.stack_size); - return hd; - } - return NULL; -} - -httpd_handle_t test_httpd_start_dummy(uint16_t id) -{ - pre_start_mem = esp_get_free_heap_size(); - ESP_LOGI(TAG, "HTTPD Start: Current free memory: %d", pre_start_mem); - httpd_handle_t hd; - httpd_config_t config = HTTPD_DEFAULT_CONFIG(); - config.max_uri_handlers = HTTPD_TEST_MAX_URI_HANDLERS; - config.server_port += id; - config.ctrl_port += id; - if (httpd_start(&hd, &config) == ESP_OK) { + ESP_LOGI(TAG, "Started HTTP server on port: '%d'", config.server_port); + ESP_LOGI(TAG, "Max URI handlers: '%d'", config.max_uri_handlers); + ESP_LOGI(TAG, "Max Open Sessions: '%d'", config.max_open_sockets); + ESP_LOGI(TAG, "Max Header Length: '%d'", HTTPD_MAX_REQ_HDR_LEN); + ESP_LOGI(TAG, "Max URI Length: '%d'", HTTPD_MAX_URI_LEN); + ESP_LOGI(TAG, "Max Stack Size: '%d'", config.stack_size); return hd; } return NULL; @@ -435,75 +271,12 @@ void test_httpd_stop(httpd_handle_t hd) httpd_stop(hd); post_stop_mem = esp_get_free_heap_size(); ESP_LOGI(TAG, "HTTPD Stop: Current free memory: %d", post_stop_mem); - - // Below function is not available but would be desirable to have - // post_stop_min_mem = os_get_minimum_free_mem(); - // ESP_LOGI(TAG, "HTTPD Stop: Minimum free memory: %d", post_stop_min_mem); -} - -#define SERVER_INSTANCES 10 - -/* Currently this only tests for the number of tasks. - * Heap leakage is not tested as LWIP allocates memory - * which may not be freed immedietly causing erroneous - * evaluation. Another test to implement would be the - * monitoring of open sockets, but LWIP presently provides - * no such API for getting the number of open sockets. - */ -bool leak_test(void) -{ - httpd_handle_t hd[SERVER_INSTANCES]; - bool success = true; - - unsigned task_count = uxTaskGetNumberOfTasks(); - ESP_LOGI(TAG, "Leak Test Started..."); - ESP_LOGI(TAG, "Current free heap : %d", xPortGetFreeHeapSize()); - ESP_LOGI(TAG, "Total tasks running : %d", task_count); - - for (int i = 0; i < SERVER_INSTANCES; i++) { - ESP_LOGI(TAG, "Starting Server Instance [%d]", i); - hd[i] = test_httpd_start_dummy(i); - if (hd[i]) { - register_basic_handlers(hd[i]); - task_count++; - } - ESP_LOGI(TAG, "Current free heap : %d", xPortGetFreeHeapSize()); - ESP_LOGI(TAG, "Total tasks running : %d", uxTaskGetNumberOfTasks()); - if (uxTaskGetNumberOfTasks() != task_count) { - ESP_LOGE(TAG, "Task count mismatch"); - success = false; - break; - } - } - - for (int i = 0; i < SERVER_INSTANCES; i++) { - ESP_LOGI(TAG, "Stopping Server Instance [%d]", i); - if (hd[i]) { - httpd_stop(hd[i]); - task_count--; - } - ESP_LOGI(TAG, "Current free heap : %d", xPortGetFreeHeapSize()); - ESP_LOGI(TAG, "Total tasks running : %d", uxTaskGetNumberOfTasks()); - if (uxTaskGetNumberOfTasks() != task_count) { - ESP_LOGE(TAG, "Task count mismatch"); - success = false; - } - } - if (success) { - ESP_LOGI(TAG, "Leak Test Passed"); - } - else { - ESP_LOGI(TAG, "Leak Test Failed"); - } - return success; } httpd_handle_t start_tests() { -// leak_test(); httpd_handle_t hd = test_httpd_start(); if (hd) { -// test_handler_limit(hd); register_basic_handlers(hd); } return hd; diff --git a/examples/protocols/http_server/advanced_tests/scripts/test.py b/examples/protocols/http_server/advanced_tests/scripts/test.py index 4a7a11031..a4609eb04 100644 --- a/examples/protocols/http_server/advanced_tests/scripts/test.py +++ b/examples/protocols/http_server/advanced_tests/scripts/test.py @@ -130,7 +130,6 @@ import threading -from multiprocessing import Process, Queue import socket import time import argparse @@ -142,9 +141,8 @@ import random _verbose_ = False class Session: - def __init__(self, addr, port): - self.client = socket.create_connection((addr, int(port))) - self.client.settimeout(15) + def __init__(self, addr, port, timeout = 15): + self.client = socket.create_connection((addr, int(port)), timeout = timeout) self.target = addr self.status = 0 self.encoding = '' @@ -326,7 +324,7 @@ class adder_thread (threading.Thread): def get_hello(dut, port): # GET /hello should return 'Hello World!' print "[test] GET /hello returns 'Hello World!' =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("GET", "/hello") resp = conn.getresponse() if not test_val("status_code", 200, resp.status): @@ -345,7 +343,7 @@ def get_hello(dut, port): def put_hello(dut, port): # PUT /hello returns 405' print "[test] PUT /hello returns 405' =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("PUT", "/hello", "Hello") resp = conn.getresponse() if not test_val("status_code", 405, resp.status): @@ -358,7 +356,7 @@ def put_hello(dut, port): def post_hello(dut, port): # POST /hello returns 405' print "[test] POST /hello returns 404' =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("POST", "/hello", "Hello") resp = conn.getresponse() if not test_val("status_code", 405, resp.status): @@ -371,7 +369,7 @@ def post_hello(dut, port): def post_echo(dut, port): # POST /echo echoes data' print "[test] POST /echo echoes data' =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("POST", "/echo", "Hello") resp = conn.getresponse() if not test_val("status_code", 200, resp.status): @@ -387,7 +385,7 @@ def post_echo(dut, port): def put_echo(dut, port): # PUT /echo echoes data' print "[test] PUT /echo echoes data' =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("PUT", "/echo", "Hello") resp = conn.getresponse() if not test_val("status_code", 200, resp.status): @@ -403,7 +401,7 @@ def put_echo(dut, port): def get_echo(dut, port): # GET /echo returns 404' print "[test] GET /echo returns 405' =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("GET", "/echo") resp = conn.getresponse() if not test_val("status_code", 405, resp.status): @@ -416,7 +414,7 @@ def get_echo(dut, port): def get_hello_type(dut, port): # GET /hello/type_html returns text/html as Content-Type' print "[test] GET /hello/type_html has Content-Type of text/html =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("GET", "/hello/type_html") resp = conn.getresponse() if not test_val("status_code", 200, resp.status): @@ -435,7 +433,7 @@ def get_hello_type(dut, port): def get_hello_status(dut, port): # GET /hello/status_500 returns status 500' print "[test] GET /hello/status_500 returns status 500 =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("GET", "/hello/status_500") resp = conn.getresponse() if not test_val("status_code", 500, resp.status): @@ -448,7 +446,7 @@ def get_hello_status(dut, port): def get_false_uri(dut, port): # GET /false_uri returns status 404' print "[test] GET /false_uri returns status 404 =>", - conn = httplib.HTTPConnection(dut, int(port)) + conn = httplib.HTTPConnection(dut, int(port), timeout=15) conn.request("GET", "/false_uri") resp = conn.getresponse() if not test_val("status_code", 404, resp.status): @@ -503,7 +501,7 @@ def async_response_test(dut, port): def leftover_data_test(dut, port): # Leftover data in POST is purged (valid and invalid URIs) print "[test] Leftover data in POST is purged (valid and invalid URIs) =>", - s = httplib.HTTPConnection(dut + ":" + port) + s = httplib.HTTPConnection(dut + ":" + port, timeout=15) s.request("POST", url='/leftover_data', body="abcdefghijklmnopqrstuvwxyz\r\nabcdefghijklmnopqrstuvwxyz") resp = s.getresponse() @@ -543,7 +541,7 @@ def spillover_session(dut, port, max_sess): if (_verbose_): print "Executing " + str(i) try: - a = httplib.HTTPConnection(dut + ":" + port) + a = httplib.HTTPConnection(dut + ":" + port, timeout=15) a.request("GET", url='/hello') resp = a.getresponse() if not test_val("Connection " + str(i), "Hello World!", resp.read()): @@ -583,7 +581,7 @@ def packet_size_limit_test(dut, port, test_size): while (retry): retry -= 1 print "data size = ", test_size - s = httplib.HTTPConnection(dut + ":" + port) + s = httplib.HTTPConnection(dut + ":" + port, timeout=15) random_data = ''.join(string.printable[random.randint(0,len(string.printable))-1] for _ in range(test_size)) path = "/echo" s.request("POST", url=path, body=random_data) diff --git a/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py b/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py index 756cd14be..076e33c00 100644 --- a/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py +++ b/examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py @@ -56,8 +56,8 @@ def test_examples_protocol_http_server_persistence(env, extra_data): # Parse IP address of STA print "Waiting to connect with AP" - got_ip = dut1.expect(re.compile(r"(?:[\s\S]*)Got IP: (\d+.\d+.\d+.\d+)"), timeout=120)[0] - got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Starting server on port: (\d+)"), timeout=30)[0] + got_ip = dut1.expect(re.compile(r"(?:[\s\S]*)Got IP: '(\d+.\d+.\d+.\d+)'"), timeout=120)[0] + got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Starting server on port: '(\d+)'"), timeout=30)[0] print "Got IP : " + got_ip print "Got Port : " + got_port diff --git a/examples/protocols/http_server/persistent_sockets/main/main.c b/examples/protocols/http_server/persistent_sockets/main/main.c index 833d0fcb9..996a05afe 100644 --- a/examples/protocols/http_server/persistent_sockets/main/main.c +++ b/examples/protocols/http_server/persistent_sockets/main/main.c @@ -162,7 +162,7 @@ httpd_handle_t start_webserver(void) { httpd_config_t config = HTTPD_DEFAULT_CONFIG(); // Start the httpd server - ESP_LOGI(TAG, "Starting server on port: %d", config.server_port); + ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port); httpd_handle_t server; if (httpd_start(&server, &config) == ESP_OK) { @@ -195,7 +195,7 @@ static esp_err_t event_handler(void *ctx, system_event_t *event) break; case SYSTEM_EVENT_STA_GOT_IP: ESP_LOGI(TAG, "SYSTEM_EVENT_STA_GOT_IP"); - ESP_LOGI(TAG, "Got IP: %s", + ESP_LOGI(TAG, "Got IP: '%s'", ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip)); /* Start the web server */ diff --git a/examples/protocols/http_server/persistent_sockets/scripts/adder.py b/examples/protocols/http_server/persistent_sockets/scripts/adder.py index 87fae5c6c..aed6c7657 100644 --- a/examples/protocols/http_server/persistent_sockets/scripts/adder.py +++ b/examples/protocols/http_server/persistent_sockets/scripts/adder.py @@ -18,7 +18,7 @@ import httplib import argparse def start_session (ip, port): - return httplib.HTTPConnection(ip, int(port)) + return httplib.HTTPConnection(ip, int(port), timeout=15) def end_session (conn): conn.close() diff --git a/examples/protocols/http_server/simple/http_server_simple_test.py b/examples/protocols/http_server/simple/http_server_simple_test.py index b08ec14cb..6b6221973 100644 --- a/examples/protocols/http_server/simple/http_server_simple_test.py +++ b/examples/protocols/http_server/simple/http_server_simple_test.py @@ -56,8 +56,8 @@ def test_examples_protocol_http_server_simple(env, extra_data): # Parse IP address of STA print "Waiting to connect with AP" - got_ip = dut1.expect(re.compile(r"(?:[\s\S]*)Got IP: (\d+.\d+.\d+.\d+)"), timeout=120)[0] - got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Starting server on port: (\d+)"), timeout=30)[0] + got_ip = dut1.expect(re.compile(r"(?:[\s\S]*)Got IP: '(\d+.\d+.\d+.\d+)'"), timeout=120)[0] + got_port = dut1.expect(re.compile(r"(?:[\s\S]*)Starting server on port: '(\d+)'"), timeout=30)[0] print "Got IP : " + got_ip print "Got Port : " + got_port diff --git a/examples/protocols/http_server/simple/main/main.c b/examples/protocols/http_server/simple/main/main.c index d374c1f94..7e2bd4907 100644 --- a/examples/protocols/http_server/simple/main/main.c +++ b/examples/protocols/http_server/simple/main/main.c @@ -190,7 +190,7 @@ httpd_handle_t start_webserver(void) httpd_config_t config = HTTPD_DEFAULT_CONFIG(); // Start the httpd server - ESP_LOGI(TAG, "Starting server on port: %d", config.server_port); + ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port); if (httpd_start(&server, &config) == ESP_OK) { // Set URI handlers ESP_LOGI(TAG, "Registering URI handlers"); @@ -221,7 +221,7 @@ static esp_err_t event_handler(void *ctx, system_event_t *event) break; case SYSTEM_EVENT_STA_GOT_IP: ESP_LOGI(TAG, "SYSTEM_EVENT_STA_GOT_IP"); - ESP_LOGI(TAG, "Got IP: %s", + ESP_LOGI(TAG, "Got IP: '%s'", ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip)); /* Start the web server */ diff --git a/examples/protocols/http_server/simple/scripts/client.py b/examples/protocols/http_server/simple/scripts/client.py index aa7148154..471eeb02a 100644 --- a/examples/protocols/http_server/simple/scripts/client.py +++ b/examples/protocols/http_server/simple/scripts/client.py @@ -25,7 +25,7 @@ def test_get_handler(ip, port, verbosity = False): verbose_print(verbosity, "======== GET HANDLER TEST =============") # Establish HTTP connection verbose_print(verbosity, "Connecting to => " + ip + ":" + port) - sess = httplib.HTTPConnection(ip + ":" + port) + sess = httplib.HTTPConnection(ip + ":" + port, timeout = 15) uri = "/hello?query1=value1&query2=value2&query3=value3" # GET hello response @@ -62,7 +62,7 @@ def test_post_handler(ip, port, msg, verbosity = False): verbose_print(verbosity, "======== POST HANDLER TEST ============") # Establish HTTP connection verbose_print(verbosity, "Connecting to => " + ip + ":" + port) - sess = httplib.HTTPConnection(ip + ":" + port) + sess = httplib.HTTPConnection(ip + ":" + port, timeout = 15) # POST message to /echo and get back response sess.request("POST", url="/echo", body=msg) @@ -81,7 +81,7 @@ def test_put_handler(ip, port, verbosity = False): verbose_print(verbosity, "======== PUT HANDLER TEST =============") # Establish HTTP connection verbose_print(verbosity, "Connecting to => " + ip + ":" + port) - sess = httplib.HTTPConnection(ip + ":" + port) + sess = httplib.HTTPConnection(ip + ":" + port, timeout = 15) # PUT message to /ctrl to disable /hello URI handler verbose_print(verbosity, "Disabling /hello handler") @@ -113,7 +113,7 @@ def test_custom_uri_query(ip, port, query, verbosity = False): verbose_print(verbosity, "======== GET HANDLER TEST =============") # Establish HTTP connection verbose_print(verbosity, "Connecting to => " + ip + ":" + port) - sess = httplib.HTTPConnection(ip + ":" + port) + sess = httplib.HTTPConnection(ip + ":" + port, timeout = 15) uri = "/hello?" + query # GET hello response