www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Phobos Unittesting

I'm working on adding support for Windows' symlinks in std.file. 
std.file.symlink's augmentation is straightforward, but testing 
it is not as easy. The reason is because, normally, one must 
confer escalated privileges to the executable making the link via 
CreateSymbolicLink[A|W]. This may be obviated, in Windows 10 at 
least, by enabling "Developer mode" and passing a flag to the 
aforementioned function.

Thus, consider what I have right now:

auto flags = /* Default flags */;
version (StdUnittest)
{
	flags |= SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE;
}

By doing this, running tests shouldn't require administrator's 
rights, assuming "Developer mode" is enabled. However, are the 
Windows CI machines set up for this? Should there be a special 
case at all?

The final concern relates to Phobos defining system_directory and 
system_file for Posix and Android. These two constants are used 
in testing some of std.file's functionality. For Windows, a 
testing directory could be %temp% and the testing file could be 
created in that directory. If my changes were approved, the file 
would only have to be created twice throughout std.file's tests. 
However, I'd like to know some alternatives and potential issues 
to/with this!
Oct 12 2020