From 90e8e2933b014ccc06691b35209f08148a1221ff Mon Sep 17 00:00:00 2001 From: smurfiv_cp Date: Wed, 7 Nov 2012 21:29:39 +0000 Subject: [PATCH] - Start to add Unit tests to perform speed / stability confirmation NOTE: Current code base is not stable ! --- DokanTesting/App.config | 20 ++ DokanTesting/CommonFuncs.cs | 37 +++ DokanTesting/DokanTesting.csproj | 85 ++++++ DokanTesting/DokanTesting.csproj.vspscc | 10 + DokanTesting/MountTests.cs | 116 +++++++++ DokanTesting/Properties/AssemblyInfo.cs | 36 +++ DokanTesting/TestDokanOperations.cs | 241 ++++++++++++++++++ Liquesce.sln | 36 ++- "LiquesceFa\303\247ade/Utils.cs" | 2 +- LiquesceSvc/Properties/AssemblyInfo.cs | 4 +- LiquesceTesting/LiquesceTesting.csproj | 76 ++++++ LiquesceTesting/LiquesceTesting.csproj.vspscc | 10 + LiquesceTesting/Properties/AssemblyInfo.cs | 36 +++ ThirdParty/Dokan/dokan.h | 2 +- ThirdParty/DokanNet/Dokan.cs | 9 +- .../DokanNet/Properties/AssemblyInfo.cs | 4 +- ThirdParty/NUnit/nunit.core.dll | Bin 0 -> 151552 bytes ThirdParty/NUnit/nunit.core.interfaces.dll | Bin 0 -> 61440 bytes ThirdParty/NUnit/nunit.framework.dll | Bin 0 -> 147456 bytes ThirdParty/NUnit/nunit.util.dll | Bin 0 -> 135168 bytes 20 files changed, 712 insertions(+), 12 deletions(-) create mode 100644 DokanTesting/App.config create mode 100644 DokanTesting/CommonFuncs.cs create mode 100644 DokanTesting/DokanTesting.csproj create mode 100644 DokanTesting/DokanTesting.csproj.vspscc create mode 100644 DokanTesting/MountTests.cs create mode 100644 DokanTesting/Properties/AssemblyInfo.cs create mode 100644 DokanTesting/TestDokanOperations.cs create mode 100644 LiquesceTesting/LiquesceTesting.csproj create mode 100644 LiquesceTesting/LiquesceTesting.csproj.vspscc create mode 100644 LiquesceTesting/Properties/AssemblyInfo.cs create mode 100644 ThirdParty/NUnit/nunit.core.dll create mode 100644 ThirdParty/NUnit/nunit.core.interfaces.dll create mode 100644 ThirdParty/NUnit/nunit.framework.dll create mode 100644 ThirdParty/NUnit/nunit.util.dll diff --git a/DokanTesting/App.config b/DokanTesting/App.config new file mode 100644 index 0000000..f29c2a0 --- /dev/null +++ b/DokanTesting/App.config @@ -0,0 +1,20 @@ + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/DokanTesting/CommonFuncs.cs b/DokanTesting/CommonFuncs.cs new file mode 100644 index 0000000..8a1e0ae --- /dev/null +++ b/DokanTesting/CommonFuncs.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using NLog; + +namespace DokanTesting +{ + static public class CommonFuncs + { + static private readonly Logger Log = LogManager.GetCurrentClassLogger(); + + public static bool CheckExistenceOfMount(string mountPoint) + { + if (mountPoint.Length == 1) + { + string path = string.Format("{0}:{1}", mountPoint, Path.DirectorySeparatorChar); + if (!Directory.Exists(path)) + { + return false; + } + // 2nd phase as the above is supposed to be cheap but can return false +ves + { + string[] drives = Environment.GetLogicalDrives(); + return (Array.Exists(drives, dr => dr.Remove(1) == mountPoint)); + } + } + else + { + DirectoryInfo di = new DirectoryInfo(mountPoint); + return ((di.Attributes & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint); + } + } + } +} diff --git a/DokanTesting/DokanTesting.csproj b/DokanTesting/DokanTesting.csproj new file mode 100644 index 0000000..3e32101 --- /dev/null +++ b/DokanTesting/DokanTesting.csproj @@ -0,0 +1,85 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {73EC480E-46DD-4D3B-9E9E-3BF2EC1213BD} + Library + Properties + DokanTesting + DokanTesting + v4.0 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\ThirdParty\NLog.dll + + + ..\ThirdParty\NUnit\nunit.core.dll + + + ..\ThirdParty\NUnit\nunit.framework.dll + + + + + + + + + + + + + Utils.cs + + + + + + + + + {A09B408A-26A0-4FF8-83D5-6E1B1DA5F63C} + DokanNet + + + + + + + + copy "$(ProjectDir)..\Thirdparty\Dokan_x64\x64\$(ConfigurationName)\Dokan.dll" "$(TargetDir)" + + + \ No newline at end of file diff --git a/DokanTesting/DokanTesting.csproj.vspscc b/DokanTesting/DokanTesting.csproj.vspscc new file mode 100644 index 0000000..feffdec --- /dev/null +++ b/DokanTesting/DokanTesting.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/DokanTesting/MountTests.cs b/DokanTesting/MountTests.cs new file mode 100644 index 0000000..68a27b5 --- /dev/null +++ b/DokanTesting/MountTests.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using DokanNet; +using NLog; +using NUnit.Framework; + +namespace DokanTesting +{ + [TestFixture] + [Description("These tests excercise the mount### API's.")] + [Category("Mount")] + public class MountTests + { + static private readonly Logger Log = LogManager.GetCurrentClassLogger(); + private List mountedPoints = new List(); + + [TestFixtureSetUp] + public void Init() + { + Log.Warn("Test @ [{0}]", "Warn"); + Log.Debug("Test @ [{0}]", "Debug"); + Log.Trace("Test @ [{0}]", "Trace"); + Log.Info("DokanVersion:[{0}], DokanDriverVersion[{1}]", Dokan.DokanVersion(), Dokan.DokanDriverVersion()); + Dokan.DokanSetDebugMode(true); + + } + + [TestFixtureTearDown] + public void Dispose() + { + foreach (string point in mountedPoints) + { + if (point.Length == 1) + Dokan.DokanUnmount(point[0]); + else + Dokan.DokanRemoveMountPoint(point); + } + } + + + [SetUp] + public void SetUp() + { + } + + [TearDown] + public void TearDown() + { + } + + + + [Test] + [Description("Check that it is possible to perform a simple mount.")] + public void A010SimpleLetterMount() + { + mountedPoints.Add("M"); + DokanOptions options = new DokanOptions + { + MountPoint = "M", + ThreadCount = 1, + DebugMode = true + }; + TestLayer testLayer = new TestLayer(); + ThreadPool.QueueUserWorkItem(testLayer.Start, options); + + + Assert.That(() => CommonFuncs.CheckExistenceOfMount(options.MountPoint), Is.True.After(50000, 100), "CheckExistenceOfMount"); + + //Assert.That(() => testLayer.RetVal, Is.EqualTo(Dokan.DOKAN_SUCCESS).After(500, 50), + // "Expected result after 500ms"); + + + } + + [Test] + [Description("Check that it is possible to perform a simple mount.")] + public void A020SimpleDirMount() + { + mountedPoints.Add("C:\\blam\\test"); + DokanOptions options = new DokanOptions + { + MountPoint = "C:\\blam\\test", + ThreadCount = 1, + DebugMode = true + }; + TestLayer testLayer = new TestLayer(); + ThreadPool.QueueUserWorkItem(testLayer.Start, options); + Thread.Sleep(20*1000); + + //Assert.That(() => CommonFuncs.CheckExistenceOfMount(options.MountPoint), Is.True.After(50000, 100), "CheckExistenceOfMount"); + + } + + } + + public class TestLayer + { + public TestLayer() + { + RetVal = Dokan.DOKAN_MOUNT_ERROR; + } + + public void Start(object state) + { + DokanOptions options = state as DokanOptions; + IDokanOperations proxy = new TestDokanOperations(); + RetVal = Dokan.DokanMain(options, proxy); + } + + public int RetVal { get; set; } + } +} diff --git a/DokanTesting/Properties/AssemblyInfo.cs b/DokanTesting/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..48d65fe --- /dev/null +++ b/DokanTesting/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DokanTesting")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DokanTesting")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("08a70825-c0ae-467d-9dfd-d8e32c3b183c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DokanTesting/TestDokanOperations.cs b/DokanTesting/TestDokanOperations.cs new file mode 100644 index 0000000..7695161 --- /dev/null +++ b/DokanTesting/TestDokanOperations.cs @@ -0,0 +1,241 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; +using DokanNet; +using LiquesceFacade; +using NLog; + +namespace DokanTesting +{ + public class TestDokanOperations : IDokanOperations + { + static private readonly Logger Log = LogManager.GetCurrentClassLogger(); + + public int CreateFile(string filename, uint rawAccessMode, uint rawShare, uint rawCreationDisposition, + uint rawFlagsAndAttributes, DokanFileInfo info) + { + Log.Debug("CreateFile IN filename [{0}], rawAccessMode[0x{1:X8}], rawShare[{2}], rawCreationDisposition[{3}], rawFlagsAndAttributes[{4}|{5}], ProcessId[{6}]", + filename, rawAccessMode, (FileShare)rawShare, (FileMode)rawCreationDisposition, (rawFlagsAndAttributes & 0xFFFE0000), (FileAttributes)(rawFlagsAndAttributes & 0x0001FFFF), info.ProcessId); + info.IsDirectory = (filename == "\\"); + info.refFileHandleContext = 1; + return Dokan.DOKAN_SUCCESS; + } + + public int OpenDirectory(string filename, DokanFileInfo info) + { + Log.Debug("OpenDirectory [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + info.IsDirectory = true; + return Dokan.DOKAN_SUCCESS; + } + + public int CreateDirectory(string filename, DokanFileInfo info) + { + Log.Debug("CreateDirectory [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int Cleanup(string filename, DokanFileInfo info) + { + Log.Trace("Cleanup IN DokanProcessId[{0}] with filename [{1}] handle[{2}] isDir[{3}]", info.ProcessId, filename, info.refFileHandleContext, info.IsDirectory); + return Dokan.DOKAN_SUCCESS; + } + + public int CloseFile(string filename, DokanFileInfo info) + { + Log.Trace("CloseFile [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.DOKAN_SUCCESS; + } + + public int ReadFileNative(string file, IntPtr rawBuffer, uint rawBufferLength, ref uint rawReadLength, long rawOffset, + DokanFileInfo convertFileInfo) + { + Log.Debug("ReadFile [{0}] IN offset=[{2}] DokanProcessId[{1}]", file, convertFileInfo.ProcessId, rawOffset); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int WriteFileNative(string filename, IntPtr rawBuffer, uint rawNumberOfBytesToWrite, ref uint rawNumberOfBytesWritten, + long rawOffset, DokanFileInfo info) + { + Log.Debug("WriteFile [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int FlushFileBuffersNative(string filename, DokanFileInfo info) + { + Log.Debug("FlushFileBuffers IN [{0}] DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int GetFileInformationNative(string filename, ref BY_HANDLE_FILE_INFORMATION rawHandleFileInformation, + DokanFileInfo info) + { + Log.Debug("GetFileInformationNative [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + rawHandleFileInformation.dwFileAttributes = info.IsDirectory ?FileAttributes.Directory: FileAttributes.Temporary; + rawHandleFileInformation.nFileSizeHigh = 0; + rawHandleFileInformation.nFileSizeLow = 0; + return Dokan.DOKAN_SUCCESS; + } + + public int FindFiles(string filename, out WIN32_FIND_DATA[] files, DokanFileInfo info) + { + return FindFiles(filename, info.ProcessId, out files); + } + + public int FindFilesWithPattern(string filename, string pattern, out WIN32_FIND_DATA[] files, DokanFileInfo info) + { + return FindFiles(filename, info.ProcessId, out files, pattern); + } + + private int FindFiles(string filename, uint processId, out WIN32_FIND_DATA[] files, string pattern = "*") + { + Log.Debug("FindFiles IN [{0}], pattern[{1}]", filename, pattern); + files = null; + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + + public int SetFileAttributes(string filename, FileAttributes attr, DokanFileInfo info) + { + Log.Debug("SetFileAttributes [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int SetFileTimeNative(string filename, ref WIN32_FIND_FILETIME rawCreationTime, + ref WIN32_FIND_FILETIME rawLastAccessTime, ref WIN32_FIND_FILETIME rawLastWriteTime, + DokanFileInfo info) + { + Log.Debug("SetFileTime [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int DeleteFile(string filename, DokanFileInfo info) + { + Log.Debug("DeleteFile [{0}] IN DokanProcessId[{1}], refFileHandleContext[{2}]", filename, info.ProcessId, info.refFileHandleContext); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int DeleteDirectory(string filename, DokanFileInfo info) + { + Log.Debug("DeleteDirectory [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int MoveFile(string filename, string newname, bool replace, DokanFileInfo info) + { + Log.Debug("MoveFile [{0}] to [{1}] IN DokanProcessId[{2}] context[{2}]", filename, newname, info.ProcessId, info.refFileHandleContext); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int SetEndOfFile(string filename, long length, DokanFileInfo info) + { + Log.Debug("SetEndOfFile [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int SetAllocationSize(string filename, long length, DokanFileInfo info) + { + Log.Debug("SetAllocationSize [{0}] IN DokanProcessId[{0}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int LockFile(string filename, long offset, long length, DokanFileInfo info) + { + Log.Debug("LockFile [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int UnlockFile(string filename, long offset, long length, DokanFileInfo info) + { + Log.Debug("UnlockFile [{0}] IN DokanProcessId[{1}]", filename, info.ProcessId); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int GetDiskFreeSpace(ref ulong freeBytesAvailable, ref ulong totalBytes, ref ulong totalFreeBytes, DokanFileInfo info) + { + Log.Trace("GetDiskFreeSpace IN DokanProcessId[{0}]", info.ProcessId); + freeBytesAvailable = totalBytes = totalFreeBytes = 1; + return Dokan.DOKAN_SUCCESS; + } + + public int GetVolumeInformation(IntPtr rawVolumeNameBuffer, uint rawVolumeNameSize, ref uint rawVolumeSerialNumber, + ref uint rawMaximumComponentLength, ref uint rawFileSystemFlags, IntPtr rawFileSystemNameBuffer, + uint rawFileSystemNameSize, DokanFileInfo info) + { + int dokanReturn = Dokan.DOKAN_ERROR; + try + { + Log.Trace("GetVolumeInformation IN DokanProcessId[{0}]", info.ProcessId); + + + byte[] volume = Encoding.Unicode.GetBytes("UnitTesting"); + int length = volume.Length; + byte[] volumeNull = new byte[length + 2]; + Array.Copy(volume, volumeNull, length); + Marshal.Copy(volumeNull, 0, rawVolumeNameBuffer, Math.Min((int)rawVolumeNameSize, length + 2)); + rawVolumeSerialNumber = 123456789; + rawMaximumComponentLength = 256; + + // FILE_FILE_COMPRESSION 0x00000010 // Don't do this.. It causes lot's of problems later on + // And the Dokan code does not support it + //case FileStreamInformation: + // //DbgPrint("FileStreamInformation\n"); + // status = STATUS_NOT_IMPLEMENTED; + // break; + + rawFileSystemFlags = (uint)(FILE_SYSTEM_FLAGS.FILE_CASE_PRESERVED_NAMES + // | FILE_SYSTEM_FLAGS.FILE_CASE_SENSITIVE_SEARCH // NTFS is case-preserving but case-insensitive in the Win32 namespace + //| FILE_SYSTEM_FLAGS.FILE_NAMED_STREAMS + //| FILE_SYSTEM_FLAGS.FILE_SEQUENTIAL_WRITE_ONCE + | FILE_SYSTEM_FLAGS.FILE_SUPPORTS_EXTENDED_ATTRIBUTES + //| FILE_SYSTEM_FLAGS.FILE_SUPPORTS_HARD_LINKS + | FILE_SYSTEM_FLAGS.FILE_UNICODE_ON_DISK + | FILE_SYSTEM_FLAGS.FILE_PERSISTENT_ACLS + //| FILE_SYSTEM_FLAGS.FILE_VOLUME_QUOTAS + ); + + // rawFileSystemFlags |= (uint) FILE_SYSTEM_FLAGS.FILE_READ_ONLY_VOLUME; + + byte[] sys = Encoding.Unicode.GetBytes("DokanTesting"); + length = sys.Length; + byte[] sysNull = new byte[length + 2]; + Array.Copy(sys, sysNull, length); + + Marshal.Copy(sysNull, 0, rawFileSystemNameBuffer, Math.Min((int)rawFileSystemNameSize, length + 2)); + + dokanReturn = Dokan.DOKAN_SUCCESS; + } + catch (Exception ex) + { + Log.ErrorException("GetVolumeInformation threw: ", ex); + dokanReturn = Utils.BestAttemptToWin32(ex); + } + finally + { + Log.Trace("GetVolumeInformation OUT dokanReturn[{0}]", dokanReturn); + } + return dokanReturn; + } + + public int Unmount(DokanFileInfo info) + { + Log.Warn("Unmount IN DokanProcessId[{0}]", info.ProcessId); + return Dokan.DOKAN_SUCCESS; + } + + public int GetFileSecurityNative(string file, ref SECURITY_INFORMATION rawRequestedInformation, IntPtr rawSecurityDescriptor, + uint rawSecurityDescriptorLength, ref uint rawSecurityDescriptorLengthNeeded, + DokanFileInfo info) + { + Log.Debug("GetFileSecurityNative [{0}] IN GetFileSecurity[{1}][{2}]", file, info.ProcessId, rawRequestedInformation); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + + public int SetFileSecurityNative(string file, ref SECURITY_INFORMATION rawSecurityInformation, IntPtr rawSecurityDescriptor, + uint rawSecurityDescriptorLength, DokanFileInfo info) + { + Log.Debug("SetFileSecurityNative IN [{0}] SetFileSecurity[{1}][{2}]", file, info.ProcessId, rawSecurityInformation); + return Dokan.ERROR_CALL_NOT_IMPLEMENTED; + } + } +} \ No newline at end of file diff --git a/Liquesce.sln b/Liquesce.sln index f180926..aa459d4 100644 --- a/Liquesce.sln +++ b/Liquesce.sln @@ -35,9 +35,24 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dokan_x64", "ThirdParty\Dok EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dokan", "ThirdParty\Dokan\Dokan.vcxproj", "{FDC2E78C-71AE-4E49-8BB4-CB839C97A13D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DokanTesting", "DokanTesting\DokanTesting.csproj", "{73EC480E-46DD-4D3B-9E9E-3BF2EC1213BD}" + ProjectSection(ProjectDependencies) = postProject + {4680A690-91A5-443D-A96F-13EB87F673A0} = {4680A690-91A5-443D-A96F-13EB87F673A0} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LiquesceTesting", "LiquesceTesting\LiquesceTesting.csproj", "{ED38D91E-FA2E-4BCD-9B39-6B3E81D2119B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnit", "NUnit", "{36B01897-FED0-4E14-B4E0-2160FDF29E94}" + ProjectSection(SolutionItems) = preProject + ThirdParty\NUnit\nunit.core.dll = ThirdParty\NUnit\nunit.core.dll + ThirdParty\NUnit\nunit.core.interfaces.dll = ThirdParty\NUnit\nunit.core.interfaces.dll + ThirdParty\NUnit\nunit.framework.dll = ThirdParty\NUnit\nunit.framework.dll + ThirdParty\NUnit\nunit.util.dll = ThirdParty\NUnit\nunit.util.dll + EndProjectSection +EndProject Global GlobalSection(TeamFoundationVersionControl) = preSolution - SccNumberOfProjects = 10 + SccNumberOfProjects = 12 SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs08 SccLocalPath0 = . @@ -71,6 +86,12 @@ Global SccProjectTopLevelParentUniqueName9 = Liquesce.sln SccProjectName9 = ThirdParty/Dokan_x64 SccLocalPath9 = ThirdParty\\Dokan_x64 + SccProjectUniqueName10 = DokanTesting\\DokanTesting.csproj + SccProjectName10 = DokanTesting + SccLocalPath10 = DokanTesting + SccProjectUniqueName11 = LiquesceTesting\\LiquesceTesting.csproj + SccProjectName11 = LiquesceTesting + SccLocalPath11 = LiquesceTesting EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -112,6 +133,14 @@ Global {FDC2E78C-71AE-4E49-8BB4-CB839C97A13D}.Debug|Any CPU.Build.0 = Debug|Win32 {FDC2E78C-71AE-4E49-8BB4-CB839C97A13D}.Release|Any CPU.ActiveCfg = Release|Win32 {FDC2E78C-71AE-4E49-8BB4-CB839C97A13D}.Release|Any CPU.Build.0 = Release|Win32 + {73EC480E-46DD-4D3B-9E9E-3BF2EC1213BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73EC480E-46DD-4D3B-9E9E-3BF2EC1213BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73EC480E-46DD-4D3B-9E9E-3BF2EC1213BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73EC480E-46DD-4D3B-9E9E-3BF2EC1213BD}.Release|Any CPU.Build.0 = Release|Any CPU + {ED38D91E-FA2E-4BCD-9B39-6B3E81D2119B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED38D91E-FA2E-4BCD-9B39-6B3E81D2119B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED38D91E-FA2E-4BCD-9B39-6B3E81D2119B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED38D91E-FA2E-4BCD-9B39-6B3E81D2119B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -120,10 +149,11 @@ Global {A09B408A-26A0-4FF8-83D5-6E1B1DA5F63C} = {C1ADA293-B55A-4B33-AE5A-6FC40323FC39} {4680A690-91A5-443D-A96F-13EB87F673A0} = {C1ADA293-B55A-4B33-AE5A-6FC40323FC39} {FDC2E78C-71AE-4E49-8BB4-CB839C97A13D} = {C1ADA293-B55A-4B33-AE5A-6FC40323FC39} + {36B01897-FED0-4E14-B4E0-2160FDF29E94} = {C1ADA293-B55A-4B33-AE5A-6FC40323FC39} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - BuildVersion_UseGlobalSettings = True - BuildVersion_AssemblyInfoFilename = LiquesceSvc\Properties\AssemblyInfo.cs BuildVersion_BuildVersioningStyle = YearStamp.MonthStamp.DayStamp.Increment + BuildVersion_AssemblyInfoFilename = LiquesceSvc\Properties\AssemblyInfo.cs + BuildVersion_UseGlobalSettings = True EndGlobalSection EndGlobal diff --git "a/LiquesceFa\303\247ade/Utils.cs" "b/LiquesceFa\303\247ade/Utils.cs" index c0e8c9f..6b9c272 100644 --- "a/LiquesceFa\303\247ade/Utils.cs" +++ "b/LiquesceFa\303\247ade/Utils.cs" @@ -24,10 +24,10 @@ // -------------------------------------------------------------------------------------------------------------------- #endregion using System; -using System.IO; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Windows.Forms; + using DokanNet; namespace LiquesceFacade diff --git a/LiquesceSvc/Properties/AssemblyInfo.cs b/LiquesceSvc/Properties/AssemblyInfo.cs index de28a7b..d182530 100644 --- a/LiquesceSvc/Properties/AssemblyInfo.cs +++ b/LiquesceSvc/Properties/AssemblyInfo.cs @@ -56,5 +56,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("12.11.973.5")] -[assembly: AssemblyFileVersion("12.11.973.5")] +[assembly: AssemblyVersion("12.11.974.6")] +[assembly: AssemblyFileVersion("12.11.974.6")] diff --git a/LiquesceTesting/LiquesceTesting.csproj b/LiquesceTesting/LiquesceTesting.csproj new file mode 100644 index 0000000..821f10b --- /dev/null +++ b/LiquesceTesting/LiquesceTesting.csproj @@ -0,0 +1,76 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {ED38D91E-FA2E-4BCD-9B39-6B3E81D2119B} + Library + Properties + LiquesceTesting + LiquesceTesting + v4.0 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\ThirdParty\NLog.dll + + + ..\ThirdParty\NUnit\nunit.core.dll + + + ..\ThirdParty\NUnit\nunit.framework.dll + + + + + + + + + + + + + + + {CFE5DC7B-25FB-45C4-AF18-1963853375E1} + LiquesceFacade + + + {A09B408A-26A0-4FF8-83D5-6E1B1DA5F63C} + DokanNet + + + + + \ No newline at end of file diff --git a/LiquesceTesting/LiquesceTesting.csproj.vspscc b/LiquesceTesting/LiquesceTesting.csproj.vspscc new file mode 100644 index 0000000..feffdec --- /dev/null +++ b/LiquesceTesting/LiquesceTesting.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/LiquesceTesting/Properties/AssemblyInfo.cs b/LiquesceTesting/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8e532af --- /dev/null +++ b/LiquesceTesting/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("LiquesceTesting")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("LiquesceTesting")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("02f5e7f3-920e-48e2-a7ed-c66b2736a7b3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ThirdParty/Dokan/dokan.h b/ThirdParty/Dokan/dokan.h index 9831291..87cb9d9 100644 --- a/ThirdParty/Dokan/dokan.h +++ b/ThirdParty/Dokan/dokan.h @@ -46,7 +46,7 @@ extern "C" { #endif // The current Dokan version (ver 0.6.0). Please set this constant on DokanOptions->Version. -#define DOKAN_VERSION 600 +#define DOKAN_VERSION 601 #define DOKAN_OPTION_DEBUG 1 // ouput debug message #define DOKAN_OPTION_STDERR 2 // ouput debug message to stderr diff --git a/ThirdParty/DokanNet/Dokan.cs b/ThirdParty/DokanNet/Dokan.cs index 89be1f0..8ba4a14 100644 --- a/ThirdParty/DokanNet/Dokan.cs +++ b/ThirdParty/DokanNet/Dokan.cs @@ -50,7 +50,7 @@ public static class Dokan public const int DOKAN_MOUNT_ERROR = -5; // Can't assign drive letter #endregion - private const ushort DOKAN_VERSION = 600; // ver 0.6.0 + private const ushort DOKAN_VERSION = 601; // ver 0.6.0 #region Dokan Driver Options private const uint DOKAN_OPTION_DEBUG = 1; @@ -67,8 +67,11 @@ public static class Dokan public static int DokanMain(DokanOptions options, IDokanOperations operations) { + if (operations == null) + throw new ArgumentNullException("operations"); + Log.Info("Start DokanMain"); - if (String.IsNullOrEmpty(options.VolumeLabel)) + if (string.IsNullOrEmpty(options.VolumeLabel)) { options.VolumeLabel = "DOKAN"; } @@ -130,7 +133,7 @@ public static int DokanUnmount(char driveLetter) public static int DokanRemoveMountPoint(string mountPoint) { - return Dokan.DokanRemoveMountPoint(mountPoint); + return DokanDll.DokanRemoveMountPoint(mountPoint); } public static uint DokanVersion() diff --git a/ThirdParty/DokanNet/Properties/AssemblyInfo.cs b/ThirdParty/DokanNet/Properties/AssemblyInfo.cs index c46147c..30d3999 100644 --- a/ThirdParty/DokanNet/Properties/AssemblyInfo.cs +++ b/ThirdParty/DokanNet/Properties/AssemblyInfo.cs @@ -37,5 +37,5 @@ // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("12.6.940.7")] -[assembly: AssemblyFileVersion("12.6.940.7")] +[assembly: AssemblyVersion("12.11.957.7")] +[assembly: AssemblyFileVersion("12.11.957.7")] diff --git a/ThirdParty/NUnit/nunit.core.dll b/ThirdParty/NUnit/nunit.core.dll new file mode 100644 index 0000000000000000000000000000000000000000..8e6d9566c1347d99d53bc27c8e2085d3860aa7f6 GIT binary patch literal 151552 zcmeFad7NcMdH;XKCH?9B+WgCaW!11by%2n0EB?~Ds= zx8sJ2fQoCzeH8cLh6XWFjK&=ucTKdT#+ayyafykEarnMJPu02i+@1!>_m%JOpC9v@ zzUNfcQ%^nh)KgDAwLRyIi(eK*K@b%9d*Fc}xQD0y9cRA}{j-zgfw6lBg1gK2?{`nn z>G$t<{?*sC#&2k*PibEE)bS@@cK!9~_VLTF9B=Npe*Bv2$4@%zyz!@|S6n&W-(T6^ zqdxoOAUM4z3dUC5e0Ema4}x&NYELN$#zX#G?7Cz8`*A!)o#F=_-Mkt7dImd5C;pYY zL+W+h3oJmm^Rzcb*uO6w9R_FV4ZOb-6Bhs576yHb;~q|UJP4>k`(KIhW7?r0nBIQn zGqw}nf32_AxT8ARG#i}YbN_%l zAs2k)^$`v{!huIP@CXMU;lLvtc!UFwaNrRRJi>uTIPeGu{{O@Q&8zvRxoH^m2FX}Y z@V2!*LD^zEKWC3KweAET^zEPi^zAe2%B53QZ2IZWWe2_R38U;42ZUw+lD>reU4x^sSh&o9n=?_GC&=F&^|KI03Q9Ju_>p#3@ z{npq0`+FAdzwAq|9{<%Dn}7bH!c9{@{-^Q>E_!w4)9-)h+4tP_-!J(2A*cWHm|KSb z?2sczk6n9L@Y4^Kt3UYow%RklcKy)iLhuBr>j{Ed7^Q22ppvfRCrZcoO~&~Nf+*e3 zqLjL~rxH&c5GLy_M)3yO1i=kH(*{MdU{MLeXbyH2f{9>gb5BsE9D=o=*$Z%`5yUQD zb8yyFYC$+FXiE@$jd+$AvUnrTXLRJ#g_n|)znJ0OB$^bO5RNcd4vgyV zVTSki)TyD7W@QLR?9w6M(PlUlG8|EG6fmF!N3xMxH&;`;luVVWzGONK;`C&G8Y}Xt zn@GL$3X1N~8wRV|v?K>8cQs5XC9dxc8$Bb7Xkx8IG(%pFCWSmrcY_O=tOfJbuFz~i zl54Xx0d;a9Kj~RLR4ww+scHsG=f@T zLhW)BP!+3V>k!^NDSf4rX;5lq4X?(xzoU85WMOhBpy^@C+1L^${g6n5_LrxYk)}|3 zxTW=Hphs9xsh0Cd3sSE}P=p_==^LYzK_k?H ztt0)#9amHD;k^;P-WVAt#{w3FCUt#bu~bj#&T&xcU!cDYJJu#=ipb!5L3!eMq)q>t z{GCWw`!Ii6A6*YxiKpW4Ag(|_Vyl1Bxp(lSyVinXMB6I+TU8dUm8oc?tt>23t!K)j z+Ca)u(+#CC9fB?ZTh~HNavkkHe;k0xl>{rXb;s4yBkpC*^niO=Yx=FxQ>RlzL8Ct? zZXCI&iiRQlwz#hml)T)(1)AwG$h}lT#qpzROJ?`SsB68qN_W>{dnBiTX*fNVU&aBWX>wCBeGK8Lb;)CS7~5ulhZLlk z4{>rDaXGAmL2*^{M(_@&s8WzfwEmcCEe;h?mQqteCW9J35Y_-C7a$~U8B{#f1efz? z9OpT-ISS|&!GPMhbvngX!dV)xfSTwlO~H8=?60Gg4=C3PyQ)EP{_j%JELv5oVKEx*^u%^u&pSWZq`Hc(UC@Ol6hROuu zS$gdGW}q1tdxmK`A~drI{*yjZLNWiM-r-15EQ{&hj965>Y%Z;gQlrm7tVf$^%?`7Dh@t5J&7M zha7Wln;^bNHB4T@U`KG+y8=c5=@VzKgF}2*jZ(UO#mv^rhj*f93c>t6{3e$Z?ZPld zwjQ+%7y;mUyWzve$rz^l!yx*qX^jb|HKdK5Y*dPcbX)^bqr}^OHY6=pLtn&}ECkO5 zKSV;;WdFPfamAojY{)OyZ$pWN{f$dQORZ~Puu?IlSPkN#-uh77SgEmKS6{Kz8lxnq z^=dInkCCF*s~&B*zFQpL8`Bk4qBSMtM= zQbUPRkBO00x0}u@oxYC4^eG_LOe{|6OtLpO@J`?AqB$;^3F$zVq8Z(}UmHi

{QG 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 literal 0 HcmV?d00001 diff --git a/ThirdParty/NUnit/nunit.core.interfaces.dll b/ThirdParty/NUnit/nunit.core.interfaces.dll new file mode 100644 index 0000000000000000000000000000000000000000..a966ad52179e4ac5e150d864da493cbfe4700462 GIT binary patch literal 61440 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 Qn1BhGfC-p@2@DCm09u*j=>Px# literal 0 HcmV?d00001 diff --git a/ThirdParty/NUnit/nunit.framework.dll b/ThirdParty/NUnit/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..215767d2fb38837c02dffec220b3ce69b4859260 GIT binary patch literal 147456 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