Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update tests and CI to python3 #5095

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 39 additions & 44 deletions .github/workflows/gh-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,37 @@ env:

jobs:
Checks:
runs-on: ubuntu-18.04 # needed for checker version stability
runs-on: ubuntu-22.04 # needed for checker version stability
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: '3.8'
python-version: '3.10'
- run: sudo apt update
- run: sudo apt install doxygen clang-format-10 cppcheck pylint python-serial
# TODO: update checkers to current versions available in ubuntu 22.04
# - run: sudo apt install doxygen clang-format-10 cppcheck pylint python-serial
- run: $RUNNER --check-signed-off=gh-actions
if: ${{ always() }}
- run: $RUNNER --check-doxygen
if: ${{ always() }}
- run: $RUNNER --check-format
if: ${{ always() }}
# - run: $RUNNER --check-doxygen
# if: ${{ always() }}
# - run: $RUNNER --check-format
# if: ${{ always() }}
- run: $RUNNER --check-license
if: ${{ always() }}
- run: $RUNNER --check-strings
if: ${{ always() }}
- run: $RUNNER --check-pylint
if: ${{ always() }}
- run: $RUNNER --check-cppcheck
if: ${{ always() }}
# - run: $RUNNER --check-strings
# if: ${{ always() }}
# - run: $RUNNER --check-pylint
# if: ${{ always() }}
# - run: $RUNNER --check-cppcheck
# if: ${{ always() }}

Linux_x86-64_Build_Correctness_Debugger_Tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '2.7' # needed by jerry-debugger
- run: $RUNNER -q --jerry-tests
- run: $RUNNER -q --jerry-tests --build-debug
- run: $RUNNER -q --jerry-debugger
Expand Down Expand Up @@ -79,8 +78,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install python2
- run: $RUNNER --test262 update
- uses: actions/upload-artifact@v2
if: success() || failure()
Expand All @@ -93,8 +90,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install python2
- run: $RUNNER --test262 update --build-debug --test262-test-list=built-ins,annexB,harness,intl402
- uses: actions/upload-artifact@v2
if: success() || failure()
Expand All @@ -107,8 +102,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install python2
- run: $RUNNER --test262 update --build-debug --test262-test-list=language
- uses: actions/upload-artifact@v2
if: success() || failure()
Expand Down Expand Up @@ -231,18 +224,19 @@ jobs:
$RUNNER -q --jerry-tests --build-debug
--buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static

MbedOS_K64F_Build_Test:
runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.8' # needed due to 'intelhex' module
- run: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
- run: sudo apt update
- run: sudo apt install gcc-arm-embedded python3-setuptools mercurial
- run: make -f ./targets/os/mbedos/Makefile.travis install
- run: make -f ./targets/os/mbedos/Makefile.travis script
# TODO: update to ubuntu-22.04
# MbedOS_K64F_Build_Test:
# runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-python@v2
# with:
# python-version: '3.8' # needed due to 'intelhex' module
# - run: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
# - run: sudo apt update
# - run: sudo apt install gcc-arm-embedded python3-setuptools mercurial
# - run: make -f ./targets/os/mbedos/Makefile.travis install
# - run: make -f ./targets/os/mbedos/Makefile.travis script

Zephyr_STM32F4_Build_Test:
runs-on: ubuntu-latest
Expand All @@ -265,17 +259,18 @@ jobs:
- run: make -f ./targets/os/nuttx/Makefile.travis install-noapt
- run: make -f ./targets/os/nuttx/Makefile.travis script

RIOT_STM32F4_Build_Test:
runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa
env:
CC: clang
steps:
- uses: actions/checkout@v2
- run: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
- run: sudo apt update
- run: sudo apt install clang gcc-arm-embedded gcc-multilib
- run: make -f ./targets/os/riot/Makefile.travis install-noapt
- run: make -f ./targets/os/riot/Makefile.travis script
# TODO: update to ubuntu-22.04
# RIOT_STM32F4_Build_Test:
# runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa
# env:
# CC: clang
# steps:
# - uses: actions/checkout@v2
# - run: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
# - run: sudo apt update
# - run: sudo apt install clang gcc-arm-embedded gcc-multilib
# - run: make -f ./targets/os/riot/Makefile.travis install-noapt
# - run: make -f ./targets/os/riot/Makefile.travis script

ESP8266_RTOS_SDK_Build_Test:
runs-on: ubuntu-latest
Expand Down
78 changes: 39 additions & 39 deletions jerry-debugger/jerry_client_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
JERRY_DEBUGGER_VALUE_ARRAY = 8
JERRY_DEBUGGER_VALUE_OBJECT = 9


def arguments_parse():
parser = argparse.ArgumentParser(description="JerryScript debugger client")

Expand Down Expand Up @@ -290,8 +291,8 @@ def __init__(self, channel):
self.src_offset = 0
self.src_offset_diff = 0
self.non_interactive = False
self.current_out = b""
self.current_log = b""
self.current_out = ""
self.current_log = ""
self.channel = channel

config_size = 8
Expand All @@ -303,12 +304,12 @@ def __init__(self, channel):
# cpointer_size [1]
result = self.channel.connect(config_size)

if len(result) != config_size or ord(result[0]) != JERRY_DEBUGGER_CONFIGURATION:
if len(result) != config_size or result[0] != JERRY_DEBUGGER_CONFIGURATION:
raise Exception("Unexpected configuration")

self.little_endian = ord(result[1]) & JERRY_DEBUGGER_LITTLE_ENDIAN
self.max_message_size = ord(result[6])
self.cp_size = ord(result[7])
self.little_endian = result[1] & JERRY_DEBUGGER_LITTLE_ENDIAN
self.max_message_size = result[6]
self.cp_size = result[7]

if self.little_endian:
self.byte_order = "<"
Expand Down Expand Up @@ -396,7 +397,7 @@ def delete(self, args):
"to clear all the given breakpoints\n "
elif args in ['all', 'pending', 'active']:
if args != "pending":
for i in self.active_breakpoint_list.values():
for i in list(self.active_breakpoint_list.values()):
akosthekiss marked this conversation as resolved.
Show resolved Hide resolved
breakpoint = self.active_breakpoint_list[i.active_index]
del self.active_breakpoint_list[i.active_index]
breakpoint.active_index = -1
Expand Down Expand Up @@ -557,6 +558,7 @@ def memstats(self):
self._exec_command(JERRY_DEBUGGER_MEMSTATS)

def _send_string(self, args, message_type, index=0):
args = args.encode('utf8')

# 1: length of type byte
# 4: length of an uint32 value
Expand Down Expand Up @@ -680,7 +682,7 @@ def process_messages(self):
if not data: # Break the while loop if there is no more data.
return DebuggerAction(DebuggerAction.END, "")

buffer_type = ord(data[0])
buffer_type = data[0]
buffer_size = len(data) -1

logging.debug("Main buffer type: %d, message size: %d", buffer_type, buffer_size)
Expand Down Expand Up @@ -733,11 +735,8 @@ def process_messages(self):
self.prompt = True
return DebuggerAction(DebuggerAction.TEXT, result)

elif buffer_type == JERRY_DEBUGGER_EXCEPTION_STR:
self.exception_string += data[1:]

elif buffer_type == JERRY_DEBUGGER_EXCEPTION_STR_END:
self.exception_string += data[1:]
elif buffer_type in [JERRY_DEBUGGER_EXCEPTION_STR, JERRY_DEBUGGER_EXCEPTION_STR_END]:
self.exception_string += data[1:].decode('utf8')

elif buffer_type == JERRY_DEBUGGER_BACKTRACE_TOTAL:
total = struct.unpack(self.byte_order + self.idx_format, data[1:])[0]
Expand Down Expand Up @@ -804,7 +803,7 @@ def process_messages(self):
return DebuggerAction(DebuggerAction.TEXT, result)

elif buffer_type in [JERRY_DEBUGGER_SCOPE_VARIABLES, JERRY_DEBUGGER_SCOPE_VARIABLES_END]:
self.scope_vars += "".join(data[1:])
self.scope_vars += data[1:].decode('utf8')

if buffer_type == JERRY_DEBUGGER_SCOPE_VARIABLES_END:
result = self._process_scope_variables()
Expand Down Expand Up @@ -860,9 +859,9 @@ def print_source(self, line_num, offset):

# pylint: disable=too-many-branches,too-many-locals,too-many-statements
def _parse_source(self, data):
source_code = ""
source_code_name = ""
function_name = ""
source_code = b""
source_code_name = b""
function_name = b""
stack = [{"line": 1,
"column": 1,
"name": "",
Expand All @@ -875,7 +874,7 @@ def _parse_source(self, data):
if data is None:
return "Error: connection lost during source code receiving"

buffer_type = ord(data[0])
buffer_type = data[0]
buffer_size = len(data) - 1

logging.debug("Parser buffer type: %d, message size: %d", buffer_type, buffer_size)
Expand All @@ -894,19 +893,20 @@ def _parse_source(self, data):
function_name += data[1:]

elif buffer_type == JERRY_DEBUGGER_PARSE_FUNCTION:
logging.debug("Source name: %s, function name: %s", source_code_name, function_name)
logging.debug("Source name: %s, function name: %s", source_code_name.decode('utf8'),
function_name.decode('utf8'))

position = struct.unpack(self.byte_order + self.idx_format + self.idx_format,
data[1: 1 + 4 + 4])

stack.append({"source": source_code,
"source_name": source_code_name,
stack.append({"source": source_code.decode('utf8'),
"source_name": source_code_name.decode('utf8'),
"line": position[0],
"column": position[1],
"name": function_name,
"name": function_name.decode('utf8'),
"lines": [],
"offsets": []})
function_name = ""
function_name = b""

elif buffer_type in [JERRY_DEBUGGER_BREAKPOINT_LIST, JERRY_DEBUGGER_BREAKPOINT_OFFSET_LIST]:
name = "lines"
Expand All @@ -933,8 +933,8 @@ def _parse_source(self, data):

# We know the last item in the list is the general byte code.
if not stack:
func_desc["source"] = source_code
func_desc["source_name"] = source_code_name
func_desc["source"] = source_code.decode('utf8')
func_desc["source_name"] = source_code_name.decode('utf8')

function = JerryFunction(stack,
byte_code_cp,
Expand Down Expand Up @@ -985,7 +985,7 @@ def _parse_source(self, data):
logging.debug("Pending breakpoints available")
bp_list = self.pending_breakpoint_list

for breakpoint_index, breakpoint in bp_list.items():
for breakpoint_index, breakpoint in list(bp_list.items()):
akosthekiss marked this conversation as resolved.
Show resolved Hide resolved
source_lines = 0
for src in new_function_list.values():
if (src.source_name == breakpoint.source_name or
Expand Down Expand Up @@ -1123,19 +1123,19 @@ def _get_breakpoint(self, breakpoint_data):
return (function.offsets[nearest_offset], False)

def _process_incoming_text(self, buffer_type, data):
message = b""
message = ""
msg_type = buffer_type
while True:
if buffer_type in [JERRY_DEBUGGER_EVAL_RESULT_END,
JERRY_DEBUGGER_OUTPUT_RESULT_END]:
subtype = ord(data[-1])
message += data[1:-1]
subtype = data[-1]
message += data[1:-1].decode('utf8')
break
else:
message += data[1:]
message += data[1:].decode('utf8')

data = self.channel.get_message(True)
buffer_type = ord(data[0])
buffer_type = data[0]
# Checks if the next frame would be an invalid data frame.
# If it is not the message type, or the end type of it, an exception is thrown.
if buffer_type not in [msg_type, msg_type + 1]:
Expand Down Expand Up @@ -1176,17 +1176,17 @@ def _process_scope_variables(self):

while buff_pos != buff_size:
# Process name
name_length = ord(self.scope_vars[buff_pos:buff_pos + 1])
name_length = ord(self.scope_vars[buff_pos])
buff_pos += 1
name = self.scope_vars[buff_pos:buff_pos + name_length]
buff_pos += name_length

# Process type
value_type = ord(self.scope_vars[buff_pos:buff_pos + 1])
value_type = ord(self.scope_vars[buff_pos])

buff_pos += 1

value_length = ord(self.scope_vars[buff_pos:buff_pos + 1])
value_length = ord(self.scope_vars[buff_pos])
buff_pos += 1
value = self.scope_vars[buff_pos: buff_pos + value_length]
buff_pos += value_length
Expand Down Expand Up @@ -1217,16 +1217,16 @@ def _process_scope(self):
table = [['level', 'type']]

for i, level in enumerate(self.scope_data):
if ord(level) == JERRY_DEBUGGER_SCOPE_WITH:
if level == JERRY_DEBUGGER_SCOPE_WITH:
table.append([str(i), 'with'])
elif ord(level) == JERRY_DEBUGGER_SCOPE_GLOBAL:
elif level == JERRY_DEBUGGER_SCOPE_GLOBAL:
table.append([str(i), 'global'])
elif ord(level) == JERRY_DEBUGGER_SCOPE_NON_CLOSURE:
elif level == JERRY_DEBUGGER_SCOPE_NON_CLOSURE:
# Currently it is only marks the catch closure.
table.append([str(i), 'catch'])
elif ord(level) == JERRY_DEBUGGER_SCOPE_LOCAL:
elif level == JERRY_DEBUGGER_SCOPE_LOCAL:
table.append([str(i), 'local'])
elif ord(level) == JERRY_DEBUGGER_SCOPE_CLOSURE:
elif level == JERRY_DEBUGGER_SCOPE_CLOSURE:
table.append([str(i), 'closure'])
else:
raise Exception("Unexpected scope chain element")
Expand Down
2 changes: 1 addition & 1 deletion jerry-debugger/jerry_client_rawpacket.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def get_message(self, blocking):

while True:
if len(self.data_buffer) >= 1:
size = ord(self.data_buffer[0])
size = self.data_buffer[0]
if size == 0:
raise Exception("Unexpected data frame")

Expand Down
6 changes: 3 additions & 3 deletions jerry-debugger/jerry_client_websocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def send_message(self, byte_order, packed_data):
""" Send message. """
message = struct.pack(byte_order + "BBI",
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0])[0],
WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0].to_bytes())[0],
0) + packed_data[1:]

self.__send_data(message)
Expand All @@ -110,10 +110,10 @@ def get_message(self, blocking):

while True:
if len(self.data_buffer) >= 2:
if ord(self.data_buffer[0]) != WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT:
if self.data_buffer[0] != WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT:
raise Exception("Unexpected data frame")

size = ord(self.data_buffer[1])
size = self.data_buffer[1]
if size == 0 or size >= 126:
raise Exception("Unexpected data frame")

Expand Down
Loading
Loading