This has been an unnecessary code path for a long time now and should be removed particularly because it triggers wasteful `stat` calls.
rdar://51523161
A compile-time conditional had previously been introduced to prevent
`private` test methods from being considered test candidates. This
conditional was not working as intended, however, because the header
providing the required preprocessor flag was not being included.
Several number of issues with the non-Objc-interop test case have also
been fixed.
The goal for https://bugs.swift.org/browse/SR-710 is to automatically
generate a list of tests to run for XCTest on Linux. The prevailing
approach is to generate this list using SourceKit, which is to be
ported to Linux.
SourceKit uses libIndex's concept of `isTestCandidate` to determine
what constitutes a test. `isTestCandidate` is tested via
`test/SourceKit/Indexing/index.swift`.
On Linux, however, the list of tests to be run will be generated by
some tool and placed in a file that is separate from the source file
that defines the test method. Therefore, the test method must not be
"private", since it needs to be accessed from a separate file.
This commit adds two test files: one that verifies the behavior on
Linux, and one that verifies the behavior on platforms with Objective-C
interop. It also (1) simplifies the `isTestCandidate` function, and (2)
adds the interop-specific logic.
This commit does not remove the existing `isTestCandidate` tests in
`test/SourceKit/Indexing/index.swift`; that is left for a future commit.