forked from facebook/idb
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to latest idb to enable compatibility with more recent devices #7
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Summary: This commit implements second phase of grpc-swift rollout. Swift endpoint implementation is enough battle-tested and ready to serve as primary point of contact for other services. Reviewed By: jbardini Differential Revision: D36125152 fbshipit-source-id: f731b55342bc8d1e038865b570f89b2651b292bf
Summary: Properly handle logging of endpoint based on env Reviewed By: jbardini Differential Revision: D36125153 fbshipit-source-id: 3351fdbaf40c52e10df6d9c51a376016e601c65b
Summary: This fixes bug when `--grpc-port 0` will not produce proper ports in stdout Reviewed By: jbardini Differential Revision: D36163726 fbshipit-source-id: fb96465b3c93844569651e24f0dc19901b90c0d5
Summary: Add new devices: - iPhone 13 mini - iPhone 13 - iPhone 13 Pro - iPhone 13 Pro Max Product types based on `device_traits.db`: ``` [[email protected] ~]$ sqlite3 $(xcode-select -p)/Platforms/iPhoneOS.platform/usr/standalone/device_traits.db sqlite> select ProductDescription, ProductType from Devices where ProductDescription like 'iPhone 13%'; iPhone 13 Pro|iPhone14,2 iPhone 13 Pro Max|iPhone14,3 iPhone 13 mini|iPhone14,4 iPhone 13|iPhone14,5 ``` Reviewed By: jbardini Differential Revision: D36196270 fbshipit-source-id: a24d6ecdcb951cd4334a20b4573c2061c426cbc3
Summary: Implement mechanism for performing deferred cleanup in swift Reviewed By: jbardini Differential Revision: D35969357 fbshipit-source-id: 1d9621f2e211a49d7ac92d5b3a17ca84ca6d7a43
Summary: Besides `FBFuture` we also have `FBFutureContext` that wraps cleanup mechanism under the hood. We should also migrate bring this feature to swift concurrency world Reviewed By: jbardini Differential Revision: D35897188 fbshipit-source-id: e00137d7376ac8e09b5f051af465f8b7003239f5
Reviewed By: jbardini Differential Revision: D35898676 fbshipit-source-id: b28168367c95b0f61bb1e090d9e6fada956b81ab
Summary: As in title Reviewed By: jbardini Differential Revision: D36239848 fbshipit-source-id: 8f2eb7b76005d0ceb3d189273a6d4742c0f63a6d
Summary: Tail command is now swift <3 Reviewed By: jbardini Differential Revision: D36239847 fbshipit-source-id: e2b6394efbb2b26b559d9ac482f197ad598c34af
Summary: `idb uninstall` is now swift Reviewed By: lawrencelomax Differential Revision: D36245703 fbshipit-source-id: 65156f9e1f703d572984eb6991b9643b871c0e10
Summary: `idb focus` is now swift <3 Reviewed By: lawrencelomax Differential Revision: D36245706 fbshipit-source-id: 1e8a292b2231b603f757cc132608a70399b27aea
Summary: `idb simulate-memory warning` is now swift <3 Reviewed By: lawrencelomax Differential Revision: D36245705 fbshipit-source-id: 48f6a315f151ab56d6d36459bf992f0bd8463066
Summary: `idb send-notification` is now swift Reviewed By: lawrencelomax Differential Revision: D36245704 fbshipit-source-id: e3488804efd85f8bdcf4d993a062fd8deaf6749d
Summary: `idb set-location` is now swift <3 Reviewed By: lawrencelomax Differential Revision: D36245701 fbshipit-source-id: 033b340b23496cf3636c84493ff7e9fac6e0dd80
Summary: `idb crash list` is now swift Reviewed By: lawrencelomax Differential Revision: D36246688 fbshipit-source-id: 29ccf36b8091f7809e9eecbfd045cfad39563240
Summary: This will add possibility to easily cleanup idb artifacts on CI Reviewed By: jbardini Differential Revision: D36314045 fbshipit-source-id: a86a4e8383ccee532208f0663b147e8b4f466e3c
Summary: Applies the black-fbsource codemod with the new build of pyfmt. paintitblack Reviewed By: lisroach Differential Revision: D36324783 fbshipit-source-id: 280c09e88257e5e569ab729691165d8dedd767bc
Summary: Applies new import merging and sorting from µsort v1.0. When merging imports, µsort will make a best-effort to move associated comments to match merged elements, but there are known limitations due to the diynamic nature of Python and developer tooling. These changes should not produce any dangerous runtime changes, but may require touch-ups to satisfy linters and other tooling. Note that µsort uses case-insensitive, lexicographical sorting, which results in a different ordering compared to isort. This provides a more consistent sorting order, matching the case-insensitive order used when sorting import statements by module name, and ensures that "frog", "FROG", and "Frog" always sort next to each other. For details on µsort's sorting and merging semantics, see the user guide: https://usort.readthedocs.io/en/stable/guide.html#sorting Reviewed By: lisroach Differential Revision: D36402195 fbshipit-source-id: 22db7e2595396e73b2befc187ed3b98ac34e8387
Summary: So we can control weather mtime of extracted files are restored or not. Reviewed By: ronmrdechai, Nekitosss Differential Revision: D36341634 fbshipit-source-id: 790aed0d4a611275d38cfb1ea7201b6d10433e00
Summary: Threading the parameter through the layers Reviewed By: ronmrdechai, Nekitosss Differential Revision: D36341633 fbshipit-source-id: a204f911d13a5613ed68230a0e454c5ab89a92d9
Summary: The instalation process of an `.ipa` on a simulator consists of idb decompressing the archive (ipa is a zip) and then calling `-[SimDevice installApplication:withOptions:error:]` which in turn will request the installation to `installd` (a process that belongs to the simulator). When a previous version of the app is already installed in the simulator, `installd` performs an "incremental install" (or "Delta patch update" as it shows in the logs). Since `installd` incremental patch update seems to be based on each file's modified date and size, it not work well when your `.ipa` is produced by a building system that normalises the timestamps of files contained in archive-like artefacts (all the content of all `.ipa`s have mtime set to a specific date in the past -- regardless of _when_ the build actually happened). This often results on a corrupted app installation with some files from the previous version and some files of the newer version. The files that are not updated are files which had their content changed but without a change in size. As the files from both builds have the same mtime, `installd` skip them. So we mitigate this issue by ignoring the mtime stored within the `.ipa` when decompressing it. So all the files in the app bundle have the current time as mtime, which will differ from the files previously installed, and `installd` will be able to install the newer version of the app properly. Since we are, in theory, forcing a full install, it can result in longer install times. There is also the possibility of unforeseen issues with applications that happen to depend on the mtime of specific resources within it's bundle, so we are making this new behaviour opt-in. Reviewed By: ronmrdechai, Nekitosss Differential Revision: D36341632 fbshipit-source-id: 53e48ae7b915c9a4e67a6ebe92dac507f27e3da8
Summary: As title Reviewed By: ronmrdechai, Nekitosss Differential Revision: D36341631 fbshipit-source-id: 9632eb363b90bf71580495341cb65dd1c9c54830
Summary: title Reviewed By: Nekitosss Differential Revision: D36411974 fbshipit-source-id: 0670687afd1db9f94e134063a6d94b1ce35b98cc
Summary: Fixes Data size for file drain Reviewed By: jbardini Differential Revision: D36409288 fbshipit-source-id: a8ccb592499834ed51fbe73318c77752ef09aa2f
Summary: `idb crash show` is now swift <3 Reviewed By: jbardini Differential Revision: D36246689 fbshipit-source-id: 2d454b28ae38660fb5b92578bf9700d7c6095957
Summary: `idb crash delete` is now swift Reviewed By: jamescoggan, jbardini Differential Revision: D36246690 fbshipit-source-id: a421f501a8d14478868d96f9d50b31b153a03a24
Summary: `idb contacts update` is now swift <3 Reviewed By: jamescoggan Differential Revision: D36343781 fbshipit-source-id: da860cfb7ae401064d9ff3763ac88bbf70bbb757
Summary: `idb set` is now swift <3 Reviewed By: jbardini Differential Revision: D36343779 fbshipit-source-id: 82be846dc4b707871fa83a794ba93e71d5f72e3a
Summary: Implementation of observing events from different sources in swift concurrency Reviewed By: jbardini Differential Revision: D36282503 fbshipit-source-id: 8b5d1b2cde52146aae4c3c9b299ef22c7b7dc44c
Summary: `idb video_stream` is now swift <3 Reviewed By: jbardini Differential Revision: D36282363 fbshipit-source-id: 40983fa61fb7e23bfe213abc035091900dcc6f48
Summary: Formats the covered files with pyfmt. paintitblack Reviewed By: zertosh, abesto Differential Revision: D54470824 fbshipit-source-id: 06c8f96f17045dcd46a23398274cc5b741c6e846
Summary: Migrating off of the deprecated method `archivedDataWithRootObject:`, as well as its counterpart, `unarchiveObjectWithData:` if it appears in the same file. Reviewed By: yannickl Differential Revision: D55248376 fbshipit-source-id: e1d5699bb452694f7ffb998adeed3f028c5e5035
Summary: Pull Request resolved: facebook#854 Reviewed By: fgasperij Differential Revision: D55406965 fbshipit-source-id: bd4473d41c1b6fc02976c15bb8f7cbca2c5b9f2a
Summary: ## Motivation Boy scout rule :) Pull Request resolved: facebook#833 Test Plan: Does not apply Reviewed By: fgasperij Differential Revision: D55407027 fbshipit-source-id: fa232f917eaf25619cc19194eb92da5e4ebfa0cd
Summary: <!-- Thank you for sending the PR! We appreciate you spending the time to work on these changes. Help us understand your motivation by explaining why you decided to make this change. You can learn more about contributing to `idb` here: https://github.com/facebook/idb/blob/main/.github/CONTRIBUTING.md Happy contributing! --> ## Motivation Just updating a link on the documentation. Pull Request resolved: facebook#855 Reviewed By: fgasperij Differential Revision: D55406962 fbshipit-source-id: f04d7fb3f0ede823b337677ce005960257aacda6
Summary: Recently we found many of our tests are failed with "Failed to list tests." error message. https://www.internalfb.com/sandcastle/workflow/1292533093057807088/insights?selectedLines=420-463-1-1 https://www.internalfb.com/intern/testinfra/testconsole/testrun/1407375244792239 With one of the affected test `//xplat/arfx/skylight/app/ui/simulator_preferences:SkylightSimulatorPreferencesTestsAppleMac` After comparing the log output and investigations, early findings are - this only happens to x86_64 Mac tests, but not to arm64 Mac tests - affected tests are quite big in binary size (the `xctest` bundle can be 2GB and more) - the timeout happens at this line https://www.internalfb.com/code/fbsource/[b10994f3b0de]/fbobjc/EndToEndTests/FBSimulatorControl/src/CompanionLib/FBIDBCommandExecutor.m?lines=291 - the log when the timeout happens are {P1200928392} ``` list_tests_in_bundle failed with: Waited 60.000000 seconds for process 20037 to terminate, but the xctest process stalled: ``` From the above log, we can see the "Querying Bundle" started but not yet to reach the Principle class line https://www.internalfb.com/code/fbsource/[5ff9cd430747]/fbobjc/EndToEndTests/FBSimulatorControl/src/Shims/Shimulator/TestReporterShim/XCTestReporterShim.m?lines=546-547,593,705-706,717-718 To repro, a simple executable is made as {P1201284452} and then with Instrument to profile - we can see the x86_64 version of the xctest takes much longer to load at the `dlopen` line. {F1474118714} {F1474118862} We need more time to investigate why the test bundle is so big and affecting the dlopen loading performance. But to unblock these dying tests, a quick workaround is to extend this timeout. Reviewed By: jbardini Differential Revision: D55436652 fbshipit-source-id: ec2f7af29b05f3ffedec958801d456a34920446e
Summary: For reason unknown to me old API doesn't work with permission error. But with newer apis from `NSData` everything works. Reviewed By: jbardini Differential Revision: D55738651 fbshipit-source-id: 585a19908f18cbc45e47b05a094be7c755c5956f
Reviewed By: jbardini Differential Revision: D55980816 fbshipit-source-id: d9e16e337e0ce3016c524c45028f7edd82659b77
Summary: We should not install anything into global Application folder. That is security risk and unnecessary. Reviewed By: jbardini Differential Revision: D56300527 fbshipit-source-id: 845ab601848807e91a3e3707b540bda9d255c859
…f inside the test bundle Summary: This diff contains two changes related to the test configuration setup --- The first one is the error checking of the instantiation of `testConfiguration` - it looks like a previous copy-n-paste? but by the context we want to test `testConfiguration` https://www.internalfb.com/code/fbsource/[3a774059d7e3]/fbobjc/EndToEndTests/FBSimulatorControl/src/XCTestBootstrap/Configuration/FBTestRunnerConfiguration.m?lines=141-147%2C150%2C163-168 --- The second one is to write the `.xctestconfiguration` to where we persistent the `.xctest` bundle, instead of in the test bundle like the current implementation. Rasons are 1) With D56303593, the `.xctest` would be a symlink to buck-out folders - which would be better not touching/modifying it to keep buck2's consistency. 2) With Remote Execution, the `buck-out` can be mounted in a different location then the `idb-mac-cwd`. While we write the file with `NSDataWritingAtomic`, this becomes an issue. https://www.internalfb.com/code/fbsource/[3a774059d7e3f4411c4ee3e24ed2e6cb8a124130]/fbobjc/EndToEndTests/FBSimulatorControl/src/XCTestBootstrap/Configuration/FBTestConfiguration.m?lines=53 `-[NSData writeToFile:options:error:]` would return an error like this ``` 2024-04-23T07:58:45-0700 error idb_xctest : command_name=run-macos-app event_end_time=1713884325473 event_start_time=1713884324886 event_type=FAILURE time=1713884325 [IDBUtilities] Location: /paragon/pods/247200188/home/execution/3/4e6c01d22bec45948119a6935472aa2f/work/fbobjc/Tools/idb-cli/Sources/IDBXCTest/MacOS/Run/RunMacOSAppCommandImpl.swift:94:28 method: run() - Error: Error Domain=com.facebook.XCTestBootstrap Code=0 "Failed to prepare test configuration" UserInfo={NSLocalizedDescription=Failed to prepare test configuration, NSUnderlyingError=0x600001046220 {Error Domain=NSCocoaErrorDomain Code=512 "The file “TpxMacosUnitAppTestsMac-40B19D7B-DECB-406C-B5DB-9798056B2D13.xctestconfiguration” couldn’t be saved in the folder “TpxMacosUnitAppTestsMac.xctest”. Caused By: The operation couldn’t be completed. Cross-device link" UserInfo={NSFilePath=/private/var/folders/wz/23tx9kv14z96n2jxxnrsmjkw000xbj/T/idb-mac-cwd/1E0140F2-FF11-4739-9149-0DF54E8E9993-4816-0000EA2AC41A1EC6/idb-test-bundles/com.facebook.TpxMacosUnitAppTestsMac/TpxMacosUnitAppTestsMac.xctest/TpxMacosUnitAppTestsMac-40B19D7B-DECB-406C-B5DB-9798056B2D13.xctestconfiguration, NSLocalizedDescription=The file “TpxMacosUnitAppTestsMac-40B19D7B-DECB-406C-B5DB-9798056B2D13.xctestconfiguration” couldn’t be saved in the folder “TpxMacosUnitAppTestsMac.xctest”. Caused By: The operation couldn’t be completed. Cross-device link, NSUnderlyingError=0x600001045ce0 {Error Domain=NSPOSIXErrorDomain Code=18 "Cross-device link"}}}} Error: Location: /paragon/pods/247200188/home/execution/3/4e6c01d22bec45948119a6935472aa2f/work/fbobjc/Tools/idb-cli/Sources/IDBXCTest/MacOS/Run/RunMacOSAppCommandImpl.swift:94:28 method: run() - Error: Error Domain=com.facebook.XCTestBootstrap Code=0 "Failed to prepare test configuration" UserInfo={NSLocalizedDescription=Failed to prepare test configuration, NSUnderlyingError=0x600001046220 {Error Domain=NSCocoaErrorDomain Code=512 "The file “TpxMacosUnitAppTestsMac-40B19D7B-DECB-406C-B5DB-9798056B2D13.xctestconfiguration” couldn’t be saved in the folder “TpxMacosUnitAppTestsMac.xctest”. Caused By: The operation couldn’t be completed. Cross-device link" UserInfo={NSFilePath=/private/var/folders/wz/23tx9kv14z96n2jxxnrsmjkw000xbj/T/idb-mac-cwd/1E0140F2-FF11-4739-9149-0DF54E8E9993-4816-0000EA2AC41A1EC6/idb-test-bundles/com.facebook.TpxMacosUnitAppTestsMac/TpxMacosUnitAppTestsMac.xctest/TpxMacosUnitAppTestsMac-40B19D7B-DECB-406C-B5DB-9798056B2D13.xctestconfiguration, NSLocalizedDescription=The file “TpxMacosUnitAppTestsMac-40B19D7B-DECB-406C-B5DB-9798056B2D13.xctestconfiguration” couldn’t be saved in the folder “TpxMacosUnitAppTestsMac.xctest”. Caused By: The operation couldn’t be completed. Cross-device link, NSUnderlyingError=0x600001045ce0 {Error Domain=NSPOSIXErrorDomain Code=18 "Cross-device link"}}}} ``` The underlying POSIX 18 (`EXDEV`) is likely to be raised from the `rename` system call https://www.man7.org/linux/man-pages/man2/rename.2.html ``` EXDEV oldpath and newpath are not on the same mounted filesystem. (Linux permits a filesystem to be mounted at multiple points, but rename() does not work across different mount points, even if the same filesystem is mounted on both.) ``` https://www.unix.com/man-page/FreeBSD/2/rename/ ``` [EXDEV] The link named by to and the file named by from are on different logical devices (file systems). Note that this error code will not be returned if the implementation permits cross-device links. ``` We're not clear in Apple's actual implementation of `-[NSData writeToFile:options:error:]` with `NSDataWritingAtomic`, but it makes sense by the idiom of `NSDataWritingAtomic` - some renaming is involved. Also for some other OSS version of the Foundation lib, we can see the `rename` system call is called. - GNUStep - https://github.com/gnustep/libs-base/blob/master/Source/NSData.m#L2099 - apportable/foundation - https://github.com/apportable/Foundation/blob/master/System/Foundation/src/NSData.m#L646 - https://github.com/apportable/Foundation/blob/master/System/Foundation/src/_NSFileIO.m#L232 It can be the symlink change in D56303593 make this path / device / mount point condition becomes a issue. By writing the `.xctestconfiguration` to where we store the `.xctest`, things are good now Reviewed By: Nekitosss Differential Revision: D56478995 fbshipit-source-id: a7ea532015ff1ea78e19ff9d2accd91df2d11497
…up the test running time Summary: ## Hypothesis of slow running tests 1. Some test bundles are fat: `//xplat/arfx/skylight/app/ui/simulator_preferences:SkylightSimulatorPreferencesTestsAppleMac` is 2.4GB 2. The copying probably triggers some macOS security check that dyld then spend a quite long time to verify the binary (D55436652) ## Fixing approaching - After discussing with jbardini, We use symlinks to buck-out folder instead of copying from buck-out folder - After discussing with Nekitosss We were thinking to just use the buck-out folder in place, however some lines like these would still rely on the behavior of locating xctest bundles in the "basePath" - so we have to refactor that part in order to just use buck-out folder in place. https://www.internalfb.com/code/fbsource/[9f3a206a2380]/fbobjc/EndToEndTests/FBSimulatorControl/src/CompanionLib/Utility/FBIDBStorageManager.m?lines=389-415 ## Outcome - Big-size mac tests now run faster (check the test plan - from around 70 secs to less than 2 secs) - Disk usage of running tests is now half than before - very helpful when batch running big-size tests on Sandcastle diff-time and continuous jobs. Reviewed By: Nekitosss Differential Revision: D56303593 fbshipit-source-id: 1ab0f251991a0e2e2abc47060302cf71a30b62a5
) Summary: This pull request converts the CircleCI workflows to GitHub actions workflows. [Github Actions Importer](https://github.com/github/gh-actions-importer) was used to convert the workflows initially, then I edited them manually to correct errors in translation. **Issues** 1. _facebook/idb/build_and_deploy -> deploy-website_ ``` Error: Running "git push" command failed. Does the GitHub user account you are using have push access to the repository? ``` This is due to the fact that `${{ secrets.GITHUB_TOKEN }}` is either undefined or doesn't have the appropriate permissions or scopes enabled to access the repository. ## How did you test this change? I tested these changes in a [forked repo](https://github.com/robandpdx-org/idb/actions/runs/7717454971). https://fburl.com/workplace/f6mz6tmw Pull Request resolved: facebook#861 Reviewed By: Nekitosss Differential Revision: D56620612 Pulled By: jbardini fbshipit-source-id: 00b543d0019df4b59324d96582cce321a82c331a
Summary: Only because it makes the next diff easier to read. Reviewed By: lawrencelomax Differential Revision: D57011633 fbshipit-source-id: 1c6d5b99101c0ee66bb795b4936b8122053fc601
Reviewed By: lawrencelomax Differential Revision: D57011949 fbshipit-source-id: 34ab6ec8c8aec6afc275fda588f9218be16ad4fb
Summary: When using `unittest.TestCase`, any coroutines that look like test cases won't be awaited properly, causing the test to pass immediately. This diff fixes these test cases by switching to `unittest.IsolatedAsyncioTestCase` which will start properly running these tests. I fully expect red signal on this diff, but will still land it, because a failing test is better than a silently skipped one. This diff was produced by: ``` sl go D57273213 cd fbcode arc lint --take FIXIT --paths-cmd 'hg files -I "**/*.py" | grep test' -a HG: manually revert unrelated fixit changes sl st | awk '{print $2}' | xargs pylot run fbcode//python/libcst/ codemod ensure_import_present.EnsureImportPresentCommand --module unittest --entity IsolatedAsyncioTestCase sl st | awk '{print $2}' | xargs pylot run fbcode//python/libcst/ codemod remove_unused_imports.RemoveUnusedImportsWithGlean HG: manually add back these unused imports unrelated to this change: P1370679492 HG: split the diff per oncall ./scripts/zsol/split.sh ``` Reviewed By: Nekitosss Differential Revision: D57771323 fbshipit-source-id: efb6632235e6be396fdddace969e9c480f7aea53
Summary: there was a unit test failing, that blocks contbuild for RI https://www.internalfb.com/intern/test/562950028975323?ref_report_id=0 https://www.internalfb.com/sandcastle/workflow/117093590327028273 I debugged the problem to the `os.path.exists(testHostPath)` check which returns `False`, because files provided in the config have never been created in the test run. This diff creates these files to satisfy the check Differential Revision: D58088315 fbshipit-source-id: bbaf1a555fd008668998c590189ec271e0bce907
Summary: The mypy-protobuf we use doesn't support proto3 optional fields. It's also really really outdated. The project has since been rewritten in Python. The previous diffs in the stack import it, this one moves the protobuf compiler to use the new version. Reviewed By: c-ryan747 Differential Revision: D58193786 fbshipit-source-id: e83ae25db2cc7d3ea99953d33dd44fde22cc792d
guillaumelevass
changed the title
Update to latest idb
Update to latest idb to enable compatibility with more recent devices
Oct 9, 2024
bitter
requested changes
Oct 10, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unity-main
is the default branch for this repository (and pram usage)
bitter
approved these changes
Oct 15, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
UGK has a set of tests for metal written with UnitTest++ that needs to be deployed to an iOS device. Pram is the tool of choice has it can be reused cross platforms. Unfortunately, our fork of idb hasn't been updated in the last 3 years and wasn't working with more recent devices. This PR updates the source code, resolving conflicts.
The vast majority of commits are backports from facebook/idb/main. Conflict resolving starts at 3e55180.
Test Plan
I've been using idb through pram, both locally and on yamato. Locally, I successfully ran the pram test suite on iOS 16/iPhone 11 and iOS 17/iPhone 14. On yamato, I managed to have a successful test on iOS 16/iPhone 13. Tests are failing on iPhone 8, iPhone SE and iPhone SE 3 for different reasons.
Failure on iPhone SE 3 seems to be related to idb, as the device family is detected as Unknown. An issue (facebook#869) has been reported.
Tests are failing on iPhone 8 and iPhone SE because of what appears to be infrastructure issue, the bokken image might not have the right version of XCode installed.
Related PRs
https://github.cds.internal.unity3d.com/unity/pram/pull/734