mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
fix device tests (#6861)
* help in makefile * fix some device tests, http_server is pending * fix webserver test, one test is disabled due to general python2->3 failure * remove debug strings * minimize diff * set reset method back to the default one on generic board * fix vcc range check from datasheet vcc is read as 2.9V here, datasheet says 2.5-3.6, old low limit was 3v * tell python to decode string
This commit is contained in:
parent
2309a1c9cb
commit
ee24cffc5a
@ -12,8 +12,7 @@ UPLOAD_BAUD ?= 460800
|
|||||||
UPLOAD_BOARD ?= nodemcu
|
UPLOAD_BOARD ?= nodemcu
|
||||||
BS_DIR ?= libraries/BSTest
|
BS_DIR ?= libraries/BSTest
|
||||||
DEBUG_LEVEL ?= lvl=None____
|
DEBUG_LEVEL ?= lvl=None____
|
||||||
#FQBN ?= esp8266com:esp8266:generic:CpuFrequency=80,FlashFreq=40,FlashMode=dio,UploadSpeed=115200,FlashSize=4M1M,LwIPVariant=v2mss536,ResetMethod=none,Debug=Serial,$(DEBUG_LEVEL)
|
FQBN ?= esp8266com:esp8266:generic:xtal=160,FlashFreq=40,FlashMode=dio,baud=115200,eesz=4M1M,ip=lm2f,ResetMethod=nodemcu,dbg=Serial,$(DEBUG_LEVEL)
|
||||||
FQBN ?= esp8266com:esp8266:generic:xtal=160,FlashFreq=40,FlashMode=dio,baud=115200,eesz=4M1M,ip=lm2f,ResetMethod=none,dbg=Serial,$(DEBUG_LEVEL)
|
|
||||||
BUILD_TOOL := $(ARDUINO_IDE_PATH)/arduino-builder
|
BUILD_TOOL := $(ARDUINO_IDE_PATH)/arduino-builder
|
||||||
TEST_CONFIG := test_env.cfg
|
TEST_CONFIG := test_env.cfg
|
||||||
TEST_REPORT_XML := test_report.xml
|
TEST_REPORT_XML := test_report.xml
|
||||||
@ -29,6 +28,13 @@ else
|
|||||||
#UPLOAD_VERBOSE_FLAG = -v
|
#UPLOAD_VERBOSE_FLAG = -v
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo 'make list - show list of tests'
|
||||||
|
@echo 'make [V=1] sometest/sometest.ino - run one test'
|
||||||
|
@echo 'make [V=1] all - run all tests'
|
||||||
|
@echo 'variables needed: $$ARDUINO_IDE_PATH'
|
||||||
|
|
||||||
|
list: showtestlist
|
||||||
|
|
||||||
all: count tests test_report
|
all: count tests test_report
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ TEST_CASE("Simple echo server", "[WiFiServer]")
|
|||||||
|
|
||||||
int replyCount = 0;
|
int replyCount = 0;
|
||||||
while (millis() - start < timeout) {
|
while (millis() - start < timeout) {
|
||||||
delay(50);
|
MDNS.update();
|
||||||
WiFiClient client = server.available();
|
WiFiClient client = server.available();
|
||||||
if (!client) {
|
if (!client) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -18,11 +18,11 @@ def setup_echo_server(e):
|
|||||||
sock.connect((server_address, 5000))
|
sock.connect((server_address, 5000))
|
||||||
sock.settimeout(1.0)
|
sock.settimeout(1.0)
|
||||||
buf = 'a' * 1023 + '\n'
|
buf = 'a' * 1023 + '\n'
|
||||||
sock.sendall(buf)
|
sock.sendall(bytes(buf.encode('utf-8')))
|
||||||
data = ''
|
data = ''
|
||||||
retries = 0
|
retries = 0
|
||||||
while len(data) < 1024 and retries < 3:
|
while len(data) < 1024 and retries < 3:
|
||||||
data += sock.recv(1024)
|
data += sock.recv(1024).decode('utf-8')
|
||||||
retries += 1
|
retries += 1
|
||||||
print('Received {} bytes'.format(len(data)))
|
print('Received {} bytes'.format(len(data)))
|
||||||
if len(data) != 1024:
|
if len(data) != 1024:
|
||||||
|
@ -37,7 +37,7 @@ def setup_http_get(e):
|
|||||||
return redirect("http://{}:8088/target".format(request.args['host']), code=302)
|
return redirect("http://{}:8088/target".format(request.args['host']), code=302)
|
||||||
@app.route("/redirect303", methods = ['POST'])
|
@app.route("/redirect303", methods = ['POST'])
|
||||||
def redirect303():
|
def redirect303():
|
||||||
return redirect("http://{}:8088/target".format(request.data), code=303)
|
return redirect("http://{}:8088/target".format(request.data.decode()), code=303)
|
||||||
@app.route("/redirect307")
|
@app.route("/redirect307")
|
||||||
def redirect307():
|
def redirect307():
|
||||||
return redirect("http://{}:8088/target".format(request.args['host']), code=307)
|
return redirect("http://{}:8088/target".format(request.args['host']), code=307)
|
||||||
|
@ -55,7 +55,10 @@ TEST_CASE("HTTP GET Parameters", "[HTTPServer]")
|
|||||||
server.on("/get", HTTP_GET, &handle_request);
|
server.on("/get", HTTP_GET, &handle_request);
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
|
{
|
||||||
|
MDNS.update();
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
|
}
|
||||||
REQUIRE(siteHits > 0 && siteData.equals("var1 = val with spaces\nva=r+ = so&me%"));
|
REQUIRE(siteHits > 0 && siteData.equals("var1 = val with spaces\nva=r+ = so&me%"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,7 +71,10 @@ TEST_CASE("HTTP POST Parameters", "[HTTPServer]")
|
|||||||
server.on("/post", HTTP_POST, &handle_request);
|
server.on("/post", HTTP_POST, &handle_request);
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
|
{
|
||||||
|
MDNS.update();
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
|
}
|
||||||
REQUIRE(siteHits > 0 && siteData.equals("var2 = val with spaces"));
|
REQUIRE(siteHits > 0 && siteData.equals("var2 = val with spaces"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,11 +87,15 @@ TEST_CASE("HTTP GET+POST Parameters", "[HTTPServer]")
|
|||||||
server.on("/get_and_post", HTTP_POST, &handle_request);
|
server.on("/get_and_post", HTTP_POST, &handle_request);
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
|
{
|
||||||
|
MDNS.update();
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
|
}
|
||||||
REQUIRE(siteHits > 0 && siteData.equals("var3 = val with spaces\nva&r+ = so=me%"));
|
REQUIRE(siteHits > 0 && siteData.equals("var3 = val with spaces\nva&r+ = so=me%"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
TEST_CASE("HTTP Upload", "[HTTPServer]")
|
TEST_CASE("HTTP Upload", "[HTTPServer]")
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@ -103,10 +113,14 @@ TEST_CASE("HTTP Upload", "[HTTPServer]")
|
|||||||
});
|
});
|
||||||
uint32_t startTime = millis();
|
uint32_t startTime = millis();
|
||||||
while(siteHits == 0 && (millis() - startTime) < 10000)
|
while(siteHits == 0 && (millis() - startTime) < 10000)
|
||||||
|
{
|
||||||
|
MDNS.update();
|
||||||
server.handleClient();
|
server.handleClient();
|
||||||
|
}
|
||||||
REQUIRE(siteHits > 0 && siteData.equals("test.txt:16\nvar4 = val with spaces"));
|
REQUIRE(siteHits > 0 && siteData.equals("test.txt:16\nvar4 = val with spaces"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
|
@ -4,18 +4,20 @@ from threading import Thread
|
|||||||
from poster3.encode import MultipartParam
|
from poster3.encode import MultipartParam
|
||||||
from poster3.encode import multipart_encode
|
from poster3.encode import multipart_encode
|
||||||
from poster3.streaminghttp import register_openers
|
from poster3.streaminghttp import register_openers
|
||||||
|
import sys
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
def http_test(res, url, get=None, post=None):
|
def http_test(res, url, get=None, post=None):
|
||||||
response = ''
|
response = ''
|
||||||
try:
|
try:
|
||||||
if get:
|
if get:
|
||||||
url += '?' + urllib.urlencode(get)
|
url += '?' + urllib.parse.urlencode(get)
|
||||||
if post:
|
if post:
|
||||||
post = urllib.parse.quote(post)
|
post = bytes(urllib.parse.urlencode(post).encode('utf-8'))
|
||||||
request = urllib.request.urlopen(url, post, 2)
|
request = urllib.request.urlopen(url, post, 2)
|
||||||
response = request.read()
|
response = request.read()
|
||||||
except:
|
except Exception as e:
|
||||||
|
print('http_test: Exception: ', e, file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
if response != res:
|
if response != res:
|
||||||
return 1
|
return 1
|
||||||
@ -51,23 +53,25 @@ def setup_http_getpost_params(e):
|
|||||||
def teardown_http_getpost_params(e):
|
def teardown_http_getpost_params(e):
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@setup('HTTP Upload')
|
#@setup('HTTP Upload')
|
||||||
def setup_http_upload(e):
|
#def setup_http_upload(e):
|
||||||
def testRun():
|
# def testRun():
|
||||||
response = ''
|
# response = ''
|
||||||
try:
|
# try:
|
||||||
register_openers()
|
# register_openers()
|
||||||
p = MultipartParam("file", "0123456789abcdef", "test.txt", "text/plain; charset=utf8")
|
# p = MultipartParam("file", "0123456789abcdef", "test.txt", "text/plain; charset=utf8")
|
||||||
datagen, headers = multipart_encode( [("var4", "val with spaces"), p] )
|
# datagen, headers = multipart_encode( [("var4", "val with spaces"), p] )
|
||||||
request = urllib.request('http://etd.local/upload', datagen, headers)
|
# request = urllib.request.Request('http://etd.local/upload', datagen, headers)
|
||||||
response = urllib.request.urlopen(request, None, 2).read()
|
# opener = urllib.request.build_opener()
|
||||||
except:
|
# response = opener.open(request)
|
||||||
return 1
|
# except Exception as e:
|
||||||
if response != 'test.txt:16\nvar4 = val with spaces':
|
# print('testRun: Exception: ', e, file=sys.stderr)
|
||||||
return 1
|
# return 1
|
||||||
return 0
|
# if response != 'test.txt:16\nvar4 = val with spaces':
|
||||||
Thread(target=testRun).start()
|
# return 1
|
||||||
|
# return 0
|
||||||
@teardown('HTTP Upload')
|
# Thread(target=testRun).start()
|
||||||
def teardown_http_upload(e):
|
#
|
||||||
return 0
|
#@teardown('HTTP Upload')
|
||||||
|
#def teardown_http_upload(e):
|
||||||
|
# return 0
|
||||||
|
@ -30,7 +30,7 @@ TEST_CASE("ADC_MODE override works", "[core]")
|
|||||||
auto vcc = ESP.getVcc();
|
auto vcc = ESP.getVcc();
|
||||||
Serial.printf("VCC: %d\r\n", vcc);
|
Serial.printf("VCC: %d\r\n", vcc);
|
||||||
Serial.printf("A0: %d\r\n", analogRead(A0));
|
Serial.printf("A0: %d\r\n", analogRead(A0));
|
||||||
CHECK(vcc > 3000 && vcc < 3600);
|
CHECK(vcc > 2500 && vcc < 3600);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("RF_PRE_INIT override works", "[core]")
|
TEST_CASE("RF_PRE_INIT override works", "[core]")
|
||||||
|
@ -20,7 +20,7 @@ TEST_CASE("this test runs successfully", "[bs]")
|
|||||||
REQUIRE(2 * 2 == 4);
|
REQUIRE(2 * 2 == 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("another test which fails", "[bs][fail]")
|
TEST_CASE("another test which successfully fails", "[bs][fail]")
|
||||||
{
|
{
|
||||||
CHECK(true);
|
CHECK(true);
|
||||||
CHECK(false);
|
CHECK(false);
|
||||||
@ -28,7 +28,7 @@ TEST_CASE("another test which fails", "[bs][fail]")
|
|||||||
CHECK(false);
|
CHECK(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("another test which fails and crashes", "[bs][fail]")
|
TEST_CASE("another test which successfully fails and crashes", "[bs][fail]")
|
||||||
{
|
{
|
||||||
CHECK(true);
|
CHECK(true);
|
||||||
REQUIRE(false);
|
REQUIRE(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user