Skip to content

Fixup failing fuchsia tests #127461

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

Merged
merged 3 commits into from
Jul 10, 2024
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
63 changes: 17 additions & 46 deletions src/ci/docker/scripts/fuchsia-test-runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
"""

import argparse
from concurrent.futures import ThreadPoolExecutor
from dataclasses import dataclass
import glob
import io
import json
Expand All @@ -20,6 +18,8 @@
import shutil
import subprocess
import sys
from concurrent.futures import ThreadPoolExecutor
from dataclasses import dataclass
from pathlib import Path
from typing import ClassVar, List, Optional

Expand All @@ -42,12 +42,8 @@ def exhaust_pipe(handler, pipe):
for line in pipe:
handler(line.rstrip())

executor_out = executor.submit(
exhaust_pipe, stdout_handler, process.stdout
)
executor_err = executor.submit(
exhaust_pipe, stderr_handler, process.stderr
)
executor_out = executor.submit(exhaust_pipe, stdout_handler, process.stdout)
executor_err = executor.submit(exhaust_pipe, stderr_handler, process.stderr)
executor_out.result()
executor_err.result()
retcode = process.poll()
Expand Down Expand Up @@ -203,9 +199,7 @@ def build_id(self, binary):
raise Exception(f"Unreadable build-id for binary {binary}")
data = json.loads(process.stdout)
if len(data) != 1:
raise Exception(
f"Unreadable output from llvm-readelf for binary {binary}"
)
raise Exception(f"Unreadable output from llvm-readelf for binary {binary}")
notes = data[0]["Notes"]
for note in notes:
note_section = note["NoteSection"]
Expand Down Expand Up @@ -265,19 +259,10 @@ def write_to_file(self):
def setup_logging(self, log_to_file=False):
fs = logging.Formatter("%(asctime)s %(levelname)s:%(name)s:%(message)s")
if log_to_file:
logfile_handler = logging.FileHandler(
self.tmp_dir().joinpath("log")
)
logfile_handler = logging.FileHandler(self.tmp_dir().joinpath("log"))
logfile_handler.setLevel(logging.DEBUG)
logfile_handler.setFormatter(fs)
logging.getLogger().addHandler(logfile_handler)
stream_handler = logging.StreamHandler(sys.stdout)
stream_handler.setFormatter(fs)
if self.verbose:
stream_handler.setLevel(logging.DEBUG)
else:
stream_handler.setLevel(logging.INFO)
logging.getLogger().addHandler(stream_handler)
logging.getLogger().setLevel(logging.DEBUG)

@property
Expand Down Expand Up @@ -454,9 +439,7 @@ def start(self):
# Initialize temp directory
os.makedirs(self.tmp_dir(), exist_ok=True)
if len(os.listdir(self.tmp_dir())) != 0:
raise Exception(
f"Temp directory is not clean (in {self.tmp_dir()})"
)
raise Exception(f"Temp directory is not clean (in {self.tmp_dir()})")
self.setup_logging(log_to_file=True)
os.mkdir(self.output_dir)

Expand Down Expand Up @@ -493,9 +476,7 @@ def start(self):
shutil.rmtree(self.local_pb_path, ignore_errors=True)

# Look up the product bundle transfer manifest.
self.env_logger.info(
"Looking up the product bundle transfer manifest..."
)
self.env_logger.info("Looking up the product bundle transfer manifest...")
product_name = "minimal." + self.triple_to_arch(self.target)
sdk_version = self.read_sdk_version()

Expand All @@ -517,9 +498,7 @@ def start(self):
)

try:
transfer_manifest_url = json.loads(output)[
"transfer_manifest_url"
]
transfer_manifest_url = json.loads(output)["transfer_manifest_url"]
except Exception as e:
print(e)
raise Exception("Unable to parse transfer manifest") from e
Expand Down Expand Up @@ -769,9 +748,7 @@ def run(self, args):
# Use /tmp as the test temporary directory
env_vars += '\n "RUST_TEST_TMPDIR=/tmp",'

cml.write(
self.CML_TEMPLATE.format(env_vars=env_vars, exe_name=exe_name)
)
cml.write(self.CML_TEMPLATE.format(env_vars=env_vars, exe_name=exe_name))

runner_logger.info("Compiling CML...")

Expand Down Expand Up @@ -922,20 +899,16 @@ def run(self, args):

if stdout_path is not None:
if not os.path.exists(stdout_path):
runner_logger.error(
f"stdout file {stdout_path} does not exist."
)
runner_logger.error(f"stdout file {stdout_path} does not exist.")
else:
with open(stdout_path, encoding="utf-8", errors="ignore") as f:
runner_logger.info(f.read())
sys.stdout.write(f.read())
if stderr_path is not None:
if not os.path.exists(stderr_path):
runner_logger.error(
f"stderr file {stderr_path} does not exist."
)
runner_logger.error(f"stderr file {stderr_path} does not exist.")
else:
with open(stderr_path, encoding="utf-8", errors="ignore") as f:
runner_logger.error(f.read())
sys.stderr.write(f.read())

runner_logger.info("Done!")
return return_code
Expand Down Expand Up @@ -1037,7 +1010,7 @@ def debug(self, args):
f"--symbol-path={self.rust_dir}/lib/rustlib/{self.target}/lib",
]

# Add rust source if it's available
# Add rust source if it's available
rust_src_map = None
if args.rust_src is not None:
# This matches the remapped prefix used by compiletest. There's no
Expand Down Expand Up @@ -1210,7 +1183,7 @@ def print_help(args):
start_parser.add_argument(
"--use-local-product-bundle-if-exists",
help="if the product bundle already exists in the local path, use "
"it instead of downloading it again",
"it instead of downloading it again",
action="store_true",
)
start_parser.set_defaults(func=start)
Expand Down Expand Up @@ -1246,9 +1219,7 @@ def print_help(args):
)
cleanup_parser.set_defaults(func=cleanup)

syslog_parser = subparsers.add_parser(
"syslog", help="prints the device syslog"
)
syslog_parser = subparsers.add_parser("syslog", help="prints the device syslog")
syslog_parser.set_defaults(func=syslog)

debug_parser = subparsers.add_parser(
Expand Down
1 change: 1 addition & 0 deletions tests/ui/test-attrs/test-panic-abort-nocapture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
//@ ignore-wasm no panic or subprocess support
//@ ignore-emscripten no panic or subprocess support
//@ ignore-sgx no subprocess support
//@ ignore-fuchsia code returned as ZX_TASK_RETCODE_EXCEPTION_KILL, FIXME (#127539)

#![cfg(test)]

Expand Down
4 changes: 2 additions & 2 deletions tests/ui/test-attrs/test-panic-abort-nocapture.run.stderr
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
thread 'main' panicked at $DIR/test-panic-abort-nocapture.rs:34:5:
thread 'main' panicked at $DIR/test-panic-abort-nocapture.rs:35:5:
assertion `left == right` failed
left: 2
right: 4
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at $DIR/test-panic-abort-nocapture.rs:28:5:
thread 'main' panicked at $DIR/test-panic-abort-nocapture.rs:29:5:
assertion `left == right` failed
left: 2
right: 4
Expand Down
1 change: 1 addition & 0 deletions tests/ui/test-attrs/test-panic-abort.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
//@ ignore-wasm no panic or subprocess support
//@ ignore-emscripten no panic or subprocess support
//@ ignore-sgx no subprocess support
//@ ignore-fuchsia code returned as ZX_TASK_RETCODE_EXCEPTION_KILL, FIXME (#127539)

#![cfg(test)]
#![feature(test)]
Expand Down
2 changes: 1 addition & 1 deletion tests/ui/test-attrs/test-panic-abort.run.stdout
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ hello, world
testing123
---- it_fails stderr ----
testing321
thread 'main' panicked at $DIR/test-panic-abort.rs:39:5:
thread 'main' panicked at $DIR/test-panic-abort.rs:40:5:
assertion `left == right` failed
left: 2
right: 5
Expand Down
Loading