Source code of Windows XP (NT5)
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.

221 lines
11 KiB

  1. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // BVTCIMv2.CPP
  4. //
  5. //
  6. // Copyright (c)2000 Microsoft Corporation, All Rights Reserved
  7. //
  8. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. #include <bvt.h>
  10. #define NO_ERRORS_EXPECTED FALSE,__FILE__,__LINE__
  11. #define ERRORS_CAN_BE_EXPECTED TRUE,__FILE__,__LINE__
  12. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  13. //*****************************************************************************************************************
  14. // Test 200
  15. //*****************************************************************************************************************
  16. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  17. int CIMV2_OpenNamespace()
  18. {
  19. //==========================================================================
  20. // Open CIMV2 namespace
  21. //==========================================================================
  22. int nRc = FATAL_ERROR;
  23. IWbemServices * pNamespace = NULL;
  24. CAutoDeleteString sNamespace;
  25. if( g_Options.GetOptionsForAPITest(sNamespace, APITEST200) )
  26. {
  27. // =====================================================================
  28. // Open the namespace
  29. // =====================================================================
  30. nRc = OpenNamespaceAndKeepOpen( &pNamespace, sNamespace.GetPtr(),FALSE);
  31. // =====================================================================
  32. // Release the pointers
  33. // =====================================================================
  34. SAFE_RELEASE_PTR(pNamespace);
  35. }
  36. return nRc;
  37. }
  38. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  39. //*****************************************************************************************************************
  40. // Test 201
  41. //*****************************************************************************************************************
  42. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  43. int CIMV2_EnumerateClasses()
  44. {
  45. int nRc = FATAL_ERROR;
  46. //==========================================================================
  47. // Get class enumerator for the namespace to get list of classes
  48. //==========================================================================
  49. CAutoDeleteString sNamespace;
  50. if( g_Options.GetOptionsForAPITest(sNamespace, APITEST200) )
  51. {
  52. IWbemServices * pNamespace = NULL;
  53. // =====================================================================
  54. // Open the namespace
  55. // =====================================================================
  56. nRc = OpenNamespaceAndKeepOpen( &pNamespace, sNamespace.GetPtr(),FALSE);
  57. if( SUCCESS == nRc )
  58. {
  59. // =============================================================
  60. // Get the list of classes to make sure they are in namespace
  61. // =============================================================
  62. CAutoDeleteString sClassesToCompare;
  63. if( g_Options.GetOptionsForAPITest( sClassesToCompare, APITEST201 ) )
  64. {
  65. // =========================================================
  66. // Make sure those classes are in the namespace
  67. // =========================================================
  68. nRc = EnumerateClassesAndCompare(sClassesToCompare, pNamespace, sNamespace.GetPtr());
  69. }
  70. }
  71. // =====================================================================
  72. // Release the pointers
  73. // =====================================================================
  74. SAFE_RELEASE_PTR(pNamespace);
  75. }
  76. return nRc;
  77. }
  78. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  79. //*****************************************************************************************************************
  80. // Test 202
  81. //*****************************************************************************************************************
  82. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  83. int CIMV2_EnumerateInstances()
  84. {
  85. int nRc = FATAL_ERROR;
  86. //==========================================================================
  87. // Get instance enumerator for classes Win32_logicalDisk, Win32_Process
  88. //==========================================================================
  89. IWbemServices * pNamespace = NULL;
  90. CAutoDeleteString sNamespace;
  91. if( g_Options.GetOptionsForAPITest(sNamespace, APITEST200) )
  92. {
  93. IWbemServices * pNamespace = NULL;
  94. // =====================================================================
  95. // Open the namespace
  96. // =====================================================================
  97. nRc = OpenNamespaceAndKeepOpen( &pNamespace, sNamespace.GetPtr(),FALSE);
  98. if( SUCCESS == nRc )
  99. {
  100. // =============================================================
  101. // Get the list of classes to get instances for
  102. // =============================================================
  103. CAutoDeleteString sInstanceList;
  104. CAutoDeleteString sInstanceCompareList;
  105. if( g_Options.GetOptionsForAPITest( sInstanceList, sInstanceCompareList, APITEST202 ) )
  106. {
  107. // =========================================================
  108. // Make sure those instances are in the namespace
  109. // =========================================================
  110. nRc = EnumerateInstancesAndCompare(pNamespace, sInstanceList, sInstanceCompareList, sNamespace.GetPtr());
  111. }
  112. }
  113. // =====================================================================
  114. // Release the pointers
  115. // =====================================================================
  116. SAFE_RELEASE_PTR(pNamespace);
  117. }
  118. return nRc;
  119. }
  120. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  121. //*****************************************************************************************************************
  122. // Test 203
  123. //*****************************************************************************************************************
  124. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  125. int CIMV2_GetObjects()
  126. {
  127. int nRc = FATAL_ERROR;
  128. //==========================================================================
  129. // Get classes/instances using path of the object
  130. //==========================================================================
  131. CAutoDeleteString sNamespace;
  132. if( g_Options.GetOptionsForAPITest(sNamespace, APITEST200) )
  133. {
  134. IWbemServices * pNamespace = NULL;
  135. // =====================================================================
  136. // Open the namespace
  137. // =====================================================================
  138. nRc = OpenNamespaceAndKeepOpen( &pNamespace, sNamespace.GetPtr(),FALSE);
  139. if( SUCCESS == nRc )
  140. {
  141. // =============================================================
  142. // Get the list of objexts to get
  143. // =============================================================
  144. CAutoDeleteString sObjects;
  145. if( g_Options.GetOptionsForAPITest( sObjects, APITEST203 ) )
  146. {
  147. // =========================================================
  148. // Get the requested objects
  149. // =========================================================
  150. nRc = GetSpecificObjects(sObjects, pNamespace, sNamespace.GetPtr());
  151. }
  152. }
  153. // =====================================================================
  154. // Release the pointers
  155. // =====================================================================
  156. SAFE_RELEASE_PTR(pNamespace);
  157. }
  158. return nRc;
  159. }
  160. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  161. //*****************************************************************************************************************
  162. // Test 204
  163. //*****************************************************************************************************************
  164. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  165. int CIMV2_ExecuteQueries()
  166. {
  167. int nRc = FATAL_ERROR;
  168. // Execute Association/Reference queries
  169. return nRc;
  170. }
  171. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  172. //*****************************************************************************************************************
  173. // Test 205
  174. //*****************************************************************************************************************
  175. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  176. int CIMV2_EnumerateClassAMethods()
  177. {
  178. int nRc = FATAL_ERROR;
  179. // Enumerate methods for a class/instance.
  180. return nRc;
  181. }
  182. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  183. //*****************************************************************************************************************
  184. // Test 206
  185. //*****************************************************************************************************************
  186. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  187. int CIMV2_EnumerateInstanceMethods()
  188. {
  189. int nRc = FATAL_ERROR;
  190. // Enumerate methods for a class/instance.
  191. return nRc;
  192. }
  193. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  194. //*****************************************************************************************************************
  195. // Test 207
  196. //*****************************************************************************************************************
  197. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  198. int CIMV2_ExecuteMethod()
  199. {
  200. int nRc = FATAL_ERROR;
  201. // Execute a method on one of the instance say Terminate method on Win32_process and check if the instance is removed.
  202. return nRc;
  203. }