Hello. I recently pulled the gradle source and was trying to build on a windows 8 machine. I ended up with a unit test failure in the core subproject. The test that is failing is at BaseDirFileResolverSpec.groovy:145: normalizes path which uses windows 8.3 name Looking into this, I think this is caused by the fact that by default Windows 8 sets the 8dot3name support on a per volume basis. Using the fsutil app on my machine, I can see that 8.3 names are disabled on my build volume:
$ fsutil 8dot3name query Z: The volume state is: 1 (8dot3 name creation is disabled). The registry state is: 2 (Per volume setting - the default). Based on the above two settings, 8dot3 name creation is disabled on Z: Here is a technet article about the setting: http://support.microsoft.com/kb/121007 In order to correct this I was thinking that a new test precondition could be added that ensures the windows system supports 8.3 file names before running the test. We would first check the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation registry key. - If it is 0, then 8.3 is supported on all drives and the precondition is true. - If it is 1 then we skip the test as 8.3 is not supported and the precondition is false. - If it is 2 then we check the volume on which the test is running to find the right value (this may require escalation if done on a system drive) and based on that setting we return the appropriate value for the precondition. - If it is 3 and the test is running on the system drive, we check the drive and return the appropriate value for the precondition. This is my first foray into the gradle source, so if there are better suggestions on how to fix this, or any pointers on similar code to look at please let me know. Thanks. John