/// <summary> /// Verify the message syntax In FILE_FS_ATTRIBUTE_INFORMATION /// </summary> /// <param name="fileFsAttributeInformation">A FileFsAttributeInformation type structure.</param> /// <param name="maximumFileNameComponentLength">The maximum file name component length, in bytes, supported by the specified file system.</param> public void VerifyMessageSyntaxFileFsAttributeInformation( FileFsAttributeInformation fileFsAttributeInformation, int maximumFileNameComponentLength) { Site.DefaultProtocolDocShortName = "MS-FSCC"; // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1684"); // // Verify MS-FSCC requirement: MS-FSCC_R1684 // // If FILE_FS_ATTRIBUTE_INFORMATION is not null in this message, then mean the message contains it, so can capture this requirement just by verifying this field is not null Site.CaptureRequirementIfIsNotNull( fileFsAttributeInformation, 1684, @"The message[FileFsAttributeInformation] contains a FILE_FS_ATTRIBUTE_INFORMATION data element."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1703,the value of FileSystemAttributes is {0}", fileFsAttributeInformation.FileSystemAttributes); // // Verify MS-FSCC requirement: MS-FSCC_R1703 // // If the two flags don't equal 1 at the same time, then means they are incompatible FileSystemAttributes_Values flagsOr = (FileSystemAttributes_Values.FILE_FILE_COMPRESSION | FileSystemAttributes_Values.FILE_VOLUME_IS_COMPRESSED); bool isVerifyR1703 = (fileFsAttributeInformation.FileSystemAttributes & flagsOr) != flagsOr; Site.CaptureRequirementIfIsTrue( isVerifyR1703, 1703, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemAttributes (4 bytes): This flag[FILE_FILE_COMPRESSION 0x00000010] is incompatible with the FILE_VOLUME_IS_COMPRESSED flag."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1697,the value of FileSystemAttributes is {0}", fileFsAttributeInformation.FileSystemAttributes); // // Verify MS-FSCC requirement: MS-FSCC_R1697 // // The same logic with R1703 Site.CaptureRequirementIfIsTrue( isVerifyR1703, 1697, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemAttributes (4 bytes): This flag[FILE_VOLUME_IS_COMPRESSED 0x00008000] is incompatible with the FILE_FILE_COMPRESSION flag."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1711,the value of FileSystemNameLength is {0}", fileFsAttributeInformation.FileSystemNameLength); // // Verify MS-FSCC requirement: MS-FSCC_R1711 // bool isVerifyR1711 = (Marshal.SizeOf(fileFsAttributeInformation.FileSystemNameLength) == 4) && (fileFsAttributeInformation.FileSystemNameLength == fileFsAttributeInformation.FileSystemName.Length); Site.CaptureRequirementIfIsTrue( isVerifyR1711, 1711, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemNameLength (4 bytes): A 32-bit unsigned integer that contains the length, in bytes, of the file system name in the FileSystemName field."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1712,the value of FileSystemNameLength is {0}", fileFsAttributeInformation.FileSystemNameLength); // // Verify MS-FSCC requirement: MS-FSCC_R1712 // Site.CaptureRequirementIfIsTrue( fileFsAttributeInformation.FileSystemNameLength > 0, 1712, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemNameLength (4 bytes): The value of this field MUST be greater than 0."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1709,the value of MaximumComponentNameLength is {0}", fileFsAttributeInformation.MaximumComponentNameLength); // // Verify MS-FSCC requirement: MS-FSCC_R1709 // bool isVerifyR1709 = (Marshal.SizeOf(fileFsAttributeInformation.MaximumComponentNameLength) == 4) && (fileFsAttributeInformation.MaximumComponentNameLength == maximumFileNameComponentLength); Site.CaptureRequirementIfIsTrue( isVerifyR1709, 1709, @"[In FILE_FS_ATTRIBUTE_INFORMATION]MaximumComponentNameLength (4 bytes): A 32-bit signed integer that contains the maximum file name component length, in bytes, supported by the specified file system."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1710,the value of MaximumComponentNameLength is {0}", fileFsAttributeInformation.MaximumComponentNameLength); // // Verify MS-FSCC requirement: MS-FSCC_R1710 // Site.CaptureRequirementIfIsTrue( fileFsAttributeInformation.MaximumComponentNameLength > 0, 1710, @"[In FILE_FS_ATTRIBUTE_INFORMATION]MaximumComponentNameLength (4 bytes): The value of this field MUST be greater than 0."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1716"); // // Verify MS-FSCC requirement: MS-FSCC_R1716 // Site.CaptureRequirementIfAreEqual<uint>( fileFsAttributeInformation.FileSystemNameLength, (uint)fileFsAttributeInformation.FileSystemName.Length, 1716, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemName (variable): This field MUST be handled as a sequence of FileSystemNameLength bytes."); Site.DefaultProtocolDocShortName = Site.Properties["ProtocolShortName"]; }
public void VerifyDataTypeFileFsAttributeInformation(FileFsAttributeInformation info) { Site.DefaultProtocolDocShortName = "MS-FSCC"; string ServerOS = Site.Properties["ServerOSPlatform"]; // check if OS is not the specified one, FILE_READ_ONLY_VOLUME is not set if (ServerOS != "WinXP" && ServerOS != "Win2k3" && ServerOS != "WinVista" && ServerOS != "Win2k8") { // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1967. FileSystemAttributes: {0}", info.FileSystemAttributes); // // Verify MS-FSCC requirement: MS-FSCC_R1967 // // check FILE_READ_ONLY_VOLUME bit is not set bool isVerifyR1967 = ((info.FileSystemAttributes & FileSystemAttributes_Values.FILE_READ_ONLY_VOLUME) == 0); Site.CaptureRequirementIfIsTrue( isVerifyR1967, 1967, @"<76> Section 2.5.1: This attribute[FILE_READ_ONLY_VOLUME 0x00080000] is only available on Windows?XP, Windows Server?2003, Windows?Vista, and Windows Server?2008."); } if (ServerOS == "WinVistaSP1" || ServerOS == "Win2k8" || ServerOS == "Win7") { // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1972. FileSystemName: {0}", info.FileSystemName); // // Verify MS-FSCC requirement: MS-FSCC_R1972 // bool isVerifyR1972 = (info.FileSystemName.Equals("FAT") || info.FileSystemName.Equals("FAT16") || info.FileSystemName.Equals("FAT32") || info.FileSystemName.Equals("exFAT") || info.FileSystemName.Equals("NTFS") || info.FileSystemName.Equals("CDFS") || info.FileSystemName.Equals("UDF")); Site.CaptureRequirementIfIsTrue( isVerifyR1972, 1972, @"<79> Section 2.5.1: For Windows?Vista SP1 and Windows Server?2008, valid values [for FileSystemName] are: ""FAT"",""FAT16"",""FAT32"",""exFAT"",""NTFS"",""CDFS"",and ""UDF""."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1971. FileSystemName: {0}", info.FileSystemName); // // Verify MS-FSCC requirement: MS-FSCC_R1971 // bool isVerifyR1971 = (info.FileSystemName.Equals("FAT") || info.FileSystemName.Equals("FAT16") || info.FileSystemName.Equals("FAT32") || info.FileSystemName.Equals("exFAT") || info.FileSystemName.Equals("NTFS") || info.FileSystemName.Equals("CDFS") || info.FileSystemName.Equals("UDF")); Site.CaptureRequirementIfIsTrue( isVerifyR1971, 1971, @"<79> Section 2.5.1:For Windows 7, valid values [for FileSystemName] are: ""FAT"",""FAT16"",""FAT32"",""exFAT"",""NTFS"",""CDFS"",""UDF""."); } if (ServerOS == "WinXP") { // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1974. FileSystemName: {0}", info.FileSystemName); // // Verify MS-FSCC requirement: MS-FSCC_R1974 // bool isVerifyR1974 = (info.FileSystemName.Equals("FAT") || info.FileSystemName.Equals("FAT16") || info.FileSystemName.Equals("FAT32") || info.FileSystemName.Equals("NTFS") || info.FileSystemName.Equals("CDFS")); Site.CaptureRequirementIfIsTrue( isVerifyR1974, 1974, @"<79> Section 2.5.1: For Windows?XP, valid values [for FileSystemName] are: ""FAT"",""FAT16"",""FAT32"",""NTFS"",and ""CDFS""."); } if (ServerOS == "WinVista") { // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1973. FileSystemName: {0}", info.FileSystemName); // // Verify MS-FSCC requirement: MS-FSCC_R1973 // bool isVerifyR1973 = (info.FileSystemName.Equals("FAT") || info.FileSystemName.Equals("FAT16") || info.FileSystemName.Equals("FAT32") || info.FileSystemName.Equals("NTFS") || info.FileSystemName.Equals("CDFS") || info.FileSystemName.Equals("UDF")); Site.CaptureRequirementIfIsTrue( isVerifyR1973, 1973, @"<79> Section 2.5.1:For Windows?Vista RTM, valid values [for FileSystemName] are: ""FAT"",""FAT16"", ""FAT32"",""NTFS"",""CDFS"",and ""UDF""."); } Site.DefaultProtocolDocShortName = Site.Properties["ProtocolShortName"]; }
/// <summary> /// Verify data type FileFsAttributeInformation /// </summary> /// <param name="fileFsAttributeInformation"> FileFsAttributeInformation type data </param> public void VerifyDataTypeFileFsAttributeInformationForOld( FileFsAttributeInformation fileFsAttributeInformation) { Site.DefaultProtocolDocShortName = "MS-FSCC"; // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1684"); // // Verify requirement 1684 // Site.CaptureRequirementIfAreEqual<Type>( typeof(FileFsAttributeInformation), fileFsAttributeInformation.GetType(), 1684, @"The message[FileFsAttributeInformation] contains a FILE_FS_ATTRIBUTE_INFORMATION data element."); // if fileFsAttributeInformation.FileSystemAttributes contains FILE_FILE_COMPRESSION or FILE_VOLUME_IS_COMPRESSED if ((fileFsAttributeInformation.FileSystemAttributes & FileSystemAttributes_Values.FILE_FILE_COMPRESSION) == FileSystemAttributes_Values.FILE_FILE_COMPRESSION || (fileFsAttributeInformation.FileSystemAttributes & FileSystemAttributes_Values.FILE_VOLUME_IS_COMPRESSED) == FileSystemAttributes_Values.FILE_VOLUME_IS_COMPRESSED) { // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1703 Actual FileSystemAttributes: {0}", fileFsAttributeInformation.FileSystemAttributes); // // Verify requirement 1703 // // Incompatible means FILE_FILE_COMPRESSION and FILE_VOLUME_IS_COMPRESSED cannot both apear in FileSystemAttrubutes uint fileSystemAttributesBitUsed = (uint)(FileSystemAttributes_Values.FILE_VOLUME_IS_COMPRESSED | FileSystemAttributes_Values.FILE_FILE_COMPRESSION); // Verify the value of FileSystemAttributes bool isVerifyR1703 = ( (((uint)fileFsAttributeInformation.FileSystemAttributes & fileSystemAttributesBitUsed) != (uint)fileFsAttributeInformation.FileSystemAttributes)); Site.CaptureRequirementIfIsTrue( isVerifyR1703, 1703, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemAttributes (4 bytes): This flag[FILE_FILE_COMPRESSION 0x00000010] is incompatible with the FILE_VOLUME_IS_COMPRESSED flag."); } // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1709 MaximumComponentNameLength: {0}", fileFsAttributeInformation.MaximumComponentNameLength); // // Verify requirement 1709 // Site.CaptureRequirementIfAreEqual<Type>( typeof(Int32), fileFsAttributeInformation.MaximumComponentNameLength.GetType(), 1709, @"[In FILE_FS_ATTRIBUTE_INFORMATION]MaximumComponentNameLength (4 bytes): A 32-bit signed integer that contains the maximum file name component length, in bytes, supported by the specified file system."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1710 Actual MaximumComponentNameLength: {0}", fileFsAttributeInformation.MaximumComponentNameLength); // // Verify requirement 1710 // Site.CaptureRequirementIfIsTrue( fileFsAttributeInformation.MaximumComponentNameLength >= 0, 1710, @"[In FILE_FS_ATTRIBUTE_INFORMATION]MaximumComponentNameLength (4 bytes): The value of this field MUST be greater than 0."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1711 Actual FileSystemNameLength: {0}, Expected FileSystemNameLength: {1}.", fileFsAttributeInformation.FileSystemNameLength, fileFsAttributeInformation.FileSystemName.Length); // // Verify requirement 1711 // // Verify the type and the value of the FileSystemNameLength bool isVerifyR1711 = ( fileFsAttributeInformation.FileSystemNameLength.GetType() == typeof(UInt32) & fileFsAttributeInformation.FileSystemNameLength == fileFsAttributeInformation.FileSystemName.Length); Site.CaptureRequirementIfIsTrue( isVerifyR1711, 1711, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemNameLength (4 bytes): A 32-bit unsigned integer that contains the length, in bytes, of the file system name in the FileSystemName field."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1712"); // // Verify requirement 1712 // Site.CaptureRequirementIfAreEqual<int>( fileFsAttributeInformation.FileSystemName.Length, (int)fileFsAttributeInformation.FileSystemNameLength, 1712, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemNameLength (4 bytes): The value of this field MUST be greater than 0."); // As the rs is informative, we capture this rs directly Site.CaptureRequirement( 1713, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemName (variable): A variable-length Unicode field containing the name of the file system."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1716 "); // // Verify requirement 1716 // Site.CaptureRequirementIfAreEqual<int>( (int)fileFsAttributeInformation.FileSystemNameLength, fileFsAttributeInformation.FileSystemName.Length, 1716, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemName (variable): This field MUST be handled as a sequence of FileSystemNameLength bytes."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R1697 FileSystemAttributes is : {0}", fileFsAttributeInformation.FileSystemAttributes ); // // Verify requirement 1697 // // Only get the FILE_VOLUME_IS_COMPRESSED bit in the FileSystemAttributes. uint bitBothSet = (uint)(FileSystemAttributes_Values.FILE_FILE_COMPRESSION | FileSystemAttributes_Values.FILE_VOLUME_IS_COMPRESSED); bool isVerifyR1697 = (((uint)fileFsAttributeInformation.FileSystemAttributes & bitBothSet) != bitBothSet); // Check FILE_VOLUME_IS_COMPRESSED bit and FILE_FILE_COMPRESSION bit are not set at the same time. Site.CaptureRequirementIfIsTrue( isVerifyR1697, 1697, @"[In FILE_FS_ATTRIBUTE_INFORMATION]FileSystemAttributes (4 bytes): This flag[FILE_VOLUME_IS_COMPRESSED 0x00008000] is incompatible with the FILE_FILE_COMPRESSION flag."); Site.DefaultProtocolDocShortName = Site.Properties["ProtocolShortName"]; }
/// <summary> /// A utility for test supported features in FileFsAttributeInformation /// </summary> /// <param name="fileType">An Open of a DataFile or DirectoryFile.</param> /// <param name="fileSystemAttribute">FileSystemAttribute to test.</param> /// <param name="isSupported">Is true, the FileSystemAttribute will be treated as supported.</param> private void FsInfo_Query_FileFsAttributeInformation_IsSupported(FileType fileType, FileSystemAttributes_Values fileSystemAttribute, bool isSupported) { BaseTestSite.Log.Add(LogEntryKind.TestStep, "Test case steps:"); MessageStatus status; //Step 1: Create file BaseTestSite.Log.Add(LogEntryKind.TestStep, "1. Create " + fileType.ToString()); status = this.fsaAdapter.CreateFile(fileType); //Step 2: Query FileFsAttributeInformation FileFsAttributeInformation fsAttributeInfo = new FileFsAttributeInformation(); BaseTestSite.Log.Add(LogEntryKind.TestStep, "2. Query FileFsAttributeInformation"); status = this.fsaAdapter.QueryFileFsAttributeInformation(out fsAttributeInfo); bool actualResult = (fsAttributeInfo.FileSystemAttributes & fileSystemAttribute) == fileSystemAttribute; //Step 3: verify test result BaseTestSite.Log.Add(LogEntryKind.TestStep, "3. Verify if FileSystemAttributes flag is correctly set."); string feature = fileSystemAttribute.ToString(); string attribute = string.Format("FileSystemAttributes.{0}", fileSystemAttribute.ToString()); if (isSupported) { string comment = string.Format("{0} is supported and {1} MUST be set.", feature, attribute); this.fsaAdapter.AssertAreEqual(this.Manager, true, actualResult, comment); } else { string comment = string.Format("{0} is NOT supported and {1} MUST NOT be set.", feature, attribute); this.fsaAdapter.AssertAreEqual(this.Manager, false, actualResult, comment); } }