This configuration seems to slow down too much Ivy server so it can send message/response in time
Test config:
- name: Gperf CPU and Strace - QUIC Client-IvyServer Communication Test
description: Verify that the Picoquic client can communicate with the Picoquic server
over Docker Compose network.
network_environment:
type: docker_compose
execution_environments:
- type: gperf_cpu
- type: strace
iterations: 1
services:
picoquic_client:
name: picoquic_client
timeout: 100
implementation:
name: picoquic
type: iut
shadow_compatible: false
gperf_compatible: false
version:
version: rfc9000
commit: bb67995f2d7c0e577c2c8788313c3b580d3df9a7
dependencies:
- name: picotls
url: https://github.com/h2o/picotls.git
commit: 047c5fe20bb9ea91c1caded8977134f19681ec76
client:
initial_version: '00000001'
protocol:
alpn:
param: -a
value: hq-interop
additional_parameters: -l - -D -L
binary:
dir: /opt/picoquic
name: ./picoquicdemo
network:
interface:
param: -e
value: lo
port: 4443
destination: 11.0.0.1
certificates:
cert:
param: -c
file: /opt/certs/cert.pem
local_file: config/certs/cert.pem
key:
param: -k
file: /opt/certs/key.pem
local_file: config/certs/key.pem
ticket_file:
param: -T
file: /opt/ticket/ticket.key
local_file: config/tls_keys/
logging:
log_path: /app/logs/client.log
err_path: /app/logs/client.err.log
qlog:
param: -q
path: /app/logs/client.qlog
server:
initial_version: '00000001'
protocol:
alpn:
param: -a
value: hq-interop
additional_parameters: -l - -n servername -D -L
binary:
dir: /opt/picoquic
name: ./picoquicdemo
network:
interface:
param: -e
value: eth0
port: 4443
destination: 11.0.0.1
certificates:
cert:
param: -c
file: /opt/certs/cert.pem
local_file: config/certs/cert.pem
key:
param: -k
file: /opt/certs/key.pem
local_file: config/certs/key.pem
ticket_file:
param: -T
file: /opt/ticket/ticket.key
local_file: config/tls_keys/
logging:
log_path: /app/logs/server.log
err_path: /app/logs/server.err.log
qlog:
param: -q
path: /app/logs/server.qlog
protocol:
name: quic
version: rfc9000
role: client
target: ivy_server
protocol_type: client_server
ports:
- 5000:5000
- 8081:8081
generate_new_certificates: true
volumes: []
directories_to_start: []
ivy_server:
name: ivy_server
timeout: 60
implementation:
name: panther_ivy
type: testers
shadow_compatible: true
gperf_compatible: true
test: quic_client_test_max
protocol: quic
version:
version: rfc9000
commit: production
dependencies:
- name: picotls
url: https://github.com/h2o/picotls.git
commit: 047c5fe20bb9ea91c1caded8977134f19681ec76
env:
TEST_ALPN: hq-interop
PROTOCOL_TESTED: quic
ZRTT_SSLKEYLOGFILE: $SOURCE_DIR/panther_ivy/protocol-testing/quic/last_tls_key.txt
RETRY_TOKEN_FILE: $SOURCE_DIR/panther_ivy/protocol-testing/quic/last_retry_token.txt
NEW_TOKEN_FILE: $SOURCE_DIR/panther_ivy/protocol-testing/quic/last_new_token.txt
ENCRYPT_TICKET_FILE: $SOURCE_DIR/panther_ivy/protocol-testing/quic/last_encrypt_session_ticket.txt
SESSION_TICKET_FILE: $SOURCE_DIR/panther_ivy/protocol-testing/quic/last_session_ticket_cb.txt
SAVED_PACKET: $SOURCE_DIR/panther_ivy/protocol-testing/quic/saved_packet.txt
initial_max_stream_id_bidi: $SOURCE_DIR/panther_ivy/protocol-testing/quic/initial_max_stream_id_bidi.txt
active_connection_id_limit: $SOURCE_DIR/panther_ivy/protocol-testing/quic/active_connection_id_limit.txt
initial_max_stream_data_bidi_local: $SOURCE_DIR/panther_ivy/protocol-testing/quic/initial_max_stream_data_bidi_local.txt
initial_max_stream_data_bidi_remote: $SOURCE_DIR/panther_ivy/protocol-testing/quic/initial_max_stream_data_bidi_remote.txt
initial_max_stream_data_uni: $SOURCE_DIR/panther_ivy/protocol-testing/quic/initial_max_stream_data_uni.txt
initial_max_data: $SOURCE_DIR/panther_ivy/protocol-testing/quic/initial_max_data.txt
INITIAL_VERSION: '1'
parameters:
tests_dir:
value: quic_tests/
description: 'Directory where the Ivy QUIC tests are stored (default:
quic_tests/)'
seed:
value: 0
description: 'Seed for the random generator (default: 0)'
the_cid:
value: 0
description: 'Client Initial connection ID (default: 0)'
server_port:
value: 4443
description: 'Server port (default: 4443)'
iversion:
value: 1
description: 'Initial version (default: 1)'
server_addr:
value: 2130706433
description: 'Server address (default: 0x7F000001)'
server_cid:
value: 0
description: 'Server connection ID (default: 0)'
client_port:
value: 4997
description: 'Client port (default: 4443)'
client_port_alt:
value: 4444
description: 'Client port alternative (default: 4444)'
client_addr:
value: 2130706433
description: 'Client address (default: 0x7F000001)'
client:
initial_version: '00000001'
protocol:
alpn:
param: -a
value: hq-interop
additional_parameters: -l - -D -L
binary:
dir: /opt/panther_ivy/protocol-testing/
name: ''
network:
interface:
param: -e
value: lo
port: 4443
destination: 11.0.0.1
certificates:
cert:
param: -c
file: /opt/certs/cert.pem
local_file: config/certs/cert.pem
key:
param: -k
file: /opt/certs/key.pem
local_file: config/certs/key.pem
ticket_file:
param: -T
file: /opt/ticket/ticket.key
local_file: config/tls_keys/
logging:
log_path: /app/logs/client.log
err_path: /app/logs/client.err.log
qlog:
param: -q
path: /app/logs/client.qlog
tests:
quic_server_test_stream:
enabled: false
description: Test QUIC server stream
quic_server_test_max:
enabled: false
description: Test QUIC server max
quic_server_test_accept_maxdata:
enabled: false
description: Test QUIC server accept max data
quic_server_test_reset_stream:
enabled: false
description: Test QUIC server reset stream
quic_server_test_connection_close:
enabled: false
description: Test QUIC server connection close
server:
the_cid: '0'
iversion: '1'
server_port: 4443
server_addr: 2130706433
server_cid: '1'
client_port: 4997
client_port_alt: 4444
client_addr: 2130706433
initial_version: '00000001'
protocol:
alpn:
param: -a
value: hq-interop
additional_parameters: -l - -n servername -D -L
binary:
dir: /opt/panther_ivy/protocol-testing/
name: ''
network:
interface:
param: -e
value: eth0
port: 4443
destination: 11.0.0.1
certificates:
cert:
param: -c
file: /opt/certs/cert.pem
local_file: config/certs/cert.pem
key:
param: -k
file: /opt/certs/key.pem
local_file: config/certs/key.pem
ticket_file:
param: -T
file: /opt/ticket/ticket.key
local_file: config/tls_keys/
logging:
log_path: /app/logs/server.log
err_path: /app/logs/server.err.log
qlog:
param: -q
path: /app/logs/server.qlog
tests:
quic_client_test_max:
enabled: false
description: Test QUIC client max
quic_client_test_ext_min_ack_delay:
enabled: false
description: Test QUIC client extension minimum ACK delay
quic_client_test_unknown:
enabled: false
description: Test QUIC client unknown
quic_client_test_unknown_tp:
enabled: false
description: Test QUIC client unknown transport parameter
environment:
PROTOCOL_TESTED: ''
RUST_LOG: debug
RUST_BACKTRACE: '1'
SOURCE_DIR: /opt/
IVY_DIR: $SOURCE_DIR/panther_ivy
PYTHON_IVY_DIR: /usr/local/lib/python3.10/dist-packages/ms_ivy-1.8.25-py3.10-linux-x86_64.egg/
IVY_INCLUDE_PATH: $IVY_INCLUDE_PATH:/usr/local/lib/python3.10/dist-packages/ms_ivy-1.8.25-py3.10-linux-x86_64.egg/ivy/include/1.7
Z3_LIBRARY_DIRS: $IVY_DIR/submodules/z3/build
Z3_LIBRARY_PATH: $IVY_DIR/submodules/z3/build
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$IVY_DIR/submodules/z3/build
PROOTPATH: $SOURCE_DIR
ADDITIONAL_PYTHONPATH: /app/implementations/quic-implementations/aioquic/src/:$IVY_DIR/submodules/z3/build/python:$PYTHON_IVY_DIR
ADDITIONAL_PATH: /go/bin:$IVY_DIR/submodules/z3/build
parameters:
tests_output_dir:
value: temp/
description: Directory where the tests output will be stored
tests_build_dir:
value: build/
description: Directory where the tests will be built
iterations_per_test:
value: '1'
description: Number of iterations per test
internal_iterations_per_test:
value: '100'
description: Number of internal iterations per test
timeout:
value: '120'
description: Timeout for each test (in seconds)
keep_alive:
value: 'False'
description: Keep the Ivy process alive after the tests
run_in_docker:
value: 'True'
description: Run the tests in a Docker container
get_tests_stats:
value: 'True'
description: Get the statistics of the tests
log_level:
value: DEBUG
description: Log level for Ivy
protocol:
name: quic
version: rfc9000
role: server
target: null
protocol_type: client_server
ports:
- 4443:4443
- 4987:4987
- 8080:8080
generate_new_certificates: true
volumes: []
directories_to_start: []
steps:
wait: 100
assertions: null
This configuration seems to slow down too much Ivy server so it can send message/response in time
Test config: