Skip to content

Commit

Permalink
Fix paths in objc-test.sh, temporarily exclude /IntegrationTests (fac…
Browse files Browse the repository at this point in the history
…ebook#36648)

Summary:
Pull Request resolved: facebook#36648

Changelog: [Internal]

Blocker for facebook#36623. The `test-ios` job in CI was misconfigured following the monorepo migration — and this becomes load-bearing with the incoming version of React Native CLI.

- Update `objc-test.sh` to run in `packages/rn-tester`, and exclude tests under `/IntegrationTests` which are outside of a Metro project directory.
    - **This is temporary** — a task has been created to move/split up/otherwise restore tests in `IntegrationTests`, which cipolleschi is following up (thanks!).
- Also fix `yarn start` script in `packages/rn-tester`.

Reviewed By: cipolleschi

Differential Revision: D44416533

fbshipit-source-id: 59c5b743d9d8fda206a12e37d94324ed9bfd703e
  • Loading branch information
huntie authored and jeongshin committed May 7, 2023
1 parent b2bd631 commit 441f167
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
1 change: 1 addition & 0 deletions packages/rn-tester/RNTester/RNTester.xctestplan
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
},
"testTargets" : [
{
"enabled": false,
"target" : {
"containerPath" : "container:RNTesterPods.xcodeproj",
"identifier" : "E7DB215222B2F332005AC45F",
Expand Down
2 changes: 1 addition & 1 deletion packages/rn-tester/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"directory": "packages/rn-tester"
},
"scripts": {
"start": "../react-native/scripts/packager.sh",
"start": "react-native start",
"install-android-jsc": "../../gradlew :packages:rn-tester:android:app:installJscDebug",
"install-android-hermes": "../../gradlew :packages:rn-tester:android:app:installHermesDebug",
"clean-android": "rm -rf android/app/build",
Expand Down
27 changes: 17 additions & 10 deletions scripts/objc-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ waitForWebSocketServer() {

runTests() {
# shellcheck disable=SC1091
source "./scripts/.tests.env"
source "$ROOT/scripts/.tests.env"
xcodebuild build test \
-workspace packages/rn-tester/RNTesterPods.xcworkspace \
-workspace RNTesterPods.xcworkspace \
-scheme RNTester \
-sdk iphonesimulator \
-destination "platform=iOS Simulator,name=$IOS_DEVICE,OS=$IOS_TARGET_OS" \
Expand All @@ -86,7 +86,7 @@ runTests() {

buildProject() {
xcodebuild build \
-workspace packages/rn-tester/RNTesterPods.xcworkspace \
-workspace RNTesterPods.xcworkspace \
-scheme RNTester \
-sdk iphonesimulator
}
Expand All @@ -105,30 +105,37 @@ xcbeautifyFormat() {
xcbeautify --report junit --report-path "$REPORTS_DIR/ios/results.xml"
}

preloadBundles() {
# Preload the RNTesterApp bundle for better performance in integration tests
curl -s 'http://localhost:8081/packages/rn-tester/js/RNTesterApp.ios.bundle?platform=ios&dev=true' -o /dev/null
curl -s 'http://localhost:8081/packages/rn-tester/js/RNTesterApp.ios.bundle?platform=ios&dev=true&minify=false' -o /dev/null
preloadBundlesRNIntegrationTests() {
# Preload IntegrationTests bundles (/)
# TODO(T149119847): These need to be relocated into a dir with a Metro config
curl -s 'http://localhost:8081/IntegrationTests/IntegrationTestsApp.bundle?platform=ios&dev=true' -o /dev/null
curl -s 'http://localhost:8081/IntegrationTests/RCTRootViewIntegrationTestApp.bundle?platform=ios&dev=true' -o /dev/null
}

preloadBundlesRNTester() {
# Preload RNTesterApp bundles (packages/rn-tester/)
curl -s 'http://localhost:8081/js/RNTesterApp.ios.bundle?platform=ios&dev=true' -o /dev/null
curl -s 'http://localhost:8081/js/RNTesterApp.ios.bundle?platform=ios&dev=true&minify=false' -o /dev/null
}

main() {
cd "$ROOT" || exit
cd "$ROOT/packages/rn-tester" || exit

# If first argument is "test", actually start the packager and run tests.
# Otherwise, just build RNTester and exit
if [ "$1" = "test" ]; then

# Start the WebSocket test server
echo "Launch WebSocket Server"
sh "./IntegrationTests/launchWebSocketServer.sh" &
sh "$ROOT/IntegrationTests/launchWebSocketServer.sh" &
waitForWebSocketServer

# Start the packager
yarn start --max-workers=1 || echo "Can't start packager automatically" &
waitForPackager
preloadBundles
preloadBundlesRNTester
# TODO(T149119847)
# preloadBundlesRNIntegrationTests

# Build and run tests.
if [ -x "$(command -v xcbeautify)" ]; then
Expand Down

0 comments on commit 441f167

Please sign in to comment.