static void XCToolLog_testCaseDidStop()

in Shims/Shimulator/TestReporterShim/XCTestReporterShim.m [302:338]


static void XCToolLog_testCaseDidStop(XCTestCase *testCase, NSNumber *unexpectedExceptionCount, NSNumber *failureCount, NSNumber *totalDuration)
{
  dispatch_sync(EventQueue(), ^{
    NSString *className = nil;
    NSString *methodName = nil;
    NSString *testKey = nil;
    parseXCTestCase(testCase, &className, &methodName, &testKey);

    BOOL errored = [unexpectedExceptionCount integerValue] > 0;
    BOOL failed = [failureCount integerValue] > 0;
    BOOL succeeded = NO;
    NSString *result;
    if (errored) {
      result = kReporter_EndTest_ResultValueError;
    } else if (failed) {
      result = kReporter_EndTest_ResultValueFailure;
    } else {
      result = kReporter_EndTest_ResultValueSuccess;
      succeeded = YES;
    }

    // report test results
    NSArray<NSDictionary<NSString *, id> *> *retExceptions = [__testExceptions copy];
    NSDictionary<NSString *, id> *json = EventDictionaryWithNameAndContent(
      kReporter_Events_EndTest, @{
        kReporter_EndTest_TestKey : testKey,
        kReporter_EndTest_ClassNameKey : className,
        kReporter_EndTest_MethodNameKey : methodName,
        kReporter_EndTest_SucceededKey: @(succeeded),
        kReporter_EndTest_ResultKey : result,
        kReporter_EndTest_TotalDurationKey : totalDuration,
        kReporter_EndTest_ExceptionsKey : retExceptions,
    });

    PrintJSON(json);
  });
}