| 339 | } |
| 340 | |
| 341 | static void reportLibraryRootFailure(TestReport::IOutput& console, StringSpan applicationRoot, StartupAttempt* attempts, |
| 342 | size_t numAttempts, StringSpan explicitOverride, bool explicitOverrideProvided, |
| 343 | StringSpan compiledLibraryRoot) |
| 344 | { |
| 345 | console.print("TestReport::Failed resolving library root\n"); |
| 346 | if (explicitOverrideProvided) |
| 347 | { |
| 348 | console.print(" explicit override = {}\n", explicitOverride); |
| 349 | } |
| 350 | else |
| 351 | { |
| 352 | console.print(" compiled root = {}\n", compiledLibraryRoot); |
| 353 | } |
| 354 | console.print(" application root = {}\n", applicationRoot); |
| 355 | if (numAttempts == 0) |
| 356 | { |
| 357 | console.print(" attempted paths = <none>\n"); |
| 358 | } |
| 359 | for (size_t idx = 0; idx < numAttempts; ++idx) |
| 360 | { |
| 361 | console.print(" - {}: {}\n", StringSpan::fromNullTerminated(attempts[idx].source, StringEncoding::Ascii), |
| 362 | attempts[idx].path.view()); |
| 363 | } |
| 364 | console.flush(); |
| 365 | } |
| 366 | |
| 367 | static bool resolveLibraryRoot(TestReport::IOutput& console, StringSpan explicitOverride, bool explicitOverrideProvided, |
| 368 | StringSpan executablePath, StringSpan applicationRoot, StringPath& libraryRoot) |
no test coverage detected