By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Let a scenario carry whether it is a file or a directory scenarioDir, scenarioDirRecur and scenarioDirOfDirs took a FilePath and handed the callback a FilePath, so the one thing the caller had to know about a scenario, whether it was a file or a directory, was the one thing the type would not tell them. scenarioDirOfDirs handing out a directory and scenarioDir handing out a file had the same signature. They now take a Path b Dir and hand over a Path Rel File or a Path Rel Dir. The scenario is relative to the directory given rather than to the working directory. That way it is the name to say the test is about, and joining it to the directory is what reads it: neither has to be recovered from the other, where a joined path made a caller wanting the name split it back apart. Test descriptions are unchanged, separator and all, so a --filter over them still selects the same tests. sydtest-test no longer depends on filepath: joining a scenario directory to a file in it was the only thing it wanted System.FilePath for, and Path's own </> does that with the types lined up.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 0s | 1s | 1s | 1s | 0s |
| Eval | 1s | 20s | 20s | 21s | 0s |
| Build | 20s | 13m23s | 7m34s | 7m54s | 0s |
| Suite | 0s | 13m44s | 7m54s | 7m54s | 0s |