@@ -18,24 +18,26 @@ jobs:
1818 strategy :
1919 fail-fast : false
2020 matrix :
21+ async_mode : ['sw', 'cryptocb']
2122 extra_cflags :
2223 - ' '
2324 - ' -DWOLFSSL_SMALL_CERT_VERIFY'
2425 - ' -DWOLFSSL_STATIC_MEMORY'
25- name : Async Examples (${{ matrix.extra_cflags || 'default' }})
26+ name : Async Examples (${{ matrix.async_mode }}, ${{ matrix. extra_cflags || 'default' }})
2627 steps :
2728 - uses : actions/checkout@v4
2829 name : Checkout wolfSSL
2930
3031 - name : Build async examples (no configure)
3132 run : |
3233 make -C examples/async clean
33- make -C examples/async EXTRA_CFLAGS="${{ matrix.extra_cflags }}"
34+ make -C examples/async ASYNC_MODE=${{ matrix.async_mode }} EXTRA_CFLAGS="${{ matrix.extra_cflags }}"
3435
3536 - name : Run async examples
3637 run : |
3738 set -euo pipefail
3839
40+ ASYNC_MODE="${{ matrix.async_mode }}"
3941 MIN_PENDING=100
4042
4143 run_pair() {
@@ -63,16 +65,21 @@ jobs:
6365 return 1
6466 fi
6567
66- # Validate WC_PENDING_E count is a proper value
67- local count
68- count=$(awk '/WC_PENDING_E count:/ {print $NF}' \
69- "/tmp/async_client_${label}.log")
70- if [ -z "$count" ] || [ "$count" -lt "$MIN_PENDING" ]; then
71- echo "FAIL: $label - WC_PENDING_E count too low:" \
72- "${count:-missing} (expected >= $MIN_PENDING)"
73- return 1
68+ # Validate WC_PENDING_E count for sw mode only
69+ # cryptocb mode uses callback pending which isn't tracked the same way
70+ if [ "$ASYNC_MODE" = "sw" ]; then
71+ local count
72+ count=$(awk '/WC_PENDING_E count:/ {print $NF}' \
73+ "/tmp/async_client_${label}.log")
74+ if [ -z "$count" ] || [ "$count" -lt "$MIN_PENDING" ]; then
75+ echo "FAIL: $label - WC_PENDING_E count too low:" \
76+ "${count:-missing} (expected >= $MIN_PENDING)"
77+ return 1
78+ fi
79+ echo "PASS: $label (WC_PENDING_E: $count)"
80+ else
81+ echo "PASS: $label (cryptocb mode - connection successful)"
7482 fi
75- echo "PASS: $label (WC_PENDING_E: $count)"
7683 return 0
7784 }
7885
0 commit comments