diff --git a/RNTester/Podfile.lock b/RNTester/Podfile.lock index 6c8a6ac5b2b853..e748f69aac59ac 100644 --- a/RNTester/Podfile.lock +++ b/RNTester/Podfile.lock @@ -348,33 +348,33 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost-for-react-native: a110407d9db2642fd2e1bcd7c5a51c81f2521dc9 DoubleConversion: a1bc12a74baa397a2609e0f10e19b8062d864053 - FBLazyVector: 8da30c49d2692165d80699445ff23dff19e114e1 - FBReactNativeSpec: c1ff48ca5f424c6b4dc326852220b70f0583f99b + FBLazyVector: 65a0b14ca456a75bf539e9abe2a0f28d1bad8e39 + FBReactNativeSpec: 9d9df31938f3395fb6c024e94306a5a2088fd99d Folly: feff29ba9d0b7c2e4f793a94942831d6cc5bbad7 glog: b3f6d74f3e2d33396addc0ee724d2b2b79fc3e00 - RCTRequired: f97536ed637e3f45ad5908168b0d74c446ccac01 - RCTTypeSafety: ede90b8a90e0dd629d19984788d434ae23828a64 - React: b8f3da30d525b068a54ac964abe933c8ca617dce - React-ART: d45ff8a3eb41b11513259371573fe77100d64b79 - React-Core: bd1d31a06447d4fad4e657c6c2d99e006e6ae92e - React-CoreModules: 39adfbf96f09b6fee8430cae929911add8e1921e - React-cxxreact: c190cf3bfc4cf67f5578bd7d1875b1e027d218c7 - React-jsi: 1e2cdb8a09f8dac172b58882e11229af86d4f708 - React-jsiexecutor: 3d3137d20b4b1df8d2f23fc51315922fd46d13d3 - React-jsinspector: 42d71e60149806237cfc4789a8968c89e91c17ce - React-RCTActionSheet: e6f9797fda2c1a40301bf090233d37ede984690f - React-RCTAnimation: 83e00862029ab643fea67cd371184da4ec371993 - React-RCTBlob: cd4dd353c0219e32c7f053056d4cc756ea029915 - React-RCTImage: c91c9ef999f4408096ee26d630499bb832264889 - React-RCTLinking: fad8541eab16a923fcbb5ac40b07e847aacbe662 - React-RCTNetwork: 5010fd890d40126287016a6940af04bf12f6286e - React-RCTPushNotification: 89628bdae834b098e4beb2a94d5e95f49446c066 - React-RCTSettings: 96f66fd85f85a92e92df41e611a88f0fb2a8512c - React-RCTTest: 58d069361c8efb625aadf65ee05ba0653ebb8a11 - React-RCTText: 961b9d9a3e4c97e6fcdfba4677a15b2bc9cd7102 - React-RCTVibration: ce6aa29f6c4a4f3dd5313f29a3e13fe9c8262887 - ReactCommon: fb3b55f28bfde51fe4806e7b12f581c401ea3312 - Yoga: e476e70ffbcbfce593ced8395f5d89f4d9503884 + RCTRequired: 270746b5efaa25dc7de613f97df6709f80b609c2 + RCTTypeSafety: 9c64d042daa34388b8d3b9db8c73dbbc5fb2b38f + React: e126457b9d9a337fdbe922d89497bfcf6d28f904 + React-ART: c359718f5687c1e61a22cd80caf72411e49ae15a + React-Core: c83e4896282408d09dcb38de1f06c476d1012e3f + React-CoreModules: f4986053c52e5edcae43331ea19b187a476958b3 + React-cxxreact: b7fe811807f6ddad3bb5f6f4be9ac53baddb1553 + React-jsi: 8e9dd1427e35dc5c53594bac8f1934c4ebc7c495 + React-jsiexecutor: 85007cc7bb183995775411b8e2248cd416ddc160 + React-jsinspector: f2fc160e638c0f36003c25be60405d79d994669d + React-RCTActionSheet: a66ff39503be0b96969e037c4fbc3f0c9350853e + React-RCTAnimation: dbdf2d0a06d20aa0f79267d9f4317bd59aa0c2df + React-RCTBlob: 916bc3d69e1e910fffa4c647f8b8e9c7728a170c + React-RCTImage: 8e85c45c556130606c87f8f3320585bbe2a200c5 + React-RCTLinking: 7c00a03eb4060059c41564e86b2b816cfc80ce88 + React-RCTNetwork: a74588332d2981b40effd770dc51362b78f0fd1e + React-RCTPushNotification: 7da9079b0d26733fd0f8adba012e3393544d66b9 + React-RCTSettings: 9e8739785a74690009c14f249f2adf158596daa2 + React-RCTTest: 1bde99b76f15a2b97fed03a5dcdecccae79fc2b0 + React-RCTText: d1e1b9c1e2b6d6f5a4c69ceba849f68013ca0f6e + React-RCTVibration: 1dfe1de57ff67e02b5722133732a9a46d3aa639f + ReactCommon: 7dc94dd5627dfc3e2de2f7fe443838b7258e54d2 + Yoga: 1707b0871d4ca7d05e74d1e7d1bad13c88193dd7 PODFILE CHECKSUM: 2bf56de39dc7e153b4f1637e0f4874f2591fc55a diff --git a/RNTester/RCTTest/RCTTestRunner.m b/RNTester/RCTTest/RCTTestRunner.m index 29be554a4cf422..0ea95f9eb248b7 100644 --- a/RNTester/RCTTest/RCTTestRunner.m +++ b/RNTester/RCTTest/RCTTestRunner.m @@ -15,6 +15,7 @@ #import #import #import // TODO(macOS ISS#2323203) +#import // TODO(OSS Candidate ISS#2710739) #import "FBSnapshotTestController.h" #import "RCTTestModule.h" @@ -208,8 +209,10 @@ - (void)runTest:(SEL)test module:(NSString *)moduleName configurationBlock(rootView); } + RCTImageLoader *imageLoader = [bridge moduleForClass:[RCTImageLoader class]]; // TODO(OSS Candidate ISS#2710739) + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:kTestTimeoutSeconds]; - while (date.timeIntervalSinceNow > 0 && testModule.status == RCTTestStatusPending && errors == nil) { + while (date.timeIntervalSinceNow > 0 && (testModule.status == RCTTestStatusPending || [imageLoader activeTasks] > 0) && errors == nil) { // TODO(OSS Candidate ISS#2710739) [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; } diff --git a/RNTester/js/utils/RNTesterList.ios.js b/RNTester/js/utils/RNTesterList.ios.js index 19878aac0ce565..6909c130768372 100644 --- a/RNTester/js/utils/RNTesterList.ios.js +++ b/RNTester/js/utils/RNTesterList.ios.js @@ -55,10 +55,6 @@ const ComponentExamples: Array = [ key: 'FocusEvents', module: require('../examples/FocusEventsExample/FocusEventsExample'), supportsTVOS: true, - skipTest: { - default: - 'Reason: Intermittent failure: RedBox errors: Missing request token for request: http://localhost:8081/assets/RNTester/js/assets/like.png...', - }, }, // ]TODO(OSS Candidate ISS#2710739) { key: 'ImageExample', @@ -68,31 +64,16 @@ const ComponentExamples: Array = [ { key: 'JSResponderHandlerExample', module: require('../examples/JSResponderHandlerExample/JSResponderHandlerExample'), - // [TODO(macOS ISS#2323203) - skipTest: { - macos: - 'Reason: Intermittent failure: Missing request token for request: http://localhost:***@2x.png...', - }, // ]TODO(macOS ISS#2323203) }, { key: 'InputAccessoryViewExample', module: require('../examples/InputAccessoryView/InputAccessoryViewExample'), supportsTVOS: true, - // [TODO(macOS ISS#2323203) - skipTest: { - macos: - 'Reason: Intermittent failure: Missing request token for request: https://facebook.github.io/react-native/img/opengraph.png', - }, // ]TODO(macOS ISS#2323203) }, { key: 'KeyboardAvoidingViewExample', module: require('../examples/KeyboardAvoidingView/KeyboardAvoidingViewExample'), supportsTVOS: false, - // [TODO(macOS ISS#2323203) - skipTest: { - macos: - 'Reason: Intermittent failure: Missing request token for request: https://facebook.github.io/react-native/img/favicon.png', - }, // ]TODO(macOS ISS#2323203) }, { key: 'LayoutEventsExample', @@ -113,11 +94,6 @@ const ComponentExamples: Array = [ key: 'MultiColumnExample', module: require('../examples/MultiColumn/MultiColumnExample'), supportsTVOS: true, - // [TODO(OSS Candidate ISS#2710739) - skipTest: { - default: - 'Reason: Intermittent failure: Terminating app due to uncaught exception: Application tried to present modally an active controller: Missing request token for request: http://localhost:8081/assets/RNTester/js/assets/like.png...', - }, // ]TODO(OSS Candidate ISS#2710739) }, { key: 'NewAppScreenExample', @@ -168,11 +144,6 @@ const ComponentExamples: Array = [ key: 'SectionListExample', module: require('../examples/SectionList/SectionListExample'), supportsTVOS: true, - // [TODO(OSS Candidate ISS#2710739) - skipTest: { - default: - 'Reason: Intermittent failure: Terminating app due to uncaught exception: Application tried to present modally an active controller: Missing request token for request: http://localhost:8081/assets/RNTester/js/assets/like.png...', - }, // ]TODO(OSS Candidate ISS#2710739) }, { key: 'SegmentedControlIOSExample', diff --git a/React/CoreModules/RCTImageLoader.h b/React/CoreModules/RCTImageLoader.h index 0f23d48170d361..bb7cba4e52e2a2 100644 --- a/React/CoreModules/RCTImageLoader.h +++ b/React/CoreModules/RCTImageLoader.h @@ -21,6 +21,7 @@ - (instancetype)initWithRedirectDelegate:(id)redirectDelegate loadersProvider:(NSArray> * (^)(void))getLoaders decodersProvider:(NSArray> * (^)(void))getDecoders; +- (NSInteger)activeTasks; // TODO(OSS Candidate ISS#2710739) @end /** diff --git a/React/CoreModules/RCTImageLoader.mm b/React/CoreModules/RCTImageLoader.mm index d1ffbc2a545a8b..7fbaacf78435cf 100644 --- a/React/CoreModules/RCTImageLoader.mm +++ b/React/CoreModules/RCTImageLoader.mm @@ -377,6 +377,12 @@ - (void)dequeueTasks }); } +// [TODO(OSS Candidate ISS#2710739) +- (NSInteger)activeTasks { + return _activeTasks; +} +// ]TODO(OSS Candidate ISS#2710739) + /** * This returns either an image, or raw image data, depending on the loading * path taken. This is useful if you want to skip decoding, e.g. when preloading