Skip to content
Closed
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
2 changes: 1 addition & 1 deletion .github/workflows/automated_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ jobs:

delete-release-on-failure:
runs-on: ubuntu-24.04
needs: create-draft-release
needs: finalize-release
if: ${{ failure() || cancelled() }}
permissions:
contents: write
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/coverage_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ on:
jobs:
coverage-report:
runs-on: ubuntu-24.04
permissions:
contents: write # required to upload release assets
outputs:
artifact-name: ${{ steps.set-artifact-name.outputs.artifact-name }}

Expand Down Expand Up @@ -56,13 +54,15 @@ jobs:
bazel coverage //... --build_tests_only

- name: Generate HTML Coverage Report
# FIXME: "--ignore-errors category,inconsistent" is a workaround to cope with gcov messing up hit counts because of internal data races
run: |
genhtml "$(bazel info output_path)/_coverage/_coverage_report.dat" \
-o=cpp_coverage \
--show-details \
--legend \
--function-coverage \
--branch-coverage
--branch-coverage \
--ignore-errors category,inconsistent

- name: Create archive of test report
run: |
Expand Down
15 changes: 15 additions & 0 deletions quality/integration_testing/integration_testing.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ def _extend_list_in_kwargs(kwargs, key, values):
kwargs[key] = kwargs.get(key, []) + values
return kwargs

def _extend_list_in_kwargs_without_duplicates(kwargs, key, values):
kwargs_values = kwargs.get(key, [])
for value in values:
if value not in kwargs_values:
kwargs_values.append(value)
kwargs[key] = kwargs_values
return kwargs

def integration_test(name, srcs, filesystem, **kwargs):
pytest_bootstrap = Label("//quality/integration_testing:main.py")
pytest_toml = Label("//quality/integration_testing:pytest.toml")
Expand Down Expand Up @@ -154,6 +162,13 @@ def integration_test(name, srcs, filesystem, **kwargs):
**kwargs
)

# FIXME: Integration tests are highly flaky with TSAN. (Ticket-249859)
_extend_list_in_kwargs_without_duplicates(
kwargs,
"target_compatible_with",
["//quality/sanitizer/constraints:no_tsan"],
)

test_as_exec(
name = name,
executable = select({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ def test_bigdata_exchange(sut):
# Sender runs for 30 cycles at 40ms intervals, Receiver receives 25 cycles
with sut.start_process("./bin/bigdata --mode send -t 40 -n 30", cwd="/opt/bigdata/") as sender_process:
with sut.start_process("./bin/bigdata --mode recv -n 25", cwd="/opt/bigdata/") as receiver_process:
assert receiver_process.wait_for_exit() == 0
assert receiver_process.wait_for_exit(timeout=120) == 0
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ def test_generic_proxy(sut):
# Sender runs for 30 cycles at 40ms intervals, Receiver receives 25 cycles
with sut.start_process("./bin/generic_proxy -m send -t 40 -n 30", cwd="/opt/generic_proxy/") as sender:
with sut.start_process("./bin/generic_proxy -m recv -n 25", cwd="/opt/generic_proxy/") as receiver:
assert receiver.wait_for_exit() == 0
assert receiver.wait_for_exit(timeout=120) == 0
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ def test_multiple_proxies(sut):
# Sender runs for 30 cycles at 40ms intervals, Receiver receives 25 cycles
with sut.start_process("./bin/multiple_proxies -m send -t 40 -n 30", cwd="/opt/multiple_proxies/") as sender:
with sut.start_process("./bin/multiple_proxies -m recv -n 25", cwd="/opt/multiple_proxies/") as receiver:
assert receiver.wait_for_exit() == 0
assert receiver.wait_for_exit(timeout=120) == 0