Replace `VerifyDir` and `CompareFiles` with
`AssertDirectoryTreesAreEquivalent` and `AssertFilesAreEqual`.
Move `WriteFile` to `TestUtils`.
Add "Symlink" category to start.sh.
After we removed the tilde expansion in revision c9aa6cf5fb ("Avoid
performing tilde expansion"), the Utility.ExpandEnvironmentVariables
method simply called System.Environment.ExpandEnvironmentVariables. We
can simplify the code by just referencing the built-in method directly.
The expansion being performed was often incorrect, as it's possible for
the tilde character to appear as part of the path where it should not be
expanded to the user's home directory.
Properly supporting tilde expansion is complicated and requires
additional study. Instead of supporting it only partially, we have
decided to simplify things and just drop tilde expansion for now. See
the discussion in issue #2619, as well as issues #2325 and #2555.
This enables modules to report messages to the message-sink, and thus to the commandline through the normal interface.
This simplifies handling multiple logging systems, and supports reporting logging from multiple concurrent controller instances.
This fixes#2225
This fixes#1575