rj_schema 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +4 -0
  3. data/ext/rj_schema/rapidjson/thirdparty/gtest/CMakeLists.txt +16 -0
  4. data/ext/rj_schema/rapidjson/thirdparty/gtest/README.md +141 -0
  5. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CHANGES +126 -0
  6. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +202 -0
  7. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +40 -0
  8. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/LICENSE +28 -0
  9. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/Makefile.am +224 -0
  10. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/README.md +333 -0
  11. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/configure.ac +146 -0
  12. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +562 -0
  13. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +3675 -0
  14. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +280 -0
  15. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DevGuide.md +132 -0
  16. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +12 -0
  17. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +439 -0
  18. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +628 -0
  19. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +19 -0
  20. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CheatSheet.md +525 -0
  21. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CookBook.md +3250 -0
  22. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/Documentation.md +11 -0
  23. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/ForDummies.md +439 -0
  24. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +624 -0
  25. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CheatSheet.md +534 -0
  26. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CookBook.md +3342 -0
  27. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/Documentation.md +12 -0
  28. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/ForDummies.md +439 -0
  29. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +628 -0
  30. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CheatSheet.md +556 -0
  31. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CookBook.md +3432 -0
  32. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/Documentation.md +12 -0
  33. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/ForDummies.md +439 -0
  34. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +628 -0
  35. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +1205 -0
  36. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +147 -0
  37. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +2377 -0
  38. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +794 -0
  39. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +1095 -0
  40. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +291 -0
  41. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +2179 -0
  42. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +672 -0
  43. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +397 -0
  44. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +161 -0
  45. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +4399 -0
  46. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +246 -0
  47. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +58 -0
  48. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +1847 -0
  49. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +94 -0
  50. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +8 -0
  51. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +10 -0
  52. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +39 -0
  53. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +46 -0
  54. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +279 -0
  55. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +136 -0
  56. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +511 -0
  57. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +91 -0
  58. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/make/Makefile +101 -0
  59. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +32 -0
  60. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +191 -0
  61. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +15 -0
  62. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +187 -0
  63. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +201 -0
  64. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +32 -0
  65. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +82 -0
  66. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +19 -0
  67. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +88 -0
  68. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +101 -0
  69. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +32 -0
  70. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +84 -0
  71. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +19 -0
  72. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +90 -0
  73. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +103 -0
  74. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +240 -0
  75. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +203 -0
  76. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +35 -0
  77. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +115 -0
  78. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  79. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +1733 -0
  80. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +227 -0
  81. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +448 -0
  82. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +59 -0
  83. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +287 -0
  84. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +41 -0
  85. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +31 -0
  86. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +303 -0
  87. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +640 -0
  88. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +1387 -0
  89. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +78 -0
  90. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +47 -0
  91. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +156 -0
  92. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +174 -0
  93. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +498 -0
  94. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +823 -0
  95. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +183 -0
  96. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +54 -0
  97. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +1411 -0
  98. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +428 -0
  99. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +1228 -0
  100. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +622 -0
  101. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +127 -0
  102. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +1286 -0
  103. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +699 -0
  104. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +5648 -0
  105. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +708 -0
  106. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +424 -0
  107. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +43 -0
  108. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +2644 -0
  109. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +51 -0
  110. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +81 -0
  111. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +108 -0
  112. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +100 -0
  113. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +40 -0
  114. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +40 -0
  115. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +669 -0
  116. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +180 -0
  117. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +291 -0
  118. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +310 -0
  119. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +322 -0
  120. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +220 -0
  121. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +112 -0
  122. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CHANGES +157 -0
  123. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +286 -0
  124. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +37 -0
  125. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/LICENSE +28 -0
  126. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/Makefile.am +310 -0
  127. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/README.md +280 -0
  128. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +242 -0
  129. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +138 -0
  130. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +54 -0
  131. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +38 -0
  132. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +40 -0
  133. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +82 -0
  134. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +88 -0
  135. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/configure.ac +68 -0
  136. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/AdvancedGuide.md +2182 -0
  137. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/DevGuide.md +126 -0
  138. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Documentation.md +14 -0
  139. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/FAQ.md +1087 -0
  140. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Primer.md +502 -0
  141. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +177 -0
  142. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Samples.md +14 -0
  143. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_AdvancedGuide.md +2096 -0
  144. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Documentation.md +12 -0
  145. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_FAQ.md +886 -0
  146. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Primer.md +497 -0
  147. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_PumpManual.md +177 -0
  148. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_XcodeGuide.md +93 -0
  149. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_AdvancedGuide.md +2178 -0
  150. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Documentation.md +14 -0
  151. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_FAQ.md +1038 -0
  152. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Primer.md +501 -0
  153. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_PumpManual.md +177 -0
  154. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Samples.md +14 -0
  155. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_XcodeGuide.md +93 -0
  156. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_AdvancedGuide.md +2181 -0
  157. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Documentation.md +14 -0
  158. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_FAQ.md +1082 -0
  159. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Primer.md +501 -0
  160. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_PumpManual.md +177 -0
  161. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Samples.md +14 -0
  162. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_XcodeGuide.md +93 -0
  163. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +93 -0
  164. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +294 -0
  165. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +250 -0
  166. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +1444 -0
  167. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +510 -0
  168. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +993 -0
  169. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +232 -0
  170. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +179 -0
  171. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +263 -0
  172. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +2236 -0
  173. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +358 -0
  174. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +58 -0
  175. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
  176. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  177. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +41 -0
  178. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
  179. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +206 -0
  180. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +1238 -0
  181. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  182. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
  183. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
  184. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +731 -0
  185. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
  186. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +2554 -0
  187. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +167 -0
  188. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  189. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  190. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
  191. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
  192. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +363 -0
  193. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +74 -0
  194. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/make/Makefile +82 -0
  195. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.sln +45 -0
  196. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.vcproj +126 -0
  197. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.sln +45 -0
  198. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.vcproj +126 -0
  199. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main-md.vcproj +129 -0
  200. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main.vcproj +129 -0
  201. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test-md.vcproj +164 -0
  202. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test.vcproj +164 -0
  203. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest-md.vcproj +147 -0
  204. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest.vcproj +147 -0
  205. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +123 -0
  206. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +68 -0
  207. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +43 -0
  208. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +144 -0
  209. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +153 -0
  210. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +56 -0
  211. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +85 -0
  212. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +109 -0
  213. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +172 -0
  214. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +151 -0
  215. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +46 -0
  216. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +53 -0
  217. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +45 -0
  218. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +199 -0
  219. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +224 -0
  220. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +130 -0
  221. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +173 -0
  222. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +160 -0
  223. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/common.py +83 -0
  224. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +253 -0
  225. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +730 -0
  226. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +274 -0
  227. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +855 -0
  228. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +158 -0
  229. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/test/Makefile +59 -0
  230. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +1387 -0
  231. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +78 -0
  232. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +48 -0
  233. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +1342 -0
  234. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +387 -0
  235. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +1183 -0
  236. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +1259 -0
  237. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +373 -0
  238. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +110 -0
  239. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +118 -0
  240. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +5388 -0
  241. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +38 -0
  242. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +93 -0
  243. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +1427 -0
  244. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +662 -0
  245. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +154 -0
  246. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +311 -0
  247. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +159 -0
  248. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +215 -0
  249. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +65 -0
  250. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +1055 -0
  251. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +57 -0
  252. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +1304 -0
  253. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +1635 -0
  254. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +208 -0
  255. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +320 -0
  256. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +45 -0
  257. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +380 -0
  258. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +66 -0
  259. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +341 -0
  260. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +47 -0
  261. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +212 -0
  262. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +88 -0
  263. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +237 -0
  264. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +311 -0
  265. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +130 -0
  266. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +71 -0
  267. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +117 -0
  268. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +126 -0
  269. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +192 -0
  270. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +636 -0
  271. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +140 -0
  272. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +172 -0
  273. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +46 -0
  274. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +207 -0
  275. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +157 -0
  276. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +45 -0
  277. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +56 -0
  278. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +340 -0
  279. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +1062 -0
  280. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +743 -0
  281. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
  282. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +127 -0
  283. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +57 -0
  284. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +253 -0
  285. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +325 -0
  286. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +103 -0
  287. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +57 -0
  288. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +256 -0
  289. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +320 -0
  290. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +92 -0
  291. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +171 -0
  292. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +72 -0
  293. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +70 -0
  294. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +43 -0
  295. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +7706 -0
  296. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +49 -0
  297. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +49 -0
  298. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +132 -0
  299. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +308 -0
  300. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +181 -0
  301. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +194 -0
  302. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.cc +36 -0
  303. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.h +55 -0
  304. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +30 -0
  305. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +17 -0
  306. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +41 -0
  307. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +32 -0
  308. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +18 -0
  309. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +8 -0
  310. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +30 -0
  311. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +28 -0
  312. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +457 -0
  313. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +62 -0
  314. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +63 -0
  315. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +59 -0
  316. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +68 -0
  317. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +65 -0
  318. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +100 -0
  319. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +1135 -0
  320. data/ext/rj_schema/rapidjson/thirdparty/gtest/travis.sh +15 -0
  321. data/ext/rj_schema/rj_schema.cpp +64 -41
  322. data/lib/rj_schema.rb +1 -1
  323. metadata +378 -5
@@ -0,0 +1,636 @@
1
+ #!/usr/bin/env python
2
+ #
3
+ # Copyright 2005 Google Inc. All Rights Reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are
7
+ # met:
8
+ #
9
+ # * Redistributions of source code must retain the above copyright
10
+ # notice, this list of conditions and the following disclaimer.
11
+ # * Redistributions in binary form must reproduce the above
12
+ # copyright notice, this list of conditions and the following disclaimer
13
+ # in the documentation and/or other materials provided with the
14
+ # distribution.
15
+ # * Neither the name of Google Inc. nor the names of its
16
+ # contributors may be used to endorse or promote products derived from
17
+ # this software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ """Unit test for Google Test test filters.
32
+
33
+ A user can specify which test(s) in a Google Test program to run via either
34
+ the GTEST_FILTER environment variable or the --gtest_filter flag.
35
+ This script tests such functionality by invoking
36
+ gtest_filter_unittest_ (a program written with Google Test) with different
37
+ environments and command line flags.
38
+
39
+ Note that test sharding may also influence which tests are filtered. Therefore,
40
+ we test that here also.
41
+ """
42
+
43
+ __author__ = 'wan@google.com (Zhanyong Wan)'
44
+
45
+ import os
46
+ import re
47
+ try:
48
+ from sets import Set as set # For Python 2.3 compatibility
49
+ except ImportError:
50
+ pass
51
+ import sys
52
+
53
+ import gtest_test_utils
54
+
55
+ # Constants.
56
+
57
+ # Checks if this platform can pass empty environment variables to child
58
+ # processes. We set an env variable to an empty string and invoke a python
59
+ # script in a subprocess to print whether the variable is STILL in
60
+ # os.environ. We then use 'eval' to parse the child's output so that an
61
+ # exception is thrown if the input is anything other than 'True' nor 'False'.
62
+ os.environ['EMPTY_VAR'] = ''
63
+ child = gtest_test_utils.Subprocess(
64
+ [sys.executable, '-c', 'import os; print(\'EMPTY_VAR\' in os.environ)'])
65
+ CAN_PASS_EMPTY_ENV = eval(child.output)
66
+
67
+
68
+ # Check if this platform can unset environment variables in child processes.
69
+ # We set an env variable to a non-empty string, unset it, and invoke
70
+ # a python script in a subprocess to print whether the variable
71
+ # is NO LONGER in os.environ.
72
+ # We use 'eval' to parse the child's output so that an exception
73
+ # is thrown if the input is neither 'True' nor 'False'.
74
+ os.environ['UNSET_VAR'] = 'X'
75
+ del os.environ['UNSET_VAR']
76
+ child = gtest_test_utils.Subprocess(
77
+ [sys.executable, '-c', 'import os; print(\'UNSET_VAR\' not in os.environ)'])
78
+ CAN_UNSET_ENV = eval(child.output)
79
+
80
+
81
+ # Checks if we should test with an empty filter. This doesn't
82
+ # make sense on platforms that cannot pass empty env variables (Win32)
83
+ # and on platforms that cannot unset variables (since we cannot tell
84
+ # the difference between "" and NULL -- Borland and Solaris < 5.10)
85
+ CAN_TEST_EMPTY_FILTER = (CAN_PASS_EMPTY_ENV and CAN_UNSET_ENV)
86
+
87
+
88
+ # The environment variable for specifying the test filters.
89
+ FILTER_ENV_VAR = 'GTEST_FILTER'
90
+
91
+ # The environment variables for test sharding.
92
+ TOTAL_SHARDS_ENV_VAR = 'GTEST_TOTAL_SHARDS'
93
+ SHARD_INDEX_ENV_VAR = 'GTEST_SHARD_INDEX'
94
+ SHARD_STATUS_FILE_ENV_VAR = 'GTEST_SHARD_STATUS_FILE'
95
+
96
+ # The command line flag for specifying the test filters.
97
+ FILTER_FLAG = 'gtest_filter'
98
+
99
+ # The command line flag for including disabled tests.
100
+ ALSO_RUN_DISABED_TESTS_FLAG = 'gtest_also_run_disabled_tests'
101
+
102
+ # Command to run the gtest_filter_unittest_ program.
103
+ COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_filter_unittest_')
104
+
105
+ # Regex for determining whether parameterized tests are enabled in the binary.
106
+ PARAM_TEST_REGEX = re.compile(r'/ParamTest')
107
+
108
+ # Regex for parsing test case names from Google Test's output.
109
+ TEST_CASE_REGEX = re.compile(r'^\[\-+\] \d+ tests? from (\w+(/\w+)?)')
110
+
111
+ # Regex for parsing test names from Google Test's output.
112
+ TEST_REGEX = re.compile(r'^\[\s*RUN\s*\].*\.(\w+(/\w+)?)')
113
+
114
+ # The command line flag to tell Google Test to output the list of tests it
115
+ # will run.
116
+ LIST_TESTS_FLAG = '--gtest_list_tests'
117
+
118
+ # Indicates whether Google Test supports death tests.
119
+ SUPPORTS_DEATH_TESTS = 'HasDeathTest' in gtest_test_utils.Subprocess(
120
+ [COMMAND, LIST_TESTS_FLAG]).output
121
+
122
+ # Full names of all tests in gtest_filter_unittests_.
123
+ PARAM_TESTS = [
124
+ 'SeqP/ParamTest.TestX/0',
125
+ 'SeqP/ParamTest.TestX/1',
126
+ 'SeqP/ParamTest.TestY/0',
127
+ 'SeqP/ParamTest.TestY/1',
128
+ 'SeqQ/ParamTest.TestX/0',
129
+ 'SeqQ/ParamTest.TestX/1',
130
+ 'SeqQ/ParamTest.TestY/0',
131
+ 'SeqQ/ParamTest.TestY/1',
132
+ ]
133
+
134
+ DISABLED_TESTS = [
135
+ 'BarTest.DISABLED_TestFour',
136
+ 'BarTest.DISABLED_TestFive',
137
+ 'BazTest.DISABLED_TestC',
138
+ 'DISABLED_FoobarTest.Test1',
139
+ 'DISABLED_FoobarTest.DISABLED_Test2',
140
+ 'DISABLED_FoobarbazTest.TestA',
141
+ ]
142
+
143
+ if SUPPORTS_DEATH_TESTS:
144
+ DEATH_TESTS = [
145
+ 'HasDeathTest.Test1',
146
+ 'HasDeathTest.Test2',
147
+ ]
148
+ else:
149
+ DEATH_TESTS = []
150
+
151
+ # All the non-disabled tests.
152
+ ACTIVE_TESTS = [
153
+ 'FooTest.Abc',
154
+ 'FooTest.Xyz',
155
+
156
+ 'BarTest.TestOne',
157
+ 'BarTest.TestTwo',
158
+ 'BarTest.TestThree',
159
+
160
+ 'BazTest.TestOne',
161
+ 'BazTest.TestA',
162
+ 'BazTest.TestB',
163
+ ] + DEATH_TESTS + PARAM_TESTS
164
+
165
+ param_tests_present = None
166
+
167
+ # Utilities.
168
+
169
+ environ = os.environ.copy()
170
+
171
+
172
+ def SetEnvVar(env_var, value):
173
+ """Sets the env variable to 'value'; unsets it when 'value' is None."""
174
+
175
+ if value is not None:
176
+ environ[env_var] = value
177
+ elif env_var in environ:
178
+ del environ[env_var]
179
+
180
+
181
+ def RunAndReturnOutput(args = None):
182
+ """Runs the test program and returns its output."""
183
+
184
+ return gtest_test_utils.Subprocess([COMMAND] + (args or []),
185
+ env=environ).output
186
+
187
+
188
+ def RunAndExtractTestList(args = None):
189
+ """Runs the test program and returns its exit code and a list of tests run."""
190
+
191
+ p = gtest_test_utils.Subprocess([COMMAND] + (args or []), env=environ)
192
+ tests_run = []
193
+ test_case = ''
194
+ test = ''
195
+ for line in p.output.split('\n'):
196
+ match = TEST_CASE_REGEX.match(line)
197
+ if match is not None:
198
+ test_case = match.group(1)
199
+ else:
200
+ match = TEST_REGEX.match(line)
201
+ if match is not None:
202
+ test = match.group(1)
203
+ tests_run.append(test_case + '.' + test)
204
+ return (tests_run, p.exit_code)
205
+
206
+
207
+ def InvokeWithModifiedEnv(extra_env, function, *args, **kwargs):
208
+ """Runs the given function and arguments in a modified environment."""
209
+ try:
210
+ original_env = environ.copy()
211
+ environ.update(extra_env)
212
+ return function(*args, **kwargs)
213
+ finally:
214
+ environ.clear()
215
+ environ.update(original_env)
216
+
217
+
218
+ def RunWithSharding(total_shards, shard_index, command):
219
+ """Runs a test program shard and returns exit code and a list of tests run."""
220
+
221
+ extra_env = {SHARD_INDEX_ENV_VAR: str(shard_index),
222
+ TOTAL_SHARDS_ENV_VAR: str(total_shards)}
223
+ return InvokeWithModifiedEnv(extra_env, RunAndExtractTestList, command)
224
+
225
+ # The unit test.
226
+
227
+
228
+ class GTestFilterUnitTest(gtest_test_utils.TestCase):
229
+ """Tests the env variable or the command line flag to filter tests."""
230
+
231
+ # Utilities.
232
+
233
+ def AssertSetEqual(self, lhs, rhs):
234
+ """Asserts that two sets are equal."""
235
+
236
+ for elem in lhs:
237
+ self.assert_(elem in rhs, '%s in %s' % (elem, rhs))
238
+
239
+ for elem in rhs:
240
+ self.assert_(elem in lhs, '%s in %s' % (elem, lhs))
241
+
242
+ def AssertPartitionIsValid(self, set_var, list_of_sets):
243
+ """Asserts that list_of_sets is a valid partition of set_var."""
244
+
245
+ full_partition = []
246
+ for slice_var in list_of_sets:
247
+ full_partition.extend(slice_var)
248
+ self.assertEqual(len(set_var), len(full_partition))
249
+ self.assertEqual(set(set_var), set(full_partition))
250
+
251
+ def AdjustForParameterizedTests(self, tests_to_run):
252
+ """Adjust tests_to_run in case value parameterized tests are disabled."""
253
+
254
+ global param_tests_present
255
+ if not param_tests_present:
256
+ return list(set(tests_to_run) - set(PARAM_TESTS))
257
+ else:
258
+ return tests_to_run
259
+
260
+ def RunAndVerify(self, gtest_filter, tests_to_run):
261
+ """Checks that the binary runs correct set of tests for a given filter."""
262
+
263
+ tests_to_run = self.AdjustForParameterizedTests(tests_to_run)
264
+
265
+ # First, tests using the environment variable.
266
+
267
+ # Windows removes empty variables from the environment when passing it
268
+ # to a new process. This means it is impossible to pass an empty filter
269
+ # into a process using the environment variable. However, we can still
270
+ # test the case when the variable is not supplied (i.e., gtest_filter is
271
+ # None).
272
+ # pylint: disable-msg=C6403
273
+ if CAN_TEST_EMPTY_FILTER or gtest_filter != '':
274
+ SetEnvVar(FILTER_ENV_VAR, gtest_filter)
275
+ tests_run = RunAndExtractTestList()[0]
276
+ SetEnvVar(FILTER_ENV_VAR, None)
277
+ self.AssertSetEqual(tests_run, tests_to_run)
278
+ # pylint: enable-msg=C6403
279
+
280
+ # Next, tests using the command line flag.
281
+
282
+ if gtest_filter is None:
283
+ args = []
284
+ else:
285
+ args = ['--%s=%s' % (FILTER_FLAG, gtest_filter)]
286
+
287
+ tests_run = RunAndExtractTestList(args)[0]
288
+ self.AssertSetEqual(tests_run, tests_to_run)
289
+
290
+ def RunAndVerifyWithSharding(self, gtest_filter, total_shards, tests_to_run,
291
+ args=None, check_exit_0=False):
292
+ """Checks that binary runs correct tests for the given filter and shard.
293
+
294
+ Runs all shards of gtest_filter_unittest_ with the given filter, and
295
+ verifies that the right set of tests were run. The union of tests run
296
+ on each shard should be identical to tests_to_run, without duplicates.
297
+
298
+ Args:
299
+ gtest_filter: A filter to apply to the tests.
300
+ total_shards: A total number of shards to split test run into.
301
+ tests_to_run: A set of tests expected to run.
302
+ args : Arguments to pass to the to the test binary.
303
+ check_exit_0: When set to a true value, make sure that all shards
304
+ return 0.
305
+ """
306
+
307
+ tests_to_run = self.AdjustForParameterizedTests(tests_to_run)
308
+
309
+ # Windows removes empty variables from the environment when passing it
310
+ # to a new process. This means it is impossible to pass an empty filter
311
+ # into a process using the environment variable. However, we can still
312
+ # test the case when the variable is not supplied (i.e., gtest_filter is
313
+ # None).
314
+ # pylint: disable-msg=C6403
315
+ if CAN_TEST_EMPTY_FILTER or gtest_filter != '':
316
+ SetEnvVar(FILTER_ENV_VAR, gtest_filter)
317
+ partition = []
318
+ for i in range(0, total_shards):
319
+ (tests_run, exit_code) = RunWithSharding(total_shards, i, args)
320
+ if check_exit_0:
321
+ self.assertEqual(0, exit_code)
322
+ partition.append(tests_run)
323
+
324
+ self.AssertPartitionIsValid(tests_to_run, partition)
325
+ SetEnvVar(FILTER_ENV_VAR, None)
326
+ # pylint: enable-msg=C6403
327
+
328
+ def RunAndVerifyAllowingDisabled(self, gtest_filter, tests_to_run):
329
+ """Checks that the binary runs correct set of tests for the given filter.
330
+
331
+ Runs gtest_filter_unittest_ with the given filter, and enables
332
+ disabled tests. Verifies that the right set of tests were run.
333
+
334
+ Args:
335
+ gtest_filter: A filter to apply to the tests.
336
+ tests_to_run: A set of tests expected to run.
337
+ """
338
+
339
+ tests_to_run = self.AdjustForParameterizedTests(tests_to_run)
340
+
341
+ # Construct the command line.
342
+ args = ['--%s' % ALSO_RUN_DISABED_TESTS_FLAG]
343
+ if gtest_filter is not None:
344
+ args.append('--%s=%s' % (FILTER_FLAG, gtest_filter))
345
+
346
+ tests_run = RunAndExtractTestList(args)[0]
347
+ self.AssertSetEqual(tests_run, tests_to_run)
348
+
349
+ def setUp(self):
350
+ """Sets up test case.
351
+
352
+ Determines whether value-parameterized tests are enabled in the binary and
353
+ sets the flags accordingly.
354
+ """
355
+
356
+ global param_tests_present
357
+ if param_tests_present is None:
358
+ param_tests_present = PARAM_TEST_REGEX.search(
359
+ RunAndReturnOutput()) is not None
360
+
361
+ def testDefaultBehavior(self):
362
+ """Tests the behavior of not specifying the filter."""
363
+
364
+ self.RunAndVerify(None, ACTIVE_TESTS)
365
+
366
+ def testDefaultBehaviorWithShards(self):
367
+ """Tests the behavior without the filter, with sharding enabled."""
368
+
369
+ self.RunAndVerifyWithSharding(None, 1, ACTIVE_TESTS)
370
+ self.RunAndVerifyWithSharding(None, 2, ACTIVE_TESTS)
371
+ self.RunAndVerifyWithSharding(None, len(ACTIVE_TESTS) - 1, ACTIVE_TESTS)
372
+ self.RunAndVerifyWithSharding(None, len(ACTIVE_TESTS), ACTIVE_TESTS)
373
+ self.RunAndVerifyWithSharding(None, len(ACTIVE_TESTS) + 1, ACTIVE_TESTS)
374
+
375
+ def testEmptyFilter(self):
376
+ """Tests an empty filter."""
377
+
378
+ self.RunAndVerify('', [])
379
+ self.RunAndVerifyWithSharding('', 1, [])
380
+ self.RunAndVerifyWithSharding('', 2, [])
381
+
382
+ def testBadFilter(self):
383
+ """Tests a filter that matches nothing."""
384
+
385
+ self.RunAndVerify('BadFilter', [])
386
+ self.RunAndVerifyAllowingDisabled('BadFilter', [])
387
+
388
+ def testFullName(self):
389
+ """Tests filtering by full name."""
390
+
391
+ self.RunAndVerify('FooTest.Xyz', ['FooTest.Xyz'])
392
+ self.RunAndVerifyAllowingDisabled('FooTest.Xyz', ['FooTest.Xyz'])
393
+ self.RunAndVerifyWithSharding('FooTest.Xyz', 5, ['FooTest.Xyz'])
394
+
395
+ def testUniversalFilters(self):
396
+ """Tests filters that match everything."""
397
+
398
+ self.RunAndVerify('*', ACTIVE_TESTS)
399
+ self.RunAndVerify('*.*', ACTIVE_TESTS)
400
+ self.RunAndVerifyWithSharding('*.*', len(ACTIVE_TESTS) - 3, ACTIVE_TESTS)
401
+ self.RunAndVerifyAllowingDisabled('*', ACTIVE_TESTS + DISABLED_TESTS)
402
+ self.RunAndVerifyAllowingDisabled('*.*', ACTIVE_TESTS + DISABLED_TESTS)
403
+
404
+ def testFilterByTestCase(self):
405
+ """Tests filtering by test case name."""
406
+
407
+ self.RunAndVerify('FooTest.*', ['FooTest.Abc', 'FooTest.Xyz'])
408
+
409
+ BAZ_TESTS = ['BazTest.TestOne', 'BazTest.TestA', 'BazTest.TestB']
410
+ self.RunAndVerify('BazTest.*', BAZ_TESTS)
411
+ self.RunAndVerifyAllowingDisabled('BazTest.*',
412
+ BAZ_TESTS + ['BazTest.DISABLED_TestC'])
413
+
414
+ def testFilterByTest(self):
415
+ """Tests filtering by test name."""
416
+
417
+ self.RunAndVerify('*.TestOne', ['BarTest.TestOne', 'BazTest.TestOne'])
418
+
419
+ def testFilterDisabledTests(self):
420
+ """Select only the disabled tests to run."""
421
+
422
+ self.RunAndVerify('DISABLED_FoobarTest.Test1', [])
423
+ self.RunAndVerifyAllowingDisabled('DISABLED_FoobarTest.Test1',
424
+ ['DISABLED_FoobarTest.Test1'])
425
+
426
+ self.RunAndVerify('*DISABLED_*', [])
427
+ self.RunAndVerifyAllowingDisabled('*DISABLED_*', DISABLED_TESTS)
428
+
429
+ self.RunAndVerify('*.DISABLED_*', [])
430
+ self.RunAndVerifyAllowingDisabled('*.DISABLED_*', [
431
+ 'BarTest.DISABLED_TestFour',
432
+ 'BarTest.DISABLED_TestFive',
433
+ 'BazTest.DISABLED_TestC',
434
+ 'DISABLED_FoobarTest.DISABLED_Test2',
435
+ ])
436
+
437
+ self.RunAndVerify('DISABLED_*', [])
438
+ self.RunAndVerifyAllowingDisabled('DISABLED_*', [
439
+ 'DISABLED_FoobarTest.Test1',
440
+ 'DISABLED_FoobarTest.DISABLED_Test2',
441
+ 'DISABLED_FoobarbazTest.TestA',
442
+ ])
443
+
444
+ def testWildcardInTestCaseName(self):
445
+ """Tests using wildcard in the test case name."""
446
+
447
+ self.RunAndVerify('*a*.*', [
448
+ 'BarTest.TestOne',
449
+ 'BarTest.TestTwo',
450
+ 'BarTest.TestThree',
451
+
452
+ 'BazTest.TestOne',
453
+ 'BazTest.TestA',
454
+ 'BazTest.TestB', ] + DEATH_TESTS + PARAM_TESTS)
455
+
456
+ def testWildcardInTestName(self):
457
+ """Tests using wildcard in the test name."""
458
+
459
+ self.RunAndVerify('*.*A*', ['FooTest.Abc', 'BazTest.TestA'])
460
+
461
+ def testFilterWithoutDot(self):
462
+ """Tests a filter that has no '.' in it."""
463
+
464
+ self.RunAndVerify('*z*', [
465
+ 'FooTest.Xyz',
466
+
467
+ 'BazTest.TestOne',
468
+ 'BazTest.TestA',
469
+ 'BazTest.TestB',
470
+ ])
471
+
472
+ def testTwoPatterns(self):
473
+ """Tests filters that consist of two patterns."""
474
+
475
+ self.RunAndVerify('Foo*.*:*A*', [
476
+ 'FooTest.Abc',
477
+ 'FooTest.Xyz',
478
+
479
+ 'BazTest.TestA',
480
+ ])
481
+
482
+ # An empty pattern + a non-empty one
483
+ self.RunAndVerify(':*A*', ['FooTest.Abc', 'BazTest.TestA'])
484
+
485
+ def testThreePatterns(self):
486
+ """Tests filters that consist of three patterns."""
487
+
488
+ self.RunAndVerify('*oo*:*A*:*One', [
489
+ 'FooTest.Abc',
490
+ 'FooTest.Xyz',
491
+
492
+ 'BarTest.TestOne',
493
+
494
+ 'BazTest.TestOne',
495
+ 'BazTest.TestA',
496
+ ])
497
+
498
+ # The 2nd pattern is empty.
499
+ self.RunAndVerify('*oo*::*One', [
500
+ 'FooTest.Abc',
501
+ 'FooTest.Xyz',
502
+
503
+ 'BarTest.TestOne',
504
+
505
+ 'BazTest.TestOne',
506
+ ])
507
+
508
+ # The last 2 patterns are empty.
509
+ self.RunAndVerify('*oo*::', [
510
+ 'FooTest.Abc',
511
+ 'FooTest.Xyz',
512
+ ])
513
+
514
+ def testNegativeFilters(self):
515
+ self.RunAndVerify('*-BazTest.TestOne', [
516
+ 'FooTest.Abc',
517
+ 'FooTest.Xyz',
518
+
519
+ 'BarTest.TestOne',
520
+ 'BarTest.TestTwo',
521
+ 'BarTest.TestThree',
522
+
523
+ 'BazTest.TestA',
524
+ 'BazTest.TestB',
525
+ ] + DEATH_TESTS + PARAM_TESTS)
526
+
527
+ self.RunAndVerify('*-FooTest.Abc:BazTest.*', [
528
+ 'FooTest.Xyz',
529
+
530
+ 'BarTest.TestOne',
531
+ 'BarTest.TestTwo',
532
+ 'BarTest.TestThree',
533
+ ] + DEATH_TESTS + PARAM_TESTS)
534
+
535
+ self.RunAndVerify('BarTest.*-BarTest.TestOne', [
536
+ 'BarTest.TestTwo',
537
+ 'BarTest.TestThree',
538
+ ])
539
+
540
+ # Tests without leading '*'.
541
+ self.RunAndVerify('-FooTest.Abc:FooTest.Xyz:BazTest.*', [
542
+ 'BarTest.TestOne',
543
+ 'BarTest.TestTwo',
544
+ 'BarTest.TestThree',
545
+ ] + DEATH_TESTS + PARAM_TESTS)
546
+
547
+ # Value parameterized tests.
548
+ self.RunAndVerify('*/*', PARAM_TESTS)
549
+
550
+ # Value parameterized tests filtering by the sequence name.
551
+ self.RunAndVerify('SeqP/*', [
552
+ 'SeqP/ParamTest.TestX/0',
553
+ 'SeqP/ParamTest.TestX/1',
554
+ 'SeqP/ParamTest.TestY/0',
555
+ 'SeqP/ParamTest.TestY/1',
556
+ ])
557
+
558
+ # Value parameterized tests filtering by the test name.
559
+ self.RunAndVerify('*/0', [
560
+ 'SeqP/ParamTest.TestX/0',
561
+ 'SeqP/ParamTest.TestY/0',
562
+ 'SeqQ/ParamTest.TestX/0',
563
+ 'SeqQ/ParamTest.TestY/0',
564
+ ])
565
+
566
+ def testFlagOverridesEnvVar(self):
567
+ """Tests that the filter flag overrides the filtering env. variable."""
568
+
569
+ SetEnvVar(FILTER_ENV_VAR, 'Foo*')
570
+ args = ['--%s=%s' % (FILTER_FLAG, '*One')]
571
+ tests_run = RunAndExtractTestList(args)[0]
572
+ SetEnvVar(FILTER_ENV_VAR, None)
573
+
574
+ self.AssertSetEqual(tests_run, ['BarTest.TestOne', 'BazTest.TestOne'])
575
+
576
+ def testShardStatusFileIsCreated(self):
577
+ """Tests that the shard file is created if specified in the environment."""
578
+
579
+ shard_status_file = os.path.join(gtest_test_utils.GetTempDir(),
580
+ 'shard_status_file')
581
+ self.assert_(not os.path.exists(shard_status_file))
582
+
583
+ extra_env = {SHARD_STATUS_FILE_ENV_VAR: shard_status_file}
584
+ try:
585
+ InvokeWithModifiedEnv(extra_env, RunAndReturnOutput)
586
+ finally:
587
+ self.assert_(os.path.exists(shard_status_file))
588
+ os.remove(shard_status_file)
589
+
590
+ def testShardStatusFileIsCreatedWithListTests(self):
591
+ """Tests that the shard file is created with the "list_tests" flag."""
592
+
593
+ shard_status_file = os.path.join(gtest_test_utils.GetTempDir(),
594
+ 'shard_status_file2')
595
+ self.assert_(not os.path.exists(shard_status_file))
596
+
597
+ extra_env = {SHARD_STATUS_FILE_ENV_VAR: shard_status_file}
598
+ try:
599
+ output = InvokeWithModifiedEnv(extra_env,
600
+ RunAndReturnOutput,
601
+ [LIST_TESTS_FLAG])
602
+ finally:
603
+ # This assertion ensures that Google Test enumerated the tests as
604
+ # opposed to running them.
605
+ self.assert_('[==========]' not in output,
606
+ 'Unexpected output during test enumeration.\n'
607
+ 'Please ensure that LIST_TESTS_FLAG is assigned the\n'
608
+ 'correct flag value for listing Google Test tests.')
609
+
610
+ self.assert_(os.path.exists(shard_status_file))
611
+ os.remove(shard_status_file)
612
+
613
+ if SUPPORTS_DEATH_TESTS:
614
+ def testShardingWorksWithDeathTests(self):
615
+ """Tests integration with death tests and sharding."""
616
+
617
+ gtest_filter = 'HasDeathTest.*:SeqP/*'
618
+ expected_tests = [
619
+ 'HasDeathTest.Test1',
620
+ 'HasDeathTest.Test2',
621
+
622
+ 'SeqP/ParamTest.TestX/0',
623
+ 'SeqP/ParamTest.TestX/1',
624
+ 'SeqP/ParamTest.TestY/0',
625
+ 'SeqP/ParamTest.TestY/1',
626
+ ]
627
+
628
+ for flag in ['--gtest_death_test_style=threadsafe',
629
+ '--gtest_death_test_style=fast']:
630
+ self.RunAndVerifyWithSharding(gtest_filter, 3, expected_tests,
631
+ check_exit_0=True, args=[flag])
632
+ self.RunAndVerifyWithSharding(gtest_filter, 5, expected_tests,
633
+ check_exit_0=True, args=[flag])
634
+
635
+ if __name__ == '__main__':
636
+ gtest_test_utils.Main()