summaryrefslogtreecommitdiff
path: root/platform/ios/scripts/ios-code-coverage.sh
diff options
context:
space:
mode:
authorJordan Kiley <jmkiley@users.noreply.github.com>2019-03-13 12:58:24 -0700
committerGitHub <noreply@github.com>2019-03-13 12:58:24 -0700
commitfb0b0d5a2bb89a6a7d5137e0c610e2c5105c26d3 (patch)
treec21d8cc0cbd9aadf63f9c245b7cc79e8533af4ed /platform/ios/scripts/ios-code-coverage.sh
parent979433eddb5a8f2180aba134befb08b222718bc8 (diff)
downloadqtlocation-mapboxgl-fb0b0d5a2bb89a6a7d5137e0c610e2c5105c26d3.tar.gz
[ios] Generate iOS code coverage for metrics (#14015)
Diffstat (limited to 'platform/ios/scripts/ios-code-coverage.sh')
-rwxr-xr-xplatform/ios/scripts/ios-code-coverage.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/platform/ios/scripts/ios-code-coverage.sh b/platform/ios/scripts/ios-code-coverage.sh
new file mode 100755
index 0000000000..8b8adb423a
--- /dev/null
+++ b/platform/ios/scripts/ios-code-coverage.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+
+#
+# Get code coverage report, then convert it to JSON.
+# The coverage reports end up in different locations based on whether coverage
+# is generated via CI or locally.
+#
+cov_result="";
+if [ -f build/ios/Logs/Test/*.xcresult/*_Test/*.xccovreport ]; then
+ cov_result=build/ios/Logs/Test/*.xcresult/*_Test/*.xccovreport
+elif [ -f build/ios/ios/Logs/Test/*.xcresult/*_Test/*.xccovreport ]; then
+ cov_result=build/ios/ios/Logs/Test/*.xcresult/*_Test/*.xccovreport
+else
+ echo "Coverage file does not exist. Please run tests before executing"
+ exit 1
+fi
+
+xcrun xccov view $cov_result --json > output.json
+
+#
+# Convert the line coverage for the dynamic target to a percentage. Currently,
+# only CI tests are included when calculated code coverage.
+#
+percentage=`node -e "console.log(require('./output.json').lineCoverage)"`
+cov=$(printf "%.2f" $(echo "$percentage*100" | bc -l))
+
+# Generate a formatted JSON file and upload it to S3.
+./././scripts/code-coverage.sh $cov "iOS" "$1"