ci: run target test with python3

This commit is contained in:
Chen Yudong 2021-04-28 19:32:59 +08:00
parent c891be655c
commit ef1f74174a
11 changed files with 31 additions and 37 deletions

View File

@ -89,7 +89,7 @@ def bleprph_client_task(prph_obj, dut, dut_addr):
- write 'A' to characteristic with write permission
'''
chars_ret_on_write = {}
chars_ret_on_write = ble_client_obj.write_chars('A')
chars_ret_on_write = ble_client_obj.write_chars(b'A')
if chars_ret_on_write:
Utility.console_log("\nCharacteristics after write operation")
for path, props in chars_ret_on_write.items():

View File

@ -100,12 +100,6 @@ def test_examples_protocol_http_server_simple(env, extra_data):
raise RuntimeError
dut1.expect("Found URL query => " + query, timeout=30)
query = "abcd\nyz"
Utility.console_log("Test /hello with invalid query")
if client.test_custom_uri_query(got_ip, got_port, query):
raise RuntimeError
dut1.expect("400 Bad Request - Server unable to understand request due to invalid syntax", timeout=30)
if __name__ == '__main__':
test_examples_protocol_http_server_simple()

View File

@ -1,5 +1,6 @@
import re
import os
import struct
import socket
from threading import Thread
import ssl
@ -212,8 +213,8 @@ def test_examples_protocol_advanced_https_ota_example_truncated_bin(env, extra_d
truncated_bin_size = 64000
# check and log bin size
binary_file = os.path.join(dut1.app.binary_path, bin_name)
f = open(binary_file, "r+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "w+")
f = open(binary_file, "rb+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "wb+")
fo.write(f.read(truncated_bin_size))
fo.close()
f.close()
@ -263,8 +264,8 @@ def test_examples_protocol_advanced_https_ota_example_truncated_header(env, extr
truncated_bin_size = 180
# check and log bin size
binary_file = os.path.join(dut1.app.binary_path, bin_name)
f = open(binary_file, "r+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "w+")
f = open(binary_file, "rb+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "wb+")
fo.write(f.read(truncated_bin_size))
fo.close()
f.close()
@ -312,12 +313,12 @@ def test_examples_protocol_advanced_https_ota_example_random(env, extra_data):
random_bin_size = 32000
# check and log bin size
binary_file = os.path.join(dut1.app.binary_path, random_bin_name)
fo = open(binary_file, "w+")
fo = open(binary_file, "wb+")
# First byte of binary file is always set to zero. If first byte is generated randomly,
# in some cases it may generate 0xE9 which will result in failure of testcase.
fo.write(str(0))
fo.write(struct.pack("B", 0))
for i in range(random_bin_size - 1):
fo.write(str(random.randrange(0,255,1)))
fo.write(struct.pack("B", random.randrange(0,255,1)))
fo.close()
bin_size = os.path.getsize(binary_file)
ttfw_idf.log_performance("advanced_https_ota_bin_size", "{}KB".format(bin_size // 1024))

View File

@ -1,5 +1,6 @@
import re
import os
import struct
import socket
from threading import Thread
import ssl
@ -178,8 +179,8 @@ def test_examples_protocol_native_ota_example_truncated_bin(env, extra_data):
truncated_bin_size = 64000
# check and log bin size
binary_file = os.path.join(dut1.app.binary_path, bin_name)
f = open(binary_file, "r+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "w+")
f = open(binary_file, "rb+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "wb+")
fo.write(f.read(truncated_bin_size))
fo.close()
f.close()
@ -224,8 +225,8 @@ def test_examples_protocol_native_ota_example_truncated_header(env, extra_data):
truncated_bin_size = 180
# check and log bin size
binary_file = os.path.join(dut1.app.binary_path, bin_name)
f = open(binary_file, "r+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "w+")
f = open(binary_file, "rb+")
fo = open(os.path.join(dut1.app.binary_path, truncated_bin_name), "wb+")
fo.write(f.read(truncated_bin_size))
fo.close()
f.close()
@ -268,12 +269,12 @@ def test_examples_protocol_native_ota_example_random(env, extra_data):
random_bin_size = 32000
# check and log bin size
binary_file = os.path.join(dut1.app.binary_path, random_bin_name)
fo = open(binary_file, "w+")
fo = open(binary_file, "wb+")
# First byte of binary file is always set to zero. If first byte is generated randomly,
# in some cases it may generate 0xE9 which will result in failure of testcase.
fo.write(str(0))
fo.write(struct.pack("B", 0))
for i in range(random_bin_size - 1):
fo.write(str(random.randrange(0,255,1)))
fo.write(struct.pack("B", random.randrange(0,255,1)))
fo.close()
bin_size = os.path.getsize(binary_file)
ttfw_idf.log_performance("native_ota_bin_size", "{}KB".format(bin_size // 1024))

View File

@ -34,6 +34,7 @@
LOG_PATH: "$CI_PROJECT_DIR/TEST_LOGS"
ENV_FILE: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/EnvConfig.yml"
SUBMODULES_TO_FETCH: "components/esptool_py/esptool"
PYTHON_VER: 3
script:
- *define_config_file_name
# first test if config file exists, if not exist, exit 0

View File

@ -1,14 +1,7 @@
#! /bin/bash
# Regexp for matching job names which are incompatible with Python 3
# - UT_009_ - multi-device tests are not compatible
# - UT_014_ - multi-device tests are not compatible
# - UT_017_ - multi-device tests are not compatible
py3_incomp='UT_009_|UT_013_|UT_014_|UT_017_'
if [ -z ${PYTHON_VER+x} ] || [[ $CI_JOB_NAME =~ $py3_incomp ]]; then
# Use this version of the Python interpreter if it was not defined before or
# the given job is not compatible with Python 3
if [ -z ${PYTHON_VER+x} ]; then
# Use this version of the Python interpreter if it was not defined before
PYTHON_VER=2.7.15
fi

View File

@ -1 +1 @@
from esp_prov import * # noqa: export esp_prov module to users
from .esp_prov import * # noqa: export esp_prov module to users

View File

@ -16,7 +16,7 @@
#
from __future__ import print_function
from builtins import input
from builtins import input as binput
import argparse
import textwrap
import time
@ -449,7 +449,7 @@ if __name__ == '__main__':
while True:
try:
select = int(input("Select AP by number (0 to rescan) : "))
select = int(binput("Select AP by number (0 to rescan) : "))
if select < 0 or select > len(APs):
raise ValueError
break

View File

@ -167,7 +167,7 @@ class Security1(Security):
return -1
def encrypt_data(self, data):
return self.cipher.update(data)
return self.cipher.update(tobytes(data))
def decrypt_data(self, data):
return self.cipher.update(data)
return self.cipher.update(tobytes(data))

View File

@ -234,6 +234,8 @@ class BLE_Bluez_Client:
try:
path.WriteValue([ord(c) for c in data], {}, dbus_interface='org.bluez.GattCharacteristic1')
except TypeError: # python3 compatible
path.WriteValue([c for c in data], {}, dbus_interface='org.bluez.GattCharacteristic1')
except dbus.exceptions.DBusException as e:
raise RuntimeError("Failed to write value to characteristic " + characteristic_uuid + ": " + str(e))

View File

@ -14,12 +14,14 @@
#
# Convenience functions for commonly used data type conversions
import binascii
from future.utils import tobytes
def str_to_hexstr(string):
# Form hexstr by appending ASCII codes (in hex) corresponding to
# each character in the input string
return ''.join('{:02x}'.format(ord(c)) for c in string)
return binascii.hexlify(tobytes(string)).decode()
def hexstr_to_str(hexstr):
@ -28,4 +30,4 @@ def hexstr_to_str(hexstr):
hexstr = '0' + hexstr
# Interpret consecutive pairs of hex characters as 8 bit ASCII codes
# and append characters corresponding to each code to form the string
return ''.join(chr(int(hexstr[2 * i: 2 * i + 2], 16)) for i in range(len(hexstr) // 2))
return binascii.unhexlify(tobytes(hexstr)).decode()