in BoostTestAdapter/Discoverers/BoostTestDiscovererFactory.cs [65:124]
public IEnumerable<FactoryResult> GetDiscoverers(IReadOnlyCollection<string> sources, Settings.BoostTestAdapterSettings settings)
{
var discoverers = new List<FactoryResult>();
if ((sources == null) || (!sources.Any()))
return discoverers;
// Use default settings in case they are not provided by client code
settings = settings ?? new BoostTestAdapterSettings();
// sources that can be run on the external runner
var externalDiscovererSources = new List<string>();
// sources that support list-content parameter
var listContentDiscovererSources = new List<string>();
foreach (var source in sources)
{
string extension = Path.GetExtension(source);
if (settings.ExternalTestRunner != null)
{
if (settings.ExternalTestRunner.ExtensionType.IsMatch(extension))
{
externalDiscovererSources.Add(source);
continue;
}
}
// Skip modules which are not .exe
if (string.Compare(extension, BoostTestDiscoverer.ExeExtension, true) != 0)
{
continue;
}
// Ensure that the source is a Boost.Test module if it supports '--list_content'
if (((settings.ForceListContent) || IsListContentSupported(source, settings)))
{
listContentDiscovererSources.Add(source);
}
}
if ((externalDiscovererSources.Any()) && (settings != null))
{
discoverers.Add(new FactoryResult()
{
Discoverer = new ExternalDiscoverer(settings.ExternalTestRunner),
Sources = externalDiscovererSources
});
}
if (listContentDiscovererSources.Any())
discoverers.Add(new FactoryResult()
{
Discoverer = new ListContentDiscoverer(),
Sources = listContentDiscovererSources
});
return discoverers;
}