> On Dec 13, 2015, at 2:03 AM, David Hart via swift-evolution > <swift-evolut...@swift.org> wrote: > > Currently, it is impossible for XCTest to unit test assert and precondition > failures because they kill the process. And those are important to unit test: > how would you test NSArray's objectAtIndex bound conditions? Currently, the > standard library tests those with StdlibUnittest, a small piece of code which > runs those tests in a forked process. > > I want to start a proposal but I'm not sure if it should come as a XCTest > improvement which spawns a process or if the language should implement assert > and precondition as a special kind of throw?
One way to start a proposal is to try and work through what the implications of each approach are, decide which is best, and then write that up in a proposal explaining why you chose the approach you did. If you are interested in working on this, I would definitely also survey how other frameworks do this. Googletest, for example, supports this via a "death tests" mechanism, which would be good to understand and compare to: https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#death-tests I suspect that spawning a process is the best approach, because it can cover more cases than the language built in features, and doesn't require language support, but I would be interested in seeing an in depth study of what this would mean for the framework and the APIs. - Daniel > > David > _______________________________________________ > swift-evolution mailing list > swift-evolut...@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-corelibs-dev mailing list swift-corelibs-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-corelibs-dev