2323 branches : [ '**', 'master', 'main', 'release/**' ]
2424 paths :
2525 - ' .github/workflows/sm-cipher.yml'
26- - ' src/**'
27- - ' wolfcrypt/**'
28- - ' wolfssl/**'
26+ - ' ./**'
2927 pull_request :
3028 # Run after merge on protected branches
3129 branches : [ "main", "master", "release/**" ]
3230 paths :
3331 - ' .github/workflows/sm-cipher.yml'
34- - ' src/**'
35- - ' wolfcrypt/**'
36- - ' wolfssl/**'
32+ - ' ./**'
3733 workflow_dispatch :
3834
3935concurrency :
@@ -43,7 +39,6 @@ concurrency:
4339
4440jobs :
4541 build :
46- # TODO:
4742 # if: github.repository_owner == 'wolfssl'
4843 runs-on : ubuntu-latest
4944 env :
@@ -74,10 +69,13 @@ jobs:
7469
7570 echo "GITHUB_ENV=$GITHUB_ENV"
7671
72+ git status
73+
7774 echo "contents..."
7875 # typically "/home/runner/work/wolfssl/wolfssl" contains wolfssl source
7976 pwd
8077 ls
78+ # ** END ** Set job environment variables
8179
8280 - name : Get wolfsm
8381 run : |
@@ -140,119 +138,57 @@ jobs:
140138 pwd
141139 ls
142140
143- # Done with install wolfsm
141+ # ** END ** Install wolfsm
144142
145143 - name : Compile wolfssl
146144 run : |
147145 # Compile fresh wolfSSL with wolfsm code
148146
149147 # We're already in $WOLFSSL_ROOT
150-
151148 echo "Current directory: $PWD"
152149
153150 ./autogen.sh
154151 ./configure --enable-sm3 --enable-sm4-ecb --enable-sm4-cbc --enable-sm4-ctr --enable-sm4-gcm --enable-sm4-ccm --enable-sm2
155152 make
156- # Done with compile wolfssl
157153
158- - name : Test SM wolfcrypt
159- shell : bash
154+ # ** END ** Compile wolfssl
155+
156+ - name : make check
160157 run : |
161- # Run client / server tests from cloned wolfssl directory
158+ # make check
162159
163- cd " $WOLFSSL_ROOT"
160+ # We're already in $WOLFSSL_ROOT
164161 echo "Current directory: $PWD"
165162
166- set -euo pipefail
163+ make check
167164
168- ./wolfcrypt/test/testwolfcrypt
165+ # ** END ** make check
169166
170- - name : Run SM benchmark
171- shell : bash
167+ - name : Unit test
172168 run : |
173- # Run client / server tests from cloned wolfssl directory
169+ # Run unit.test ./ tests/test-sm2.conf
174170
175- cd " $WOLFSSL_ROOT"
171+ # We're already in $WOLFSSL_ROOT
176172 echo "Current directory: $PWD"
177173
178- set -euo pipefail
174+ echo "looking for test-sm2.conf"
175+ ls ./tests/test-sm2.conf
179176
180- ./wolfcrypt/benchmark/benchmark
177+ echo "Run unit test: ./tests/unit.test ./tests/test-sm2.conf"
178+ ./tests/unit.test ./tests/test-sm2.conf
179+
180+ # ** END ** Unit test
181181
182- - name : Test SM client/server (TLS 1.2 and 1.3)
182+ - name : Run SM benchmark
183183 shell : bash
184184 run : |
185- # Run client / server tests from cloned wolfssl directory
185+ # Run benchmark from cloned wolfssl directory
186186
187- cd " $WOLFSSL_ROOT"
187+ # We're already in $WOLFSSL_ROOT
188188 echo "Current directory: $PWD"
189189
190190 set -euo pipefail
191191
192- # Parameterized cases
193- cases=(
194- "-v 3 -l ECDHE-ECDSA-SM4-CBC-SM3"
195- "-v 3 -l ECDHE-ECDSA-SM4-GCM-SM3"
196- "-v 3 -l ECDHE-ECDSA-SM4-CCM-SM3"
197- "-v 4 -l TLS13-SM4-GCM-SM3"
198- "-v 4 -l TLS13-SM4-CCM-SM3 "
199- )
200-
201- srv_bin=./examples/server/server
202- cli_bin=./examples/client/client
203-
204- srv_cert=./certs/sm2/server-sm2.pem
205- srv_key=./certs/sm2/server-sm2-priv.pem
206- cli_cert=./certs/sm2/client-sm2.pem
207- cli_key=./certs/sm2/client-sm2-priv.pem
208- ca_root=./certs/sm2/root-sm2.pem
209-
210- # Use an explicit port so we can start/stop cleanly
211- port=11111
212-
213- # Ensure background server is cleaned up even on failure
214- cleanup() { pkill -P $$ >/dev/null 2>&1 || true; }
215- trap cleanup EXIT
216-
217- for args in "${cases[@]}"; do
218- echo "=== Testing ${args} on port ${port} ==="
219-
220- # Start server in background; capture PID
221- "${srv_bin}" ${args} \
222- -c "${srv_cert}" -k "${srv_key}" \
223- -A "${cli_cert}" -V \
224- -p "${port}" &
225- srv_pid=$!
226-
227- # Wait briefly for the server to listen
228- if command -v ss >/dev/null 2>&1; then
229- for _ in {1..40}; do
230- ss -ltn | grep -q ":${port} " && break
231- echo "Waiting for server on port ${port} ..."
232- sleep 0.25
233- done
234- else
235- sleep 2
236- fi
237-
238- # Run client with timeout so CI does not hang
239- set +e
240- timeout 60s "${cli_bin}" ${args} \
241- -h 127.0.0.1 -p "${port}" \
242- -c "${cli_cert}" \
243- -k "${cli_key}" \
244- -A "${ca_root}" -C
245- rc=$?
246- set -e
247-
248- # Graceful shutdown: only kill if still running; keep quiet
249- if kill -0 "${srv_pid}" >/dev/null 2>&1; then
250- kill "${srv_pid}" # >/dev/null 2>&1 || true
251- fi
252- wait "${srv_pid}" # >/dev/null 2>&1 || true
253-
254- if [ ${rc} -ne 0 ]; then
255- echo "Client failed for: ${args} (rc=${rc})"
256- exit ${rc}
257- fi
258- done
192+ ./wolfcrypt/benchmark/benchmark
193+
194+ # ** END ** un SM benchmark
0 commit comments