Respond on exceptions thrown when on main thread
Summary: Changes FlipperPerformBlockOnMainThread to take a responder, and respond with an error if an exception is caught. Reviewed By: passy Differential Revision: D14066982 fbshipit-source-id: 70135bf58171684bcd013c66d9deec366aed36f5
This commit is contained in:
committed by
Facebook Github Bot
parent
c0b5f10693
commit
9b6db1f482
62
iOS/FlipperKitTests/FlipperUtilTests.mm
Normal file
62
iOS/FlipperKitTests/FlipperUtilTests.mm
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (c) 2018-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the LICENSE
|
||||
* file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
#if FB_SONARKIT_ENABLED
|
||||
|
||||
#import <FlipperKit/FlipperPlugin.h>
|
||||
#import <FlipperKit/FlipperClient.h>
|
||||
#import <FlipperKit/FlipperClient+Testing.h>
|
||||
#import <FlipperKit/FlipperConnection.h>
|
||||
#import <FlipperKitTestUtils/BlockBasedSonarPlugin.h>
|
||||
#import <FlipperKitTestUtils/FlipperResponderMock.h>
|
||||
#import <FlipperTestLib/FlipperConnectionManagerMock.h>
|
||||
#import <FlipperTestLib/FlipperPluginMock.h>
|
||||
#import <folly/json.h>
|
||||
#import <vector>
|
||||
|
||||
#import "FlipperPlugin.h"
|
||||
|
||||
@interface FlipperUtilTests : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation FlipperUtilTests {
|
||||
FlipperResponderMock *responder;
|
||||
}
|
||||
|
||||
|
||||
- (void)setUp {
|
||||
responder = [FlipperResponderMock new];
|
||||
}
|
||||
|
||||
- (void)testPerformOnMainThreadSuccess {
|
||||
FlipperPerformBlockOnMainThread(^{}, responder);
|
||||
NSAssert([responder.successes count] == 0, @"No successes are output");
|
||||
NSAssert([responder.errors count] == 0, @"No errors are output");
|
||||
}
|
||||
|
||||
- (void)testPerformOnMainThreadStdException {
|
||||
FlipperPerformBlockOnMainThread(^{
|
||||
throw new std::exception();
|
||||
}, responder);
|
||||
NSAssert([responder.successes count] == 0, @"No successes are output");
|
||||
NSAssert([responder.errors count] == 1, @"1 error is output");
|
||||
}
|
||||
|
||||
- (void)testPerformOnMainThreadNSException {
|
||||
FlipperPerformBlockOnMainThread(^{
|
||||
NSArray *a = [NSArray init];
|
||||
[a objectAtIndex:1];
|
||||
}, responder);
|
||||
NSAssert([responder.successes count] == 0, @"No successes are output");
|
||||
NSAssert([responder.errors count] == 1, @"1 error is output");
|
||||
}
|
||||
|
||||
@end
|
||||
#endif
|
||||
Reference in New Issue
Block a user