Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

444 lines
33 KiB

  1. /*++
  2. Copyright (c) 2000-2001 Microsoft Corporation
  3. Module Name:
  4. TstINIConfigPriv.hxx
  5. Abstract:
  6. Contains the definitions of each section in the INI file, including default
  7. values. If a new key name is added to the INI file, this file must be
  8. modified.
  9. Author:
  10. Stefan R. Steiner [ssteiner] 05-16-2000
  11. Revision History:
  12. --*/
  13. #ifndef __H_TSTINICONFIGPRIV_
  14. #define __H_TSTINICONFIGPRIV_
  15. //
  16. // Boolean type. If m_bCanHaveRandom is False, then random is
  17. // not a valid value in the option's value field. If it is true,
  18. // the option can specify random which allows the components to
  19. // dynamically decide if the value should be true or false.
  20. //
  21. struct SVsTstINIBooleanDef
  22. {
  23. EVsTstINIBoolType m_eBoolDefault;
  24. BOOL m_bCanHaveRandom;
  25. };
  26. //
  27. // String definition. If there is a fixed set of strings
  28. // which are allowed by this option, then specify those strings
  29. // in the m_pwszPossibleValues field. Separate each string
  30. // with a '|' character. e.g. if the strings are: "Here", "There"
  31. // and "Anywhere", then the string must be defined as:
  32. // L"Here|There|Anywhere". The m_pwszDefaultString must be one
  33. // of the strings in the possible values set in this case unless it is
  34. // L"". If the option value can be any string, specify NULL in m_pwszPossibleValues.
  35. //
  36. struct SVsTstINIStringDef
  37. {
  38. LPWSTR m_pwszDefaultString; // Can be L""
  39. LPWSTR m_pwszPossibleValues;
  40. };
  41. //
  42. // Number definition. If this value can't have a range, then
  43. // m_ullDefaultMinNumber specifies the default value and
  44. // m_ullDefaultMaxNumber is not used.
  45. //
  46. struct SVsTstININumberDef
  47. {
  48. LONGLONG m_llDefaultMinNumber;
  49. LONGLONG m_llDefaultMaxNumber;
  50. BOOL m_bCanHaveRange;
  51. LONGLONG m_llMinNumber;
  52. LONGLONG m_llMaxNumber;
  53. };
  54. struct SVsTstINISectionDef
  55. {
  56. LPWSTR m_pwszKeyName;
  57. EVsTstINIOptionType m_eOptionType;
  58. //
  59. // If type Boolean, this field is important
  60. //
  61. SVsTstINIBooleanDef m_sBooleanDef;
  62. //
  63. // If type String, this field is important
  64. //
  65. SVsTstINIStringDef m_sStringDef;
  66. //
  67. // If type Number, this field is important
  68. //
  69. SVsTstININumberDef m_sNumberDef;
  70. LPWSTR m_pwszDescription;
  71. };
  72. //
  73. // Since C++ initializers can't properly initialize unions, the SVsTstINISectionDef
  74. // explicitly defines each structure. The following defines help keep the
  75. // section definition arrays "easy to read."
  76. //
  77. #define VS_NOBOOL { eVsTstBool_False, FALSE }
  78. #define VS_NOSTR { NULL, NULL }
  79. #define VS_NONUM { 0, 0, FALSE, 0, 0 }
  80. #define VS_COMMENT L"",eVsTstOptType_Comment,VS_NOBOOL,VS_NOSTR,VS_NONUM
  81. #define VS_END_OF_SECTION {NULL,eVsTstOptType_Unknown,VS_NOBOOL,VS_NOSTR,VS_NONUM,NULL}
  82. SVsTstINISectionDef sVsTstINISectionDefController[] =
  83. {
  84. { VS_COMMENT, L"Controls the test controller" },
  85. { VS_COMMENT, NULL },
  86. { L"RandomSeed", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { -1, 0, FALSE, -1, 0xFFFFFFFF },
  87. L"Controls the reproducibility of the test, if -1, the value is random." },
  88. { L"MaxTestTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { ( 60 * 60 ), 0, FALSE, 1, 0xFFFFFFFF },
  89. L"Maximum test time in seconds. Test terminates with failure if this time is exceeded." },
  90. { VS_COMMENT, L"The next set of variables control the activities of the coordinator:" },
  91. { VS_COMMENT, NULL },
  92. { L"CoordinatorStart", eVsTstOptType_String, VS_NOBOOL, { L"No", L"No|Start|Stop|Restart" }, VS_NONUM,
  93. L"Controls the state of the coordinator at the start of the test. No means nothing is done to start or stop "
  94. L"the coordinator a the beginning of the test; start means the snapshot service is started at the beginning "
  95. L"of the test; stop means that the snapshot service is stopped at the beginning of the test; restart means "
  96. L"the service is first stopped and then started." },
  97. { L"CoordinatorStop", eVsTstOptType_String, VS_NOBOOL, { L"No", L"No|EndOfTest|Gracefully|Abnormally" }, VS_NONUM,
  98. L"Controls when the coordinator is stopped. No means the coordinator is not sopped; EndOfTest means the snapshot "
  99. L"service is stopped at the end of the test; Gracefully mean the snapshot service is stopped sometime in the middle "
  100. L"of the test; Abnormally means the snapshot service is killed (equivalent of kill -f) at some point during the "
  101. L"test. Both Gracefully and Abnormally require a value for CoordinatorStopTime be set." },
  102. { L"DeleteExistingSnapshots", eVsTstOptType_Boolean, { eVsTstBool_True, FALSE }, VS_NOSTR, VS_NONUM,
  103. L"Delete all snapshots that exist at the time the test is started"},
  104. { L"CoordinatorStopTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 10, 30, TRUE, 0, 0xFFFFFFFF },
  105. L"Range in seconds for the time between the start of the test or after the coordinator was last stopped, "
  106. L"that the coordinator should be terminated." },
  107. { L"DisableLovelace", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  108. L"Causes a special version of the coordinator to be run which does not invoke Lovelace. This can be used "
  109. L"in conjunction with a special test provider to allow tests to be run without involving physical volumes." },
  110. { L"FailLovelace", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  111. L"Cause a special version of the coordinator to run which simulates various failures when invoking Lovelace "
  112. L"such as running out of disk space." },
  113. { VS_COMMENT, L"The next set of variables involves test controller creation of processes for writers, providers, "
  114. L"and backup applications:" },
  115. { VS_COMMENT, NULL },
  116. { L"ProcessesToStart", eVsTstOptType_String, VS_NOBOOL, { L"VssTestWriter.DEFAULT, VssTestRequestor.DEFAULT", NULL }, VS_NONUM,
  117. L"A comma delimited list of all the processes that the controller will start. The processes are identified in the "
  118. L"form of VssTestWriter.NAME, VssTestRequestor.NAME, and VssTestProvider.NAME. The names must be defined as a "
  119. L"section in this scenario INI file." },
  120. VS_END_OF_SECTION
  121. };
  122. SVsTstINISectionDef sVsTstINISectionDefWriter[] =
  123. {
  124. { VS_COMMENT, L"Controls the test writer executable. The first set of options control the writer process(es):" },
  125. { VS_COMMENT, NULL },
  126. { L"UserAccount", eVsTstOptType_String, VS_NOBOOL, { L"Administrator", L"Administrator|BackupOperator|PowerUser|User|Guest" }, VS_NONUM,
  127. L"Controls which account is used to run this particular executable. Note that individual test executables will enable/disable "
  128. L"backup privileges based on their scenario inputs." },
  129. { L"NumberOfProcesses", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 1, 0, FALSE, 1, 0xFF },
  130. L"Number of writer processes of this type to be used." },
  131. { L"ProcessStart", eVsTstOptType_String, VS_NOBOOL, { L"BeginningOfTest", L"BeginningOfTest|Randomly" }, VS_NONUM,
  132. L"When to start each process of this type. Randomly requires that ProcessStartTime be specified." },
  133. { L"ProcessStartTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 10, TRUE, 0, 0xFFFFFF },
  134. L"Range in seconds used for determine when to start the next process of this type. Only used if Randomly is specified "
  135. L"for ProcessStart." },
  136. { L"ProcessStop", eVsTstOptType_String, VS_NOBOOL, { L"Self", L"Self|EndOfTest|Gracefully|Abnormally" }, VS_NONUM,
  137. L"When the process is stopped. Self means that the process should terminate itself gracefully before the end of the "
  138. L"test; EndOfTest means that the process should be killed at the end of the test; Gracefully means that the process "
  139. L"should be notified to terminate itself gracefully; Abnormally means that the process will be terminated by the "
  140. L"controller using the equivalent of (kill -f). Both Gracefully and Abnormally require that ProcessStopTime be "
  141. L"specified." },
  142. { L"ProcessStopTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 30, 120, TRUE, 0, 0xFFFFFF },
  143. L"Range in seconds for the lifetime of the process." },
  144. { L"ProcessRestart", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  145. L"Specifies whether the process should be restarted after it is stopped. The interval between the process stop and process "
  146. L"restart is controlled by the ProcessStart and ProcessStartTime." },
  147. { L"ProcessExecutable", eVsTstOptType_String, VS_NOBOOL, { L"VssTestWriter.exe", NULL }, VS_NONUM,
  148. L"The path name to the executable to be run. The path name may include environment variables." },
  149. { L"ProcessCommandLine", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  150. L"Command-line parameters that are provided to the executable. Note that additional command-line parameters will "
  151. L"be supplied to conforming test executables." },
  152. { L"ConformingExecutable", eVsTstOptType_Boolean, { eVsTstBool_True, FALSE }, VS_NOSTR, VS_NONUM,
  153. L"Specifies whether the executable is implemented according to the guidelines of a conforming test executable." },
  154. { VS_COMMENT, L"Metadata subsection. Controls how the writer identifies itself and how the WRITER_METADATA document"
  155. L"is produced. The following options effect the call to the CVssWriter::Initialize method:" },
  156. { VS_COMMENT, NULL },
  157. { L"WriterType", eVsTstOptType_String, VS_NOBOOL, { L"BootableSystemState", L"BootableSystemState|SystemService|UserData" }, VS_NONUM,
  158. L"Identifies the type of data supplied by the writer." },
  159. { L"WriterClassId", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  160. L"If specified, then this GUID is used for all instances of this writer. If not specified, then a unique class id is used for "
  161. L"each instance of this writer.." },
  162. { L"WriterName", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  163. L"If specified this is the friendly name used for all instances of this writer. If not specified, then a unique name is "
  164. L"generated for each instance of this writer." },
  165. { L"WriterDataSourceType", eVsTstOptType_String, VS_NOBOOL, { L"TransactedDB", L"TransactedDB|NonTransactedDB|Other|Random" }, VS_NONUM,
  166. L"Specifies the data source type of the applications/service this writer is written for." },
  167. { L"WriterFreezeLevel", eVsTstOptType_String, VS_NOBOOL, { L"BackEnd", L"Applicaton|BackEnd|System|Random" }, VS_NONUM,
  168. L"Specifies when the writer performs its freeze." },
  169. { L"WriterFreezeTimeout", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  170. L"Range in seconds for the lifetime of the process." },
  171. { VS_COMMENT, L"Metadata subsection #2. Effect the construction of the metadata document in the overridden "
  172. L"CVssWriter::OnIdentify method:" },
  173. { VS_COMMENT, NULL },
  174. { L"NumberofIncludeFiles", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  175. L"Number of include file specifications in the metadata." },
  176. { L"IncludeFilesAlternatePath", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  177. L"Specifies whether to include an alternate path in a include file specification." },
  178. { L"IncludeFilesRecursive", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  179. L"Specifies whether include file specifications should be recursive vs. shallow." },
  180. { L"NumberOfExcludeFiles", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  181. L"Number of exclude file specifications in the metadata." },
  182. { L"ExcludeFilesRecursive", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  183. L"Specifies whether exclude file specifications should be recursive or shallow." },
  184. { L"NumberofDatabaseComponents", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  185. L"Number of database components in the metadata." },
  186. { L"NumberOfFileGroupComponents", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  187. L"Number of file group components in the metadata." },
  188. { L"ComponentCaption", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  189. L"Whether to include a caption with each component." },
  190. { L"ComponentIcon", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  191. L"Whether to include an icon with each component." },
  192. { L"NumberOfLogicalPathNames", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  193. L"Number of names in the logical path for a component." },
  194. { L"NumberOfDatabaseFiles", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  195. L"Number of database files to include with a database component." },
  196. { L"NumberOfDatabaseLogFiles", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  197. L"Number of database log files to include with a database component." },
  198. { L"NumberOfFileGroupFiles", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  199. L"Number of files to include with a file group component." },
  200. { L"AlternatePathForFileGroupFiles", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  201. L"whether to include an alternate path for the." },
  202. { L"FilesGroupFilesRecursive", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  203. L"Whether file group file specification includes the recursive option." },
  204. { L"RestoreMethod", eVsTstOptType_String, VS_NOBOOL, { L"ReplaceAtReboot", L"RestoreIfNotThere|RestoreIfCanReplace|StopRestartService|RestoreToAlternateLocation|ReplaceAtReboot|Custom" }, VS_NONUM,
  205. L"" },
  206. { L"UserProcedureSupplied", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  207. L"Whether a user procedure is supplied in the restore method." },
  208. { L"WriterRestoreInvoked", eVsTstOptType_String, VS_NOBOOL, { L"Always", L"Always|Never|IfRestoredToAlternateLocation|Random" }, VS_NONUM,
  209. L"Value of writer restore invocation." },
  210. { L"RebootRequiredAtRestore", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  211. L"Whether reboot is required after restore is complete." },
  212. { L"AlternateMappingCount", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 2, 4, TRUE, 0, 0xFFFFFF },
  213. L"Number of alternate mappings created for the restore.." },
  214. { L"AlternateMappingsRecursive", eVsTstOptType_Boolean, { eVsTstBool_True, TRUE }, VS_NOSTR, VS_NONUM,
  215. L"WWhether alternate mappings are recursive or not." },
  216. { VS_COMMENT, L"Test writer behaviors. If EnableTestFailures is TRUE, then the generic writer will behave correctly, i.e. will not "
  217. L"fail any events and will not produce any erroneous documents. The behaviors are designed to "
  218. L"either simulate failures or perform specific tests." },
  219. { VS_COMMENT, NULL },
  220. { L"EnableWriterTestFailures", eVsTstOptType_Boolean, { eVsTstBool_False, TRUE }, VS_NOSTR, VS_NONUM,
  221. L"Enables the writer behavior errors as specified by the options following this option." },
  222. { L"FailAtState", eVsTstOptType_String, VS_NOBOOL, { L"", L"OnIdentify|OnPrepareBackup|OnPrepareSnapshot|OnFreeze|OnThaw|OnBackupComplete|OnRestore|OnAbort|All" }, VS_NONUM,
  223. L"Fail at a on of a particular set of states occasionally (see FailureRate)." },
  224. { L"FailureRate", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  225. L"How often to generate a failure." },
  226. { L"HangAtState", eVsTstOptType_String, VS_NOBOOL, { L"", L"OnIdentify|OnPrepareBackup|OnPrepareSnapshot|OnFreeze|OnThaw|OnBackupComplete|OnRestore|OnAbort|All" }, VS_NONUM,
  227. L"Hang for a certain amount of time in a particular state occasionally (see HangTime and HangRate)." },
  228. { L"HangTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  229. L"Time to hang in milliseconds." },
  230. { L"HangRate", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  231. L"How often to hang in a state." },
  232. { L"GenerateBadWriterMetadataRate", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  233. L"How often during an OnIdentify method bogus writer metadata is generated. Bogus metadata is generated by modifying "
  234. L"the document obtained by calling IvssCreateWriterMetadata::GetDocument and then modifying the XML document to not "
  235. L"conform to the schema for writer metadata." },
  236. { L"ModifyComponentsDocument", eVsTstOptType_String, VS_NOBOOL, { L"No", L"No|Binary|XML|Random" }, VS_NONUM,
  237. L"Whether to modify the BACKUP_COMPONENTS document in the OnBackupPrepare state. Binary indicates that binary metadata "
  238. L"is added; XML indicates that an XML subtree is added." },
  239. { L"InvalidModifyComponents Document", eVsTstOptType_String, VS_NOBOOL, { L"", L"OnBackupComplete|OnRestore|Random" }, VS_NONUM,
  240. L"Erroneously attempt to modify the BACKUP_COMPONENTS document in either the OnBackupComplete or OnRestore state." },
  241. { L"InvalidModifyComponentsDocument Rate", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  242. L"How often to perform an invalid modification." },
  243. { L"TerminationAfterNSnapshots", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  244. L"Terminate writer gracefully after some number of snapshot cycles have occurred." },
  245. { L"TerminateAfterTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  246. L"Terminate writer gracefully after some amount of time has passed." },
  247. { VS_COMMENT, L"Additional test writer logging options:" },
  248. { VS_COMMENT, NULL },
  249. { L"DumpWriterMetadataDocument", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  250. L"write out the writer metadata XML document that is produced in the OnIdentify Method." },
  251. { L"DumpComponentsDocument", eVsTstOptType_String, VS_NOBOOL, { L"", L"OnPrepareBackupBefore|OnPrepareBackupAfter|OnBackupComplete|OnRestore" }, VS_NONUM,
  252. L"In the specified states dump out the BACKUP_COMPONENTS document. OnPrepareBackupBefore refers to the document prior to "
  253. L"modifying the document in the OnPrepareBackup state; OnPrepareBackupAfter refers to the document after modifying it in "
  254. L"the OnPrepareBackup state." },
  255. VS_END_OF_SECTION
  256. };
  257. SVsTstINISectionDef sVsTstINISectionDefProvider[] =
  258. {
  259. VS_END_OF_SECTION
  260. };
  261. SVsTstINISectionDef sVsTstINISectionDefRequester[] =
  262. {
  263. { VS_COMMENT, L"Controls the test requester (Backup) executable. The first set of options control the requester process:" },
  264. { VS_COMMENT, NULL },
  265. { L"UserAccount", eVsTstOptType_String, VS_NOBOOL, { L"Administrator", L"Administrator|BackupOperator|PowerUser|User|Guest" }, VS_NONUM,
  266. L"Controls which account is used to run this particular executable. Note that individual test executables will enable/disable "
  267. L"backup privileges based on their scenario inputs." },
  268. { L"ProcessStart", eVsTstOptType_String, VS_NOBOOL, { L"BeginningOfTest", L"BeginningOfTest|Randomly" }, VS_NONUM,
  269. L"When to start the process. Randomly requires that ProcessStartTime be specified." },
  270. { L"ProcessStartTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 10, TRUE, 0, 0xFFFFFF },
  271. L"Range in seconds used for determine when to start the process. Only used if Randomly is specified "
  272. L"for ProcessStart." },
  273. { L"ProcessStop", eVsTstOptType_String, VS_NOBOOL, { L"Self", L"Self|EndOfTest|Gracefully|Abnormally" }, VS_NONUM,
  274. L"When the process is stopped. Self means that the process should terminate itself gracefully before the end of the "
  275. L"test; EndOfTest means that the process should be killed at the end of the test; Gracefully means that the process "
  276. L"should be notified to terminate itself gracefully; Abnormally means that the process will be terminated by the "
  277. L"controller using the equivalent of (kill -f). Both Gracefully and Abnormally require that ProcessStopTime be "
  278. L"specified." },
  279. { L"ProcessStopTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 30, 120, TRUE, 0, 0xFFFFFF },
  280. L"Range in seconds for the lifetime of the process." },
  281. { L"ProcessRestart", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  282. L"Specifies whether the process should be restarted after it is stopped. The interval between the process stop and process "
  283. L"restart is controlled by the ProcessStart and ProcessStartTime." },
  284. { L"ProcessExecutable", eVsTstOptType_String, VS_NOBOOL, { L"VssTestBackup.exe", NULL }, VS_NONUM,
  285. L"The path name to the executable to be run. The path name may include environment variables." },
  286. { L"ProcessCommandLine", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  287. L"Command-line parameters that are provided to the executable. Note that additional command-line parameters will "
  288. L"be supplied to conforming test executables." },
  289. { L"ConformingExecutable", eVsTstOptType_Boolean, { eVsTstBool_True, FALSE }, VS_NOSTR, VS_NONUM,
  290. L"Specifies whether the executable is implemented according to the guidelines of a conforming test executable." },
  291. { VS_COMMENT, L"Requester metadata subsection. The backup application simulates actions performed by NtBackup or some other backup "
  292. L"application. This subsection of the scenario describes the content of the BACKUP_COMPONENTS document produced by "
  293. L"the backup application:" },
  294. { VS_COMMENT, NULL },
  295. { L"TypeOf Backup", eVsTstOptType_String, VS_NOBOOL, { L"Full", L"Full|Incremental|Differential|Other|Random" }, VS_NONUM,
  296. L"Description of the type of backup being performed." },
  297. { L"BootableSystemStateBackup", eVsTstOptType_Boolean, { eVsTstBool_True, FALSE }, VS_NOSTR, VS_NONUM,
  298. L"Whether the backup includes bootable system state." },
  299. { L"BackingUp", eVsTstOptType_String, VS_NOBOOL, { L"Volumes", L"Volumes|Components|Serial|Random" }, VS_NONUM,
  300. L"Whether the backup is being performed on volumes or on specific components."
  301. L"Serial means that multiple backups are done serially on volumes so"
  302. L"multiple snapshot sets are active at a time."},
  303. { L"VolumeList", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  304. L"Set of volume names that can be used for the backup. If not specified then only volumes physically on the system are used." },
  305. { L"ExcludeVolumes", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  306. L"Set of volume names that are excluded from the backup. If not specified then only volumes physically on the system are used." },
  307. { L"VolumeBackup", eVsTstOptType_String, VS_NOBOOL, { L"All", L"All|Some|One" }, VS_NONUM,
  308. L"All means all the volumes on the system or all the volumes in the VolumeList; VolumeSelection means the set of volumes "
  309. L"specified in the VolumeSelection variable; Some means 1 or more volumes from the set of volumes on the system or "
  310. L"the volume list; One means exactly one volume chosen from the set of volumes on the system or in the volume list." },
  311. { L"FileSystemBackup", eVsTstOptType_String, VS_NOBOOL, { L"All", L"All|NTFS|FAT32|FAT16|RAW|NTFS,FAT32|NTFS,FAT32,FAT16|FAT32,FAT16" }, VS_NONUM,
  312. L"Selects which volumes are snapshoted based on file systems on them."
  313. },
  314. { L"FillVolumes", eVsTstOptType_String, VS_NOBOOL, { L"None", L"None|Random|Selected|Random,Fragment|Selected,Fragment" }, VS_NONUM,
  315. L"Selected means that the volumes from the FillVolumeSelection are filled"
  316. L"Random means a random selection of volumes are filled"
  317. L"Fragment means that the filled volumes are fragemented" },
  318. { L"FillVolumesList", eVsTstOptType_String, VS_NOBOOL, { L"", NULL }, VS_NONUM,
  319. L"Which volumes to fill" },
  320. { L"ComponentBackup", eVsTstOptType_String, VS_NOBOOL, { L"All", L"All|AllDatabase|AllFileGroup|SomeDatabase|SomeFileGroup|Some|One" }, VS_NONUM,
  321. L"Which components to backup: All means that all components specified in the WRITER_METADATA for all writers are included in the backup; "
  322. L"AllDatabase means that all database components for all writers are included; AllFileGroup means that all file groups from all writers "
  323. L"are included; SomeDatabase means a random selection of database components are included; SomeFileGroup means a random selection of "
  324. L"file groups are included; Some means a random selection of components are included; One means that exactly one component is included." },
  325. { VS_COMMENT, L"Test requester behaviors. If EnableTestFailures is TRUE, then the requester will behave correctly, i.e. will not "
  326. L"will not fail any events. The behaviors are designed to "
  327. L"either simulate failures or perform specific tests." },
  328. { VS_COMMENT, NULL },
  329. { L"EnableTestRequesterFailures", eVsTstOptType_Boolean, { eVsTstBool_False, TRUE }, VS_NOSTR, VS_NONUM,
  330. L"Enables the requester behavior errors as specified by the options following this option." },
  331. { L"MetadataGathering", eVsTstOptType_String, VS_NOBOOL, { L"", L"GatherOnce|GatherMultipleTimes|Skip" }, VS_NONUM,
  332. L"Determines when IVssBackupComponents::GatherWriterMetadata is called. Note that it is invalid to not call GatherWriterMetadata "
  333. L"prior to calling PrepareBackup. It is valid to call GatherWriterMetadata multiple times during the sequence." },
  334. { L"InvalidSkipGatherWriterMetadata", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  335. L"How often to invalidly skip calling GatherWriterMetadata." },
  336. { L"InvalidFreeWriterMetadata", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  337. L"How often to invalidly call FreeWriterMetadata without calling GatherWriterMetadata." },
  338. { L"InvalidSkipCreateSnapshotSet", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  339. L"How often to skip calling Create Snapshot or call it out of sequence." },
  340. { L"InvalidAddToSnapshotSet", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  341. L"How often to call AddToSnapshotSet either before calling CreateSnapshot, after PrepareBackup, or with multiple times with the same volume." },
  342. { L"InvalidPrepareBackup", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  343. L"How often to call PrepareBackup out of sequence (before AddToSnapshotSet or after DoSnapshotSet) or is skipped." },
  344. { L"WaitInterval", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, FALSE, 0, 0xFFFFFF },
  345. L"Time interval between queries in Async call." },
  346. { L"CancelPrepareBackup", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  347. L"Time interval during which cancel is called if Prepare Backup is not complete." },
  348. { L"InvalidDoSnapshotSet", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  349. L"How often to call DoSnapshotSet out of sequence or skip calling it." },
  350. { L"CancelDoSnapshotSet", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  351. L"Time interval during which cancel is called if DoSnapshotSet is not complete." },
  352. { L"MarkComponentsAsSuccessfullyBackedUp", eVsTstOptType_String, VS_NOBOOL, { L"", L"None|Some|All" }, VS_NONUM,
  353. L"How many components are marked as successfully backed up." },
  354. { L"InvalidBackupComplete", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  355. L"How often BackupComplete is called out of sequence." },
  356. { L"SkipBackupComplete", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  357. L"How often Backup Complete is skipped. Note that this is not an error condition, just simulates a failed or abruptly terminated backup application." },
  358. { L"InvalidDeleteSnapshotSet", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  359. L"Call delete snapshot set out of sequence." },
  360. { L"CancelBackupComplete", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  361. L"Time interval during which cancel is called if BackupComplete has not finished." },
  362. { L"InvalidAddAlternateLocationMapping", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  363. L"How often AddAlternateLocationMapping is called during a backup. This is not only valid for restore." },
  364. { L"InvalidRestore", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  365. L"How often Restore is called during a backup. This is only valid during a restore." },
  366. { L"SimulateRestore", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  367. L"How often is Restore simulated using the data that was just successfully backed up." },
  368. { L"InvalidInvocationDuringRestore", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  369. L"How often an invalid operation (CreateSnapshotSet, BackupComplete, PrepareBackup, AddVolumeToSnapshotSet, various methods to construct "
  370. L"BackupComponents document.) is called during a backup." },
  371. { L"AddAlternateLocationMappingsDuringRestore", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  372. L"add alternate location mappings for some components during restore." },
  373. { L"CancelRestore", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  374. L"Time interval during which cancel is called if restore is not finished." },
  375. { L"TerminateAfterNBackups", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  376. L"Terminate Backup application after N backups are performed." },
  377. { L"TerminateAfterTime", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  378. L"Terminate Backup application after some number of seconds have elapsed." },
  379. { VS_COMMENT, L"The set of behaviors outlined below are designed to test interaction between backup and the bootable system "
  380. L"state writer (wrtrshim). This includes the functions SimulateSnaphshotFreeze and SimulateSnapshotThaw functions used "
  381. L"to obtain system state and system service data to be backed up in the case the snapshot fails." },
  382. { VS_COMMENT, NULL },
  383. { L"RegisterWrtrshim", eVsTstOptType_String, VS_NOBOOL, { L"", L"No|Correctly|Incorrectly" }, VS_NONUM,
  384. L"Controls whether the bootable system state writer is registered or not. Incorrectly implies that the shim is unregistered "
  385. L"without being registered or registered multiple times." },
  386. { L"RegisterWrtrshimFailure Rate", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  387. L"controls how often an improper registration is generated." },
  388. { L"SimulateSnapshotFreeze", eVsTstOptType_String, VS_NOBOOL, { L"", L"No|Correctly|Incorrectly" }, VS_NONUM,
  389. L"Controls whether the bootable system state writer is called to simulate a freeze and thaw in order to generate bootable "
  390. L"state backup data. Incorrectly implies various failures like calling SimulateSnapshotThaw without calling "
  391. L"SimulateSnapshotFreeze; calling SimulateSnapshotFreeze multiple times, etc." },
  392. { L"SimulateSnapshotFreezeFailureRate", eVsTstOptType_Number, VS_NOBOOL, VS_NOSTR, { 0, 0, TRUE, 0, 0xFFFFFF },
  393. L"Controls how often improper use of the SimulateSnapshotFreeze and SimulateSnapshotThaw APIs occur." },
  394. { L"ValidateWrtrshim", eVsTstOptType_Boolean, { eVsTstBool_False, FALSE }, VS_NOSTR, VS_NONUM,
  395. L"Validate the data produced by the wrtrshim after a snapshot is created correctly or SimulateSnapshotFreeze succeeds. "
  396. L"A log record is sent to the Test Controller to indicate the result of this validation test." },
  397. { VS_COMMENT, L"Additional test requester logging options:" },
  398. { VS_COMMENT, NULL },
  399. { L"WriterStatus", eVsTstOptType_String, VS_NOBOOL, { L"", L"GatherWriterMetadata|PrepareBackup|DoSnapshotSet|BackupCompete|Restore|All" }, VS_NONUM,
  400. L"Log the status of the writers after the specified method(s) are called." },
  401. { L"WriterMetadata", eVsTstOptType_String, VS_NOBOOL, { L"", L"None|First|All" }, VS_NONUM,
  402. L"Create a temporary file with the writer metadata for all the writers after the first GatherWriterMetadata in a backup "
  403. L"sequence or after all GatherWriterMetadata calls. The name of the temporary file is logged to the snapshot controller." },
  404. { L"ComponentsDocument", eVsTstOptType_String, VS_NOBOOL, { L"", L"BeforePrepareBackup|AfterPrepareBackup|BeforeBackupComplete|BeforeRestore" }, VS_NONUM,
  405. L"Create a temporary file with the BackupComponents document at the particular state. The name of the temporary file is "
  406. L"logged to the snapshot controller." },
  407. { L"QueryCoordinator", eVsTstOptType_String, VS_NOBOOL, { L"", L"Providers|Snapshots|SnapshotSets|SnapshotSetVolumes|SnapshotSetsByProvider|SnapshotSetsByVolume" }, VS_NONUM,
  408. L"Create a temporary file with the result of various queries against the coordinator. The name of the temporary file is logged "
  409. L"to the snapshot controller." },
  410. VS_END_OF_SECTION
  411. };
  412. #endif // __H_TSTINICONFIGPRIV_