Skip to content

Commit d5aa0ca

Browse files
leogdionclaude
andcommitted
fix: use Swift toolchain's llvm-cov for profraw conversion
Both host and Android SDK use the same nightly Swift snapshot (DEVELOPMENT-SNAPSHOT-2025-12-15-a), so the host's llvm-cov from $SWIFT_INSTALLATION/bin should be able to read the profraw files. Changed from Android NDK's llvm-cov (which has version mismatch) to the Swift toolchain's llvm-cov that matches the compiler. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
1 parent 53afa4e commit d5aa0ca

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

.github/actions/swift-android-action/action.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -599,21 +599,23 @@ runs:
599599
echo " fi" >> ${SCRIPT_FILE}
600600
echo "done" >> ${SCRIPT_FILE}
601601
602-
# Convert profraw to LCOV using Android NDK's llvm-cov (matches Android clang version)
602+
# Convert profraw to LCOV using Swift toolchain's llvm-cov (same nightly version)
603603
echo "echo '==> Converting profraw to LCOV format...'" >> ${SCRIPT_FILE}
604604
echo "if [ -f '${COVERAGE_DIR}/default.profraw' ]; then" >> ${SCRIPT_FILE}
605605
echo " # Find the test binary" >> ${SCRIPT_FILE}
606606
echo " TEST_BINARY=\$(find \${SWIFT_SDK_TARGET}/debug -name '*.xctest' | head -n 1)" >> ${SCRIPT_FILE}
607607
echo " if [ -n \"\$TEST_BINARY\" ]; then" >> ${SCRIPT_FILE}
608-
echo " # Use Android NDK's llvm-cov which matches the Android clang version" >> ${SCRIPT_FILE}
609-
echo " NDK_LLVM_COV=\"\${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-cov\"" >> ${SCRIPT_FILE}
610-
echo " if [ -f \"\$NDK_LLVM_COV\" ]; then" >> ${SCRIPT_FILE}
611-
echo " \"\$NDK_LLVM_COV\" export -format=lcov -instr-profile='${COVERAGE_DIR}/default.profraw' \"\$TEST_BINARY\" > '${COVERAGE_DIR}/coverage.lcov' 2>&1 || {" >> ${SCRIPT_FILE}
612-
echo " echo \"Warning: Failed to convert profraw to LCOV - LLVM version mismatch\"" >> ${SCRIPT_FILE}
608+
echo " # Use Swift toolchain's llvm-cov (matches the Swift compiler that generated profraw)" >> ${SCRIPT_FILE}
609+
echo " SWIFT_LLVM_COV=\"\${SWIFT_INSTALLATION}/bin/llvm-cov\"" >> ${SCRIPT_FILE}
610+
echo " if [ -f \"\$SWIFT_LLVM_COV\" ]; then" >> ${SCRIPT_FILE}
611+
echo " \"\$SWIFT_LLVM_COV\" export -format=lcov -instr-profile='${COVERAGE_DIR}/default.profraw' \"\$TEST_BINARY\" > '${COVERAGE_DIR}/coverage.lcov' 2>&1 && {" >> ${SCRIPT_FILE}
612+
echo " echo \"Successfully converted profraw to LCOV\"" >> ${SCRIPT_FILE}
613+
echo " } || {" >> ${SCRIPT_FILE}
614+
echo " echo \"Warning: Failed to convert profraw to LCOV\"" >> ${SCRIPT_FILE}
613615
echo " echo \"Keeping profraw file for artifact upload\"" >> ${SCRIPT_FILE}
614616
echo " }" >> ${SCRIPT_FILE}
615617
echo " else" >> ${SCRIPT_FILE}
616-
echo " echo \"Warning: Android NDK llvm-cov not found at \$NDK_LLVM_COV\"" >> ${SCRIPT_FILE}
618+
echo " echo \"Warning: Swift llvm-cov not found at \$SWIFT_LLVM_COV\"" >> ${SCRIPT_FILE}
617619
echo " fi" >> ${SCRIPT_FILE}
618620
echo " else" >> ${SCRIPT_FILE}
619621
echo " echo \"Warning: Test binary not found\"" >> ${SCRIPT_FILE}

0 commit comments

Comments
 (0)