219219echo -e " ${GREEN} Starting tests with available tools...${NC} "
220220echo
221221
222+ # Cross-based tests (need cross + docker)
223+ CROSS_READY=0
224+ if [ $CROSS_AVAILABLE -eq 1 ] && [ $DOCKER_AVAILABLE -eq 1 ]; then
225+ CROSS_READY=1
226+ fi
227+
222228# Start testing
223229echo -e " ${BLUE} === Cross-Platform Tests ===${NC} "
224230
@@ -232,40 +238,34 @@ else
232238 TEST_RESULTS+=(" SKIPPED - target not installed" )
233239fi
234240
235- # Linux ARM64 test
236- if [ $TARGET_ARM_LINUX -eq 1 ] && [ $LINUX_ARM_AVAILABLE -eq 1 ]; then
237- attempt_test " cargo " " aarch64-unknown-linux-gnu" " Linux ARM64 (cross-compile )" " $TEST_CMD_ARGS "
241+ # Linux ARM64 test (requires emulation or cross, so use cross if available)
242+ if [ $TARGET_ARM_LINUX -eq 1 ] && [ $CROSS_READY -eq 1 ]; then
243+ attempt_test " cross " " aarch64-unknown-linux-gnu" " Linux ARM64 (cross-test )" " $TEST_CMD_ARGS "
238244elif [ $TARGET_ARM_LINUX -eq 0 ]; then
239245 TEST_TARGETS+=(" aarch64-unknown-linux-gnu" )
240- TEST_DESCRIPTIONS+=(" Linux ARM64 (cross-compile )" )
241- TEST_TOOLS+=(" cargo " )
246+ TEST_DESCRIPTIONS+=(" Linux ARM64 (cross-test )" )
247+ TEST_TOOLS+=(" cross " )
242248 TEST_RESULTS+=(" SKIPPED - target not installed" )
243- elif [ $LINUX_ARM_AVAILABLE -eq 0 ]; then
249+ elif [ $CROSS_READY -eq 0 ]; then
244250 TEST_TARGETS+=(" aarch64-unknown-linux-gnu" )
245- TEST_DESCRIPTIONS+=(" Linux ARM64 (cross-compile )" )
246- TEST_TOOLS+=(" cargo " )
247- TEST_RESULTS+=(" SKIPPED - aarch64-linux-gnu-gcc not available" )
251+ TEST_DESCRIPTIONS+=(" Linux ARM64 (cross-test )" )
252+ TEST_TOOLS+=(" cross " )
253+ TEST_RESULTS+=(" SKIPPED - cross/docker not available" )
248254fi
249255
250- # Windows GNU test
251- if [ $TARGET_WIN_GNU -eq 1 ] && [ $MINGW_AVAILABLE -eq 1 ]; then
252- attempt_test " cargo " " x86_64-pc-windows-gnu" " Windows x86_64 GNU (mingw-w64 )" " $TEST_CMD_ARGS "
256+ # Windows GNU test (requires Wine or cross for execution, so use cross if available)
257+ if [ $TARGET_WIN_GNU -eq 1 ] && [ $CROSS_READY -eq 1 ]; then
258+ attempt_test " cross " " x86_64-pc-windows-gnu" " Windows x86_64 GNU (cross-test )" " $TEST_CMD_ARGS "
253259elif [ $TARGET_WIN_GNU -eq 0 ]; then
254260 TEST_TARGETS+=(" x86_64-pc-windows-gnu" )
255- TEST_DESCRIPTIONS+=(" Windows x86_64 GNU (mingw-w64 )" )
256- TEST_TOOLS+=(" cargo " )
261+ TEST_DESCRIPTIONS+=(" Windows x86_64 GNU (cross-test )" )
262+ TEST_TOOLS+=(" cross " )
257263 TEST_RESULTS+=(" SKIPPED - target not installed" )
258- elif [ $MINGW_AVAILABLE -eq 0 ]; then
264+ elif [ $CROSS_READY -eq 0 ]; then
259265 TEST_TARGETS+=(" x86_64-pc-windows-gnu" )
260- TEST_DESCRIPTIONS+=(" Windows x86_64 GNU (mingw-w64)" )
261- TEST_TOOLS+=(" cargo" )
262- TEST_RESULTS+=(" SKIPPED - mingw-w64-gcc not available" )
263- fi
264-
265- # Cross-based tests (need cross + docker)
266- CROSS_READY=0
267- if [ $CROSS_AVAILABLE -eq 1 ] && [ $DOCKER_AVAILABLE -eq 1 ]; then
268- CROSS_READY=1
266+ TEST_DESCRIPTIONS+=(" Windows x86_64 GNU (cross-test)" )
267+ TEST_TOOLS+=(" cross" )
268+ TEST_RESULTS+=(" SKIPPED - cross/docker not available" )
269269fi
270270
271271# macOS tests
0 commit comments