1
0
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:
david gauchard 2019-12-03 23:26:54 +01:00 committed by GitHub
parent 2309a1c9cb
commit ee24cffc5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 56 additions and 32 deletions

View File

@ -12,8 +12,7 @@ UPLOAD_BAUD ?= 460800
UPLOAD_BOARD ?= nodemcu
BS_DIR ?= libraries/BSTest
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=none,dbg=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)
BUILD_TOOL := $(ARDUINO_IDE_PATH)/arduino-builder
TEST_CONFIG := test_env.cfg
TEST_REPORT_XML := test_report.xml
@ -29,6 +28,13 @@ else
#UPLOAD_VERBOSE_FLAG = -v
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

View File

@ -36,7 +36,7 @@ TEST_CASE("Simple echo server", "[WiFiServer]")
int replyCount = 0;
while (millis() - start < timeout) {
delay(50);
MDNS.update();
WiFiClient client = server.available();
if (!client) {
continue;

View File

@ -18,11 +18,11 @@ def setup_echo_server(e):
sock.connect((server_address, 5000))
sock.settimeout(1.0)
buf = 'a' * 1023 + '\n'
sock.sendall(buf)
sock.sendall(bytes(buf.encode('utf-8')))
data = ''
retries = 0
while len(data) < 1024 and retries < 3:
data += sock.recv(1024)
data += sock.recv(1024).decode('utf-8')
retries += 1
print('Received {} bytes'.format(len(data)))
if len(data) != 1024:

View File

@ -37,7 +37,7 @@ def setup_http_get(e):
return redirect("http://{}:8088/target".format(request.args['host']), code=302)
@app.route("/redirect303", methods = ['POST'])
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")
def redirect307():
return redirect("http://{}:8088/target".format(request.args['host']), code=307)

View File

@ -55,7 +55,10 @@ TEST_CASE("HTTP GET Parameters", "[HTTPServer]")
server.on("/get", HTTP_GET, &handle_request);
uint32_t startTime = millis();
while(siteHits == 0 && (millis() - startTime) < 10000)
{
MDNS.update();
server.handleClient();
}
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);
uint32_t startTime = millis();
while(siteHits == 0 && (millis() - startTime) < 10000)
{
MDNS.update();
server.handleClient();
}
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);
uint32_t startTime = millis();
while(siteHits == 0 && (millis() - startTime) < 10000)
{
MDNS.update();
server.handleClient();
}
REQUIRE(siteHits > 0 && siteData.equals("var3 = val with spaces\nva&r+ = so=me%"));
}
}
#if 0
TEST_CASE("HTTP Upload", "[HTTPServer]")
{
{
@ -103,10 +113,14 @@ TEST_CASE("HTTP Upload", "[HTTPServer]")
});
uint32_t startTime = millis();
while(siteHits == 0 && (millis() - startTime) < 10000)
{
MDNS.update();
server.handleClient();
}
REQUIRE(siteHits > 0 && siteData.equals("test.txt:16\nvar4 = val with spaces"));
}
}
#endif
void loop()
{

View File

@ -4,18 +4,20 @@ from threading import Thread
from poster3.encode import MultipartParam
from poster3.encode import multipart_encode
from poster3.streaminghttp import register_openers
import sys
import urllib
def http_test(res, url, get=None, post=None):
response = ''
try:
if get:
url += '?' + urllib.urlencode(get)
url += '?' + urllib.parse.urlencode(get)
if post:
post = urllib.parse.quote(post)
post = bytes(urllib.parse.urlencode(post).encode('utf-8'))
request = urllib.request.urlopen(url, post, 2)
response = request.read()
except:
except Exception as e:
print('http_test: Exception: ', e, file=sys.stderr)
return 1
if response != res:
return 1
@ -51,23 +53,25 @@ def setup_http_getpost_params(e):
def teardown_http_getpost_params(e):
return 0
@setup('HTTP Upload')
def setup_http_upload(e):
def testRun():
response = ''
try:
register_openers()
p = MultipartParam("file", "0123456789abcdef", "test.txt", "text/plain; charset=utf8")
datagen, headers = multipart_encode( [("var4", "val with spaces"), p] )
request = urllib.request('http://etd.local/upload', datagen, headers)
response = urllib.request.urlopen(request, None, 2).read()
except:
return 1
if response != 'test.txt:16\nvar4 = val with spaces':
return 1
return 0
Thread(target=testRun).start()
@teardown('HTTP Upload')
def teardown_http_upload(e):
return 0
#@setup('HTTP Upload')
#def setup_http_upload(e):
# def testRun():
# response = ''
# try:
# register_openers()
# p = MultipartParam("file", "0123456789abcdef", "test.txt", "text/plain; charset=utf8")
# datagen, headers = multipart_encode( [("var4", "val with spaces"), p] )
# request = urllib.request.Request('http://etd.local/upload', datagen, headers)
# opener = urllib.request.build_opener()
# response = opener.open(request)
# except Exception as e:
# print('testRun: Exception: ', e, file=sys.stderr)
# return 1
# if response != 'test.txt:16\nvar4 = val with spaces':
# return 1
# return 0
# Thread(target=testRun).start()
#
#@teardown('HTTP Upload')
#def teardown_http_upload(e):
# return 0

View File

@ -30,7 +30,7 @@ TEST_CASE("ADC_MODE override works", "[core]")
auto vcc = ESP.getVcc();
Serial.printf("VCC: %d\r\n", vcc);
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]")

View File

@ -20,7 +20,7 @@ TEST_CASE("this test runs successfully", "[bs]")
REQUIRE(2 * 2 == 4);
}
TEST_CASE("another test which fails", "[bs][fail]")
TEST_CASE("another test which successfully fails", "[bs][fail]")
{
CHECK(true);
CHECK(false);
@ -28,7 +28,7 @@ TEST_CASE("another test which fails", "[bs][fail]")
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);
REQUIRE(false);