Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/HarnessCoverage.podspec b/HarnessCoverage.podspec
index e6b988069a9f5d3306f7d5ce81cbfd9ddf307166..4465df21ef9a717735b38b72f9a0144be492e8ba 100644
--- a/HarnessCoverage.podspec
+++ b/HarnessCoverage.podspec
@@ -10,9 +10,9 @@ Pod::Spec.new do |s|
s.name = "HarnessCoverage"
s.version = package["version"]
s.summary = package["description"]
- s.homepage = package["homepage"]
- s.license = package["license"]
- s.authors = package["author"]
+ s.homepage = package["homepage"] || "https://github.com/callstackincubator/react-native-harness"
+ s.license = package["license"] || "MIT"
+ s.authors = package["author"] || "Callstack"

s.platforms = { :ios => "13.0" }
s.source = { :git => "https://github.com/callstackincubator/react-native-harness.git", :tag => "#{s.version}" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
diff --git a/dist/coverage-collector.js b/dist/coverage-collector.js
index c50c3147561f112fbf2e1cc34ac2e30442f8132b..c7af0645c3b429f44451044cfde40ce9912c3eee 100644
--- a/dist/coverage-collector.js
+++ b/dist/coverage-collector.js
@@ -65,6 +65,21 @@ export const findAppExecutable = async (appBundlePath) => {
}
return path.join(appBundlePath, executableName);
};
+const detectBinaryArch = async (binaryPath) => {
+ try {
+ const { stdout } = await spawn('lipo', ['-archs', binaryPath]);
+ const archs = stdout.trim().split(/\s+/);
+ if (archs.length > 1) {
+ const { stdout: hostArch } = await spawn('uname', ['-m']);
+ const arch = hostArch.trim();
+ logger.debug(`[coverage] Universal binary detected (${archs.join(', ')}), using -arch ${arch}`);
+ return arch;
+ }
+ }
+ catch {
+ }
+ return null;
+};
export const generateLcov = async (options) => {
const { profdataPath, binaryPath, outputPath, sourceFilters } = options;
const args = [
@@ -72,8 +87,12 @@ export const generateLcov = async (options) => {
'export',
'-format=lcov',
`-instr-profile=${profdataPath}`,
- binaryPath,
];
+ const arch = await detectBinaryArch(binaryPath);
+ if (arch) {
+ args.push(`-arch=${arch}`);
+ }
+ args.push(binaryPath);
if (sourceFilters) {
for (const filter of sourceFilters) {
args.push(`--sources=${filter}`);
1 change: 1 addition & 0 deletions example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"@react-native-community/cli": "19.1.2",
"@react-native-community/cli-platform-android": "19.1.2",
"@react-native-community/cli-platform-ios": "19.1.2",
"@react-native-harness/coverage-ios": "1.3.0",
"@react-native-harness/platform-android": "1.3.0",
"@react-native-harness/platform-apple": "1.3.0",
"@react-native/babel-preset": "0.80.3",
Expand Down
7 changes: 7 additions & 0 deletions example/rn-harness.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,11 @@ export default {
}),
],
defaultRunner: 'ios',
coverage: {
native: {
ios: {
pods: ['RNRive'],
},
},
},
};
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@
},
"resolutions": {
"core-js-compat": "^3.40.0",
"browserslist": "^4.24.4"
"browserslist": "^4.24.4",
"@react-native-harness/platform-apple@1.3.0": "patch:@react-native-harness/platform-apple@npm%3A1.3.0#./.yarn/patches/@react-native-harness-platform-apple-npm-1.3.0-73562dda66.patch",
"@react-native-harness/coverage-ios@1.3.0": "patch:@react-native-harness/coverage-ios@npm%3A1.3.0#./.yarn/patches/@react-native-harness-coverage-ios-npm-1.3.0-38903ba033.patch"
}
}
37 changes: 37 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4627,6 +4627,28 @@ __metadata:
languageName: node
linkType: hard

"@react-native-harness/coverage-ios@npm:1.3.0":
version: 1.3.0
resolution: "@react-native-harness/coverage-ios@npm:1.3.0"
dependencies:
tslib: ^2.3.0
peerDependencies:
react-native: "*"
checksum: 9122359cd8d2efebdcd3cf4abb6e7a825785e2ea7a1d54f8f0a5502a0c81a3a6aa5685940cf0fe8aac83a0bf0bb9078f63aa51ddca2d1a31ff7e05b1a2e226d2
languageName: node
linkType: hard

"@react-native-harness/coverage-ios@patch:@react-native-harness/coverage-ios@npm%3A1.3.0#./.yarn/patches/@react-native-harness-coverage-ios-npm-1.3.0-38903ba033.patch::locator=%40rive-app%2Freact-native%40workspace%3A.":
version: 1.3.0
resolution: "@react-native-harness/coverage-ios@patch:@react-native-harness/coverage-ios@npm%3A1.3.0#./.yarn/patches/@react-native-harness-coverage-ios-npm-1.3.0-38903ba033.patch::version=1.3.0&hash=82a9c4&locator=%40rive-app%2Freact-native%40workspace%3A."
dependencies:
tslib: ^2.3.0
peerDependencies:
react-native: "*"
checksum: b486c7a5c26f0acd7f75322e89f9afd107823b83d06ad3173a6a0406f48cf5811e6847174104e5ee575405b1934e0c0f6c6bfa87555a4406babd54ca31c3dc4b
languageName: node
linkType: hard

"@react-native-harness/jest@npm:1.3.0":
version: 1.3.0
resolution: "@react-native-harness/jest@npm:1.3.0"
Expand Down Expand Up @@ -4686,6 +4708,20 @@ __metadata:
languageName: node
linkType: hard

"@react-native-harness/platform-apple@patch:@react-native-harness/platform-apple@npm%3A1.3.0#./.yarn/patches/@react-native-harness-platform-apple-npm-1.3.0-73562dda66.patch::locator=%40rive-app%2Freact-native%40workspace%3A.":
version: 1.3.0
resolution: "@react-native-harness/platform-apple@patch:@react-native-harness/platform-apple@npm%3A1.3.0#./.yarn/patches/@react-native-harness-platform-apple-npm-1.3.0-73562dda66.patch::version=1.3.0&hash=e90e19&locator=%40rive-app%2Freact-native%40workspace%3A."
dependencies:
"@react-native-harness/config": 1.3.0
"@react-native-harness/platforms": 1.3.0
"@react-native-harness/tools": 1.3.0
tslib: ^2.3.0
yargs: ^17.7.2
zod: ^3.25.67
checksum: aaef0a4f1e0f6a4fe56004384d766bdbc9efd31ea4d8dc203d7db1c1ef52d170a467f5b6b8be6ec4931afff118868e54bc60b740fa0940eac959dbfd93e31f06
languageName: node
linkType: hard

"@react-native-harness/platforms@npm:1.3.0":
version: 1.3.0
resolution: "@react-native-harness/platforms@npm:1.3.0"
Expand Down Expand Up @@ -17361,6 +17397,7 @@ __metadata:
"@react-native-community/cli": 19.1.2
"@react-native-community/cli-platform-android": 19.1.2
"@react-native-community/cli-platform-ios": 19.1.2
"@react-native-harness/coverage-ios": 1.3.0
"@react-native-harness/platform-android": 1.3.0
"@react-native-harness/platform-apple": 1.3.0
"@react-native-picker/picker": ^2.11.4
Expand Down
Loading