-
Notifications
You must be signed in to change notification settings - Fork 652
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[GHA] Cxx interoperability compatibility and integration tests check
# Motivation Another reusable check is to make sure that all library products of a package are successfully building when consumed from a module that has Cxx interoperability enabled. Another check that's missing is running the integration tests. # Modification This PR adds two new checks to the reusable workflow. One to check for Cxx interoperability compatibility and another one to run the integration tests. I also fixed a misalgined name for the nightly benchmarks. # Result This should be one of the last reusable workflow checks.
- Loading branch information
1 parent
b1bf036
commit d7739e8
Showing
13 changed files
with
329 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
51 changes: 51 additions & 0 deletions
51
IntegrationTests/tests_04_performance/Thresholds/5.10.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
{ | ||
"10000000_asyncsequenceproducer": 21, | ||
"1000000_asyncwriter": 1000050, | ||
"1000_addHandlers": 44050, | ||
"1000_addHandlers_sync": 37050, | ||
"1000_addRemoveHandlers_handlercontext": 8050, | ||
"1000_addRemoveHandlers_handlername": 8050, | ||
"1000_addRemoveHandlers_handlertype": 8050, | ||
"1000_autoReadGetAndSet": 18050, | ||
"1000_autoReadGetAndSet_sync": 0, | ||
"1000_copying_bytebufferview_to_array": 1050, | ||
"1000_copying_circularbuffer_to_array": 1050, | ||
"1000_getHandlers": 8050, | ||
"1000_getHandlers_sync": 36, | ||
"1000_reqs_1_conn": 26400, | ||
"1000_rst_connections": 145050, | ||
"1000_tcpbootstraps": 3050, | ||
"1000_tcpconnections": 152050, | ||
"1000_udp_reqs": 6050, | ||
"1000_udpbootstraps": 2050, | ||
"1000_udpconnections": 75050, | ||
"1_reqs_1000_conn": 389000, | ||
"bytebuffer_lots_of_rw": 2050, | ||
"creating_10000_headers": 0, | ||
"decode_1000_ws_frames": 2050, | ||
"encode_1000_ws_frames_holding_buffer": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_mask": 2050, | ||
"encode_1000_ws_frames_holding_buffer_with_space": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_space_with_mask": 2050, | ||
"encode_1000_ws_frames_new_buffer": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_mask": 5050, | ||
"encode_1000_ws_frames_new_buffer_with_space": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_space_with_mask": 5050, | ||
"execute_hop_10000_tasks": 0, | ||
"future_erase_result": 4050, | ||
"future_lots_of_callbacks": 53050, | ||
"get_100000_headers_canonical_form": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_long_string": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_short_string": 700050, | ||
"modifying_1000_circular_buffer_elements": 0, | ||
"modifying_byte_buffer_view": 6050, | ||
"ping_pong_1000_reqs_1_conn": 319, | ||
"read_10000_chunks_from_file": 110200, | ||
"schedule_10000_tasks": 40100, | ||
"schedule_and_run_10000_tasks": 50050, | ||
"scheduling_10000_executions": 89, | ||
"udp_1000_reqs_1_conn": 6200, | ||
"udp_1_reqs_1000_conn": 162050 | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
{ | ||
"10000000_asyncsequenceproducer": 22, | ||
"1000000_asyncwriter": 1000050, | ||
"1000_addHandlers": 44050, | ||
"1000_addHandlers_sync": 37050, | ||
"1000_addRemoveHandlers_handlercontext": 8050, | ||
"1000_addRemoveHandlers_handlername": 8050, | ||
"1000_addRemoveHandlers_handlertype": 8050, | ||
"1000_autoReadGetAndSet": 18050, | ||
"1000_autoReadGetAndSet_sync": 0, | ||
"1000_copying_bytebufferview_to_array": 1050, | ||
"1000_copying_circularbuffer_to_array": 1050, | ||
"1000_getHandlers": 8050, | ||
"1000_getHandlers_sync": 36, | ||
"1000_reqs_1_conn": 26400, | ||
"1000_rst_connections": 147050, | ||
"1000_tcpbootstraps": 4050, | ||
"1000_tcpconnections": 154050, | ||
"1000_udp_reqs": 6050, | ||
"1000_udpbootstraps": 2050, | ||
"1000_udpconnections": 75050, | ||
"1_reqs_1000_conn": 398000, | ||
"bytebuffer_lots_of_rw": 2050, | ||
"creating_10000_headers": 0, | ||
"decode_1000_ws_frames": 2050, | ||
"encode_1000_ws_frames_holding_buffer": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_mask": 2050, | ||
"encode_1000_ws_frames_holding_buffer_with_space": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_space_with_mask": 2050, | ||
"encode_1000_ws_frames_new_buffer": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_mask": 5050, | ||
"encode_1000_ws_frames_new_buffer_with_space": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_space_with_mask": 5050, | ||
"execute_hop_10000_tasks": 0, | ||
"future_erase_result": 4050, | ||
"future_lots_of_callbacks": 53050, | ||
"get_100000_headers_canonical_form": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_long_string": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_short_string": 700050, | ||
"modifying_1000_circular_buffer_elements": 0, | ||
"modifying_byte_buffer_view": 6050, | ||
"ping_pong_1000_reqs_1_conn": 334, | ||
"read_10000_chunks_from_file": 110200, | ||
"schedule_10000_tasks": 40100, | ||
"schedule_and_run_10000_tasks": 50050, | ||
"scheduling_10000_executions": 89, | ||
"udp_1000_reqs_1_conn": 6200, | ||
"udp_1_reqs_1000_conn": 162050 | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
{ | ||
"10000000_asyncsequenceproducer": 21, | ||
"1000000_asyncwriter": 1000050, | ||
"1000_addHandlers": 44050, | ||
"1000_addHandlers_sync": 37050, | ||
"1000_addRemoveHandlers_handlercontext": 8050, | ||
"1000_addRemoveHandlers_handlername": 8050, | ||
"1000_addRemoveHandlers_handlertype": 8050, | ||
"1000_autoReadGetAndSet": 18050, | ||
"1000_autoReadGetAndSet_sync": 0, | ||
"1000_copying_bytebufferview_to_array": 1050, | ||
"1000_copying_circularbuffer_to_array": 1050, | ||
"1000_getHandlers": 8050, | ||
"1000_getHandlers_sync": 36, | ||
"1000_reqs_1_conn": 26400, | ||
"1000_rst_connections": 147050, | ||
"1000_tcpbootstraps": 4050, | ||
"1000_tcpconnections": 154050, | ||
"1000_udp_reqs": 6050, | ||
"1000_udpbootstraps": 2050, | ||
"1000_udpconnections": 75050, | ||
"1_reqs_1000_conn": 398000, | ||
"bytebuffer_lots_of_rw": 2050, | ||
"creating_10000_headers": 0, | ||
"decode_1000_ws_frames": 2050, | ||
"encode_1000_ws_frames_holding_buffer": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_mask": 2050, | ||
"encode_1000_ws_frames_holding_buffer_with_space": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_space_with_mask": 2050, | ||
"encode_1000_ws_frames_new_buffer": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_mask": 5050, | ||
"encode_1000_ws_frames_new_buffer_with_space": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_space_with_mask": 5050, | ||
"execute_hop_10000_tasks": 0, | ||
"future_erase_result": 4050, | ||
"future_lots_of_callbacks": 53050, | ||
"get_100000_headers_canonical_form": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_long_string": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_short_string": 700050, | ||
"modifying_1000_circular_buffer_elements": 0, | ||
"modifying_byte_buffer_view": 6050, | ||
"ping_pong_1000_reqs_1_conn": 334, | ||
"read_10000_chunks_from_file": 110200, | ||
"schedule_10000_tasks": 40100, | ||
"schedule_and_run_10000_tasks": 50050, | ||
"scheduling_10000_executions": 89, | ||
"udp_1000_reqs_1_conn": 6200, | ||
"udp_1_reqs_1000_conn": 162050 | ||
} | ||
|
51 changes: 51 additions & 0 deletions
51
IntegrationTests/tests_04_performance/Thresholds/nightly-6.0.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
{ | ||
"10000000_asyncsequenceproducer": 21, | ||
"1000000_asyncwriter": 1000050, | ||
"1000_addHandlers": 45050, | ||
"1000_addHandlers_sync": 38050, | ||
"1000_addRemoveHandlers_handlercontext": 8050, | ||
"1000_addRemoveHandlers_handlername": 8050, | ||
"1000_addRemoveHandlers_handlertype": 8050, | ||
"1000_autoReadGetAndSet": 18050, | ||
"1000_autoReadGetAndSet_sync": 0, | ||
"1000_copying_bytebufferview_to_array": 1050, | ||
"1000_copying_circularbuffer_to_array": 1050, | ||
"1000_getHandlers": 8050, | ||
"1000_getHandlers_sync": 36, | ||
"1000_reqs_1_conn": 26400, | ||
"1000_rst_connections": 147000, | ||
"1000_tcpbootstraps": 3050, | ||
"1000_tcpconnections": 155050, | ||
"1000_udp_reqs": 6050, | ||
"1000_udpbootstraps": 2050, | ||
"1000_udpconnections": 76050, | ||
"1_reqs_1000_conn": 393000, | ||
"bytebuffer_lots_of_rw": 2050, | ||
"creating_10000_headers": 0, | ||
"decode_1000_ws_frames": 2050, | ||
"encode_1000_ws_frames_holding_buffer": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_mask": 2050, | ||
"encode_1000_ws_frames_holding_buffer_with_space": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_space_with_mask": 2050, | ||
"encode_1000_ws_frames_new_buffer": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_mask": 5050, | ||
"encode_1000_ws_frames_new_buffer_with_space": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_space_with_mask": 5050, | ||
"execute_hop_10000_tasks": 0, | ||
"future_erase_result": 4050, | ||
"future_lots_of_callbacks": 53050, | ||
"get_100000_headers_canonical_form": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_long_string": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_short_string": 700050, | ||
"modifying_1000_circular_buffer_elements": 0, | ||
"modifying_byte_buffer_view": 6050, | ||
"ping_pong_1000_reqs_1_conn": 343, | ||
"read_10000_chunks_from_file": 110200, | ||
"schedule_10000_tasks": 50100, | ||
"schedule_and_run_10000_tasks": 50050, | ||
"scheduling_10000_executions": 89, | ||
"udp_1000_reqs_1_conn": 6200, | ||
"udp_1_reqs_1000_conn": 165050 | ||
} | ||
|
50 changes: 50 additions & 0 deletions
50
IntegrationTests/tests_04_performance/Thresholds/nightly-main.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
{ | ||
"10000000_asyncsequenceproducer": 21, | ||
"1000000_asyncwriter": 1000050, | ||
"1000_addHandlers": 45050, | ||
"1000_addHandlers_sync": 38050, | ||
"1000_addRemoveHandlers_handlercontext": 8050, | ||
"1000_addRemoveHandlers_handlername": 8050, | ||
"1000_addRemoveHandlers_handlertype": 8050, | ||
"1000_autoReadGetAndSet": 18050, | ||
"1000_autoReadGetAndSet_sync": 0, | ||
"1000_copying_bytebufferview_to_array": 1050, | ||
"1000_copying_circularbuffer_to_array": 1050, | ||
"1000_getHandlers": 8050, | ||
"1000_getHandlers_sync": 36, | ||
"1000_reqs_1_conn": 26400, | ||
"1000_rst_connections": 147000, | ||
"1000_tcpbootstraps": 3050, | ||
"1000_tcpconnections": 155050, | ||
"1000_udp_reqs": 6050, | ||
"1000_udpbootstraps": 2050, | ||
"1000_udpconnections": 76050, | ||
"1_reqs_1000_conn": 393000, | ||
"bytebuffer_lots_of_rw": 2050, | ||
"creating_10000_headers": 0, | ||
"decode_1000_ws_frames": 2050, | ||
"encode_1000_ws_frames_holding_buffer": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_mask": 2050, | ||
"encode_1000_ws_frames_holding_buffer_with_space": 3, | ||
"encode_1000_ws_frames_holding_buffer_with_space_with_mask": 2050, | ||
"encode_1000_ws_frames_new_buffer": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_mask": 5050, | ||
"encode_1000_ws_frames_new_buffer_with_space": 3050, | ||
"encode_1000_ws_frames_new_buffer_with_space_with_mask": 5050, | ||
"execute_hop_10000_tasks": 0, | ||
"future_erase_result": 4050, | ||
"future_lots_of_callbacks": 53050, | ||
"get_100000_headers_canonical_form": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_long_string": 700050, | ||
"get_100000_headers_canonical_form_trimming_whitespace_from_short_string": 700050, | ||
"modifying_1000_circular_buffer_elements": 0, | ||
"modifying_byte_buffer_view": 6050, | ||
"ping_pong_1000_reqs_1_conn": 343, | ||
"read_10000_chunks_from_file": 110200, | ||
"schedule_10000_tasks": 50100, | ||
"schedule_and_run_10000_tasks": 50050, | ||
"scheduling_10000_executions": 89, | ||
"udp_1000_reqs_1_conn": 6200, | ||
"udp_1_reqs_1000_conn": 165050 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#!/bin/bash | ||
##===----------------------------------------------------------------------===## | ||
## | ||
## This source file is part of the SwiftNIO open source project | ||
## | ||
## Copyright (c) 2024 Apple Inc. and the SwiftNIO project authors | ||
## Licensed under Apache License v2.0 | ||
## | ||
## See LICENSE.txt for license information | ||
## See CONTRIBUTORS.txt for the list of SwiftNIO project authors | ||
## | ||
## SPDX-License-Identifier: Apache-2.0 | ||
## | ||
##===----------------------------------------------------------------------===## | ||
|
||
set -euo pipefail | ||
|
||
log() { printf -- "** %s\n" "$*" >&2; } | ||
error() { printf -- "** ERROR: %s\n" "$*" >&2; } | ||
fatal() { error "$@"; exit 1; } | ||
|
||
log "Checking for Cxx interoperability comaptibility..." | ||
|
||
source_dir=$(pwd) | ||
working_dir=$(mktemp -d) | ||
project_name=$(basename "$working_dir") | ||
source_file=Sources/$project_name/$(echo "$project_name" | tr . _).swift | ||
library_products=$( swift package dump-package | jq -r '.products[] | select(.type.library != null) | .name') | ||
package_name=$(swift package dump-package | jq -r '.name') | ||
|
||
cd "$working_dir" | ||
swift package init | ||
echo "package.dependencies.append(.package(path: \"$source_dir\"))" >> Package.swift | ||
|
||
for product in $library_products; do | ||
echo "package.targets.first!.dependencies.append(.product(name: \"$product\", package: \"$package_name\"))" >> Package.swift | ||
echo "import $product" >> "$source_file" | ||
done | ||
|
||
swift build | ||
|
||
log "✅ Passed the Cxx interoperability tests." |
Oops, something went wrong.