1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00
esp8266/tests/device/test_ClientContext/test_ClientContext.py
Earle F. Philhower, III 41ba21613d
Fix Python3 errors for device tests (#6670)
* Fix Python3 errors for device tests

The Python3 migration didn't include fixes for local scripts in the
device test tree.

Fatal build and run Python errors fixed.

The last update to xunitmerge is ~5 years ago, so it looks to be
unsupported now.

Use a local copy of the two components to allow patching to work with
Python3.

The serial test seems to send garbage chars (non-ASCII/etc.), so use a
codepage 437 which supports all 255 chars.

Fixes: #6660

* Run tests at 160MHz (req'd for some SSL connections)

* Fix debuglevel options for builder

* Fix Python3 interpreter path in xunitmerge

* Remove virtualenv on "make clean"

* Add appropriate attribution, license to xunitmerge

Add like to the original sources with the author's license to the
copied/fixed xunitmerge files.
2019-10-26 13:58:54 -07:00

63 lines
1.7 KiB
Python

#!/usr/bin/env python3
from mock_decorators import setup, teardown
from flask import Flask, request
from threading import Thread
import socket
import select
import sys
import os
@setup('WiFi release ClientContext')
def setup_tcpsrv(e):
global thread
app = Flask(__name__)
def run():
global running
running = False
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
for port in range(8266, 8285 + 1):
try:
print ('trying port %d' %port, file=sys.stderr)
server_address = ("0.0.0.0", port)
sock.bind(server_address)
sock.listen(1)
running = True
break
except Exception:
print >>sys.stderr, 'busy'
if not running:
return
print ('starting up on %s port %s' % server_address, file=sys.stderr)
print ( 'waiting for connections', file=sys.stderr)
while running:
print ('loop', file=sys.stderr)
readable, writable, errored = select.select([sock], [], [], 1.0)
if readable:
connection, client_address = sock.accept()
try:
print('client connected: %s' % str(client_address), file=sys.stderr)
finally:
print ('close', file=sys.stderr)
connection.shutdown(socket.SHUT_RDWR)
connection.close()
thread = Thread(target=run)
thread.start()
@teardown('WiFi release ClientContext')
def teardown_tcpsrv(e):
global thread
global running
print ('closing', file=sys.stderr)
running = False
thread.join()
return 0