libv8 8.4.255.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +45 -0
  6. data/CHANGELOG.md +111 -0
  7. data/Gemfile +4 -0
  8. data/README.md +152 -0
  9. data/Rakefile +125 -0
  10. data/appveyor.yml.disabled +36 -0
  11. data/ext/libv8/arch.rb +20 -0
  12. data/ext/libv8/builder.rb +106 -0
  13. data/ext/libv8/extconf.rb +7 -0
  14. data/ext/libv8/location.rb +89 -0
  15. data/ext/libv8/paths.rb +28 -0
  16. data/lib/libv8.rb +9 -0
  17. data/lib/libv8/version.rb +3 -0
  18. data/libv8.gemspec +30 -0
  19. data/scaleway.png +0 -0
  20. data/spec/location_spec.rb +69 -0
  21. data/spec/spec_helper.rb +4 -0
  22. data/thefrontside.png +0 -0
  23. data/vendor/depot_tools/.cipd_impl.ps1 +129 -0
  24. data/vendor/depot_tools/.gitattributes +55 -0
  25. data/vendor/depot_tools/.gitignore +92 -0
  26. data/vendor/depot_tools/.style.yapf +4 -0
  27. data/vendor/depot_tools/.vpython +55 -0
  28. data/vendor/depot_tools/.vpython3 +23 -0
  29. data/vendor/depot_tools/CROS_OWNERS +7 -0
  30. data/vendor/depot_tools/GOMA_OWNERS +9 -0
  31. data/vendor/depot_tools/LICENSE +27 -0
  32. data/vendor/depot_tools/LUCI_OWNERS +5 -0
  33. data/vendor/depot_tools/OWNERS +39 -0
  34. data/vendor/depot_tools/PRESUBMIT.py +150 -0
  35. data/vendor/depot_tools/README.gclient.md +67 -0
  36. data/vendor/depot_tools/README.git-cl.md +99 -0
  37. data/vendor/depot_tools/README.md +78 -0
  38. data/vendor/depot_tools/WATCHLISTS +26 -0
  39. data/vendor/depot_tools/auth.py +163 -0
  40. data/vendor/depot_tools/autoninja +36 -0
  41. data/vendor/depot_tools/autoninja.bat +33 -0
  42. data/vendor/depot_tools/autoninja.py +148 -0
  43. data/vendor/depot_tools/bb +12 -0
  44. data/vendor/depot_tools/bb.bat +7 -0
  45. data/vendor/depot_tools/bootstrap/README.md +155 -0
  46. data/vendor/depot_tools/bootstrap/bootstrap.py +356 -0
  47. data/vendor/depot_tools/bootstrap/git-bash.template.sh +12 -0
  48. data/vendor/depot_tools/bootstrap/git.template.bat +5 -0
  49. data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
  50. data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
  51. data/vendor/depot_tools/bootstrap/profile.d.python.sh +20 -0
  52. data/vendor/depot_tools/bootstrap/python27.bat +46 -0
  53. data/vendor/depot_tools/bootstrap/python3.bat +46 -0
  54. data/vendor/depot_tools/bootstrap/win_tools.bat +79 -0
  55. data/vendor/depot_tools/bootstrap_python3 +35 -0
  56. data/vendor/depot_tools/breakpad.py +12 -0
  57. data/vendor/depot_tools/cbuildbot +1 -0
  58. data/vendor/depot_tools/chrome_set_ver +1 -0
  59. data/vendor/depot_tools/cipd +247 -0
  60. data/vendor/depot_tools/cipd.bat +67 -0
  61. data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
  62. data/vendor/depot_tools/cipd_bin_setup.sh +22 -0
  63. data/vendor/depot_tools/cipd_client_version +1 -0
  64. data/vendor/depot_tools/cipd_client_version.digests +22 -0
  65. data/vendor/depot_tools/cipd_manifest.txt +63 -0
  66. data/vendor/depot_tools/cipd_manifest.versions +438 -0
  67. data/vendor/depot_tools/cit +8 -0
  68. data/vendor/depot_tools/cit.bat +12 -0
  69. data/vendor/depot_tools/cit.py +167 -0
  70. data/vendor/depot_tools/clang-format +8 -0
  71. data/vendor/depot_tools/clang-format.bat +12 -0
  72. data/vendor/depot_tools/clang_format.py +79 -0
  73. data/vendor/depot_tools/clang_format_merge_driver +8 -0
  74. data/vendor/depot_tools/clang_format_merge_driver.bat +12 -0
  75. data/vendor/depot_tools/clang_format_merge_driver.py +69 -0
  76. data/vendor/depot_tools/codereview.settings +6 -0
  77. data/vendor/depot_tools/compile_single_file +8 -0
  78. data/vendor/depot_tools/compile_single_file.bat +11 -0
  79. data/vendor/depot_tools/compile_single_file.py +79 -0
  80. data/vendor/depot_tools/cpplint.bat +11 -0
  81. data/vendor/depot_tools/cpplint.py +6097 -0
  82. data/vendor/depot_tools/cpplint_chromium.py +50 -0
  83. data/vendor/depot_tools/cros +87 -0
  84. data/vendor/depot_tools/cros_sdk +1 -0
  85. data/vendor/depot_tools/crosjobs +13 -0
  86. data/vendor/depot_tools/detect_host_arch.py +55 -0
  87. data/vendor/depot_tools/dirmd +12 -0
  88. data/vendor/depot_tools/dirmd.bat +7 -0
  89. data/vendor/depot_tools/download_from_google_storage +8 -0
  90. data/vendor/depot_tools/download_from_google_storage.bat +12 -0
  91. data/vendor/depot_tools/download_from_google_storage.py +634 -0
  92. data/vendor/depot_tools/ensure_bootstrap +53 -0
  93. data/vendor/depot_tools/fetch +21 -0
  94. data/vendor/depot_tools/fetch.bat +28 -0
  95. data/vendor/depot_tools/fetch.py +319 -0
  96. data/vendor/depot_tools/fetch_configs/android.py +34 -0
  97. data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
  98. data/vendor/depot_tools/fetch_configs/breakpad.py +44 -0
  99. data/vendor/depot_tools/fetch_configs/chromium.py +66 -0
  100. data/vendor/depot_tools/fetch_configs/config_util.py +52 -0
  101. data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
  102. data/vendor/depot_tools/fetch_configs/dart.py +45 -0
  103. data/vendor/depot_tools/fetch_configs/depot_tools.py +44 -0
  104. data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
  105. data/vendor/depot_tools/fetch_configs/goma_client.py +41 -0
  106. data/vendor/depot_tools/fetch_configs/gyp.py +41 -0
  107. data/vendor/depot_tools/fetch_configs/infra.py +40 -0
  108. data/vendor/depot_tools/fetch_configs/infra_internal.py +45 -0
  109. data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
  110. data/vendor/depot_tools/fetch_configs/ios.py +34 -0
  111. data/vendor/depot_tools/fetch_configs/ios_internal.py +39 -0
  112. data/vendor/depot_tools/fetch_configs/nacl.py +48 -0
  113. data/vendor/depot_tools/fetch_configs/naclports.py +47 -0
  114. data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
  115. data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
  116. data/vendor/depot_tools/fetch_configs/skia.py +41 -0
  117. data/vendor/depot_tools/fetch_configs/skia_buildbot.py +41 -0
  118. data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
  119. data/vendor/depot_tools/fetch_configs/v8.py +44 -0
  120. data/vendor/depot_tools/fetch_configs/webrtc.py +52 -0
  121. data/vendor/depot_tools/fetch_configs/webrtc_android.py +34 -0
  122. data/vendor/depot_tools/fetch_configs/webrtc_ios.py +34 -0
  123. data/vendor/depot_tools/fix_encoding.py +385 -0
  124. data/vendor/depot_tools/gclient +38 -0
  125. data/vendor/depot_tools/gclient-new-workdir.py +124 -0
  126. data/vendor/depot_tools/gclient.bat +32 -0
  127. data/vendor/depot_tools/gclient.py +3198 -0
  128. data/vendor/depot_tools/gclient_completion.sh +76 -0
  129. data/vendor/depot_tools/gclient_eval.py +891 -0
  130. data/vendor/depot_tools/gclient_paths.py +152 -0
  131. data/vendor/depot_tools/gclient_scm.py +1615 -0
  132. data/vendor/depot_tools/gclient_utils.py +1280 -0
  133. data/vendor/depot_tools/gerrit_client.py +151 -0
  134. data/vendor/depot_tools/gerrit_util.py +996 -0
  135. data/vendor/depot_tools/git-cache +6 -0
  136. data/vendor/depot_tools/git-cl +6 -0
  137. data/vendor/depot_tools/git-crrev-parse +53 -0
  138. data/vendor/depot_tools/git-drover +6 -0
  139. data/vendor/depot_tools/git-find-releases +6 -0
  140. data/vendor/depot_tools/git-footers +6 -0
  141. data/vendor/depot_tools/git-freeze +8 -0
  142. data/vendor/depot_tools/git-gs +9 -0
  143. data/vendor/depot_tools/git-hyper-blame +6 -0
  144. data/vendor/depot_tools/git-map +6 -0
  145. data/vendor/depot_tools/git-map-branches +6 -0
  146. data/vendor/depot_tools/git-mark-merge-base +6 -0
  147. data/vendor/depot_tools/git-nav-downstream +6 -0
  148. data/vendor/depot_tools/git-nav-upstream +6 -0
  149. data/vendor/depot_tools/git-new-branch +6 -0
  150. data/vendor/depot_tools/git-number +6 -0
  151. data/vendor/depot_tools/git-rebase-update +6 -0
  152. data/vendor/depot_tools/git-rename-branch +6 -0
  153. data/vendor/depot_tools/git-reparent-branch +6 -0
  154. data/vendor/depot_tools/git-retry +8 -0
  155. data/vendor/depot_tools/git-runhooks +23 -0
  156. data/vendor/depot_tools/git-squash-branch +6 -0
  157. data/vendor/depot_tools/git-templates/description +3 -0
  158. data/vendor/depot_tools/git-templates/hooks/applypatch-msg +4 -0
  159. data/vendor/depot_tools/git-templates/hooks/post-applypatch +4 -0
  160. data/vendor/depot_tools/git-templates/hooks/post-checkout +4 -0
  161. data/vendor/depot_tools/git-templates/hooks/post-commit +4 -0
  162. data/vendor/depot_tools/git-templates/hooks/post-merge +4 -0
  163. data/vendor/depot_tools/git-templates/hooks/post-update +4 -0
  164. data/vendor/depot_tools/git-templates/hooks/pre-applypatch +4 -0
  165. data/vendor/depot_tools/git-templates/hooks/pre-auto-gc +4 -0
  166. data/vendor/depot_tools/git-templates/hooks/pre-commit +4 -0
  167. data/vendor/depot_tools/git-templates/hooks/pre-rebase +4 -0
  168. data/vendor/depot_tools/git-templates/hooks/prepare-commit-msg +4 -0
  169. data/vendor/depot_tools/git-templates/info/exclude +6 -0
  170. data/vendor/depot_tools/git-thaw +13 -0
  171. data/vendor/depot_tools/git-upstream-diff +9 -0
  172. data/vendor/depot_tools/git_cache.py +786 -0
  173. data/vendor/depot_tools/git_cl.py +5158 -0
  174. data/vendor/depot_tools/git_cl_completion.sh +48 -0
  175. data/vendor/depot_tools/git_common.py +1101 -0
  176. data/vendor/depot_tools/git_dates.py +62 -0
  177. data/vendor/depot_tools/git_drover.py +469 -0
  178. data/vendor/depot_tools/git_find_releases.py +67 -0
  179. data/vendor/depot_tools/git_footers.py +261 -0
  180. data/vendor/depot_tools/git_freezer.py +40 -0
  181. data/vendor/depot_tools/git_hyper_blame.py +391 -0
  182. data/vendor/depot_tools/git_map.py +166 -0
  183. data/vendor/depot_tools/git_map_branches.py +354 -0
  184. data/vendor/depot_tools/git_mark_merge_base.py +73 -0
  185. data/vendor/depot_tools/git_nav_downstream.py +69 -0
  186. data/vendor/depot_tools/git_new_branch.py +82 -0
  187. data/vendor/depot_tools/git_number.py +301 -0
  188. data/vendor/depot_tools/git_rebase_update.py +351 -0
  189. data/vendor/depot_tools/git_rename_branch.py +55 -0
  190. data/vendor/depot_tools/git_reparent_branch.py +101 -0
  191. data/vendor/depot_tools/git_retry.py +181 -0
  192. data/vendor/depot_tools/git_squash_branch.py +28 -0
  193. data/vendor/depot_tools/git_upstream_diff.py +64 -0
  194. data/vendor/depot_tools/gn +8 -0
  195. data/vendor/depot_tools/gn.bat +12 -0
  196. data/vendor/depot_tools/gn.py +78 -0
  197. data/vendor/depot_tools/goma_auth +12 -0
  198. data/vendor/depot_tools/goma_auth.bat +8 -0
  199. data/vendor/depot_tools/goma_ctl +12 -0
  200. data/vendor/depot_tools/goma_ctl.bat +8 -0
  201. data/vendor/depot_tools/gsutil.py +190 -0
  202. data/vendor/depot_tools/gsutil.py.bat +23 -0
  203. data/vendor/depot_tools/gsutil.vpython +120 -0
  204. data/vendor/depot_tools/infra/README.md +1 -0
  205. data/vendor/depot_tools/infra/config/OWNERS +7 -0
  206. data/vendor/depot_tools/infra/config/README.md +1 -0
  207. data/vendor/depot_tools/infra/config/recipes.cfg +26 -0
  208. data/vendor/depot_tools/led +12 -0
  209. data/vendor/depot_tools/led.bat +7 -0
  210. data/vendor/depot_tools/lockfile.py +116 -0
  211. data/vendor/depot_tools/luci-auth +13 -0
  212. data/vendor/depot_tools/luci-auth.bat +8 -0
  213. data/vendor/depot_tools/lucicfg +12 -0
  214. data/vendor/depot_tools/lucicfg.bat +7 -0
  215. data/vendor/depot_tools/mac_toolchain +12 -0
  216. data/vendor/depot_tools/man/html/depot_tools.html +934 -0
  217. data/vendor/depot_tools/man/html/depot_tools_tutorial.html +1593 -0
  218. data/vendor/depot_tools/man/html/git-cl.html +1033 -0
  219. data/vendor/depot_tools/man/html/git-drover.html +1048 -0
  220. data/vendor/depot_tools/man/html/git-footers.html +878 -0
  221. data/vendor/depot_tools/man/html/git-freeze.html +859 -0
  222. data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
  223. data/vendor/depot_tools/man/html/git-map-branches.html +904 -0
  224. data/vendor/depot_tools/man/html/git-map.html +887 -0
  225. data/vendor/depot_tools/man/html/git-mark-merge-base.html +826 -0
  226. data/vendor/depot_tools/man/html/git-nav-downstream.html +844 -0
  227. data/vendor/depot_tools/man/html/git-nav-upstream.html +853 -0
  228. data/vendor/depot_tools/man/html/git-new-branch.html +932 -0
  229. data/vendor/depot_tools/man/html/git-rebase-update.html +961 -0
  230. data/vendor/depot_tools/man/html/git-rename-branch.html +794 -0
  231. data/vendor/depot_tools/man/html/git-reparent-branch.html +847 -0
  232. data/vendor/depot_tools/man/html/git-retry.html +858 -0
  233. data/vendor/depot_tools/man/html/git-squash-branch.html +881 -0
  234. data/vendor/depot_tools/man/html/git-thaw.html +794 -0
  235. data/vendor/depot_tools/man/html/git-upstream-diff.html +923 -0
  236. data/vendor/depot_tools/man/man1/git-cl.1 +198 -0
  237. data/vendor/depot_tools/man/man1/git-drover.1 +330 -0
  238. data/vendor/depot_tools/man/man1/git-footers.1 +144 -0
  239. data/vendor/depot_tools/man/man1/git-freeze.1 +113 -0
  240. data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
  241. data/vendor/depot_tools/man/man1/git-map-branches.1 +210 -0
  242. data/vendor/depot_tools/man/man1/git-map.1 +179 -0
  243. data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +69 -0
  244. data/vendor/depot_tools/man/man1/git-nav-downstream.1 +112 -0
  245. data/vendor/depot_tools/man/man1/git-nav-upstream.1 +122 -0
  246. data/vendor/depot_tools/man/man1/git-new-branch.1 +176 -0
  247. data/vendor/depot_tools/man/man1/git-rebase-update.1 +177 -0
  248. data/vendor/depot_tools/man/man1/git-rename-branch.1 +53 -0
  249. data/vendor/depot_tools/man/man1/git-reparent-branch.1 +93 -0
  250. data/vendor/depot_tools/man/man1/git-retry.1 +108 -0
  251. data/vendor/depot_tools/man/man1/git-squash-branch.1 +129 -0
  252. data/vendor/depot_tools/man/man1/git-thaw.1 +54 -0
  253. data/vendor/depot_tools/man/man1/git-upstream-diff.1 +153 -0
  254. data/vendor/depot_tools/man/man7/depot_tools.7 +139 -0
  255. data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +1061 -0
  256. data/vendor/depot_tools/man/push_to_gs.sh +4 -0
  257. data/vendor/depot_tools/man/src/.gitignore +5 -0
  258. data/vendor/depot_tools/man/src/_aliases.txt +5 -0
  259. data/vendor/depot_tools/man/src/_footer.txt +8 -0
  260. data/vendor/depot_tools/man/src/_git-cl_desc.helper.txt +1 -0
  261. data/vendor/depot_tools/man/src/_git-drover_desc.helper.txt +2 -0
  262. data/vendor/depot_tools/man/src/_git-footers_desc.helper.txt +1 -0
  263. data/vendor/depot_tools/man/src/_git-freeze_desc.helper.txt +1 -0
  264. data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
  265. data/vendor/depot_tools/man/src/_git-map-branches_desc.helper.txt +4 -0
  266. data/vendor/depot_tools/man/src/_git-map_desc.helper.txt +3 -0
  267. data/vendor/depot_tools/man/src/_git-mark-merge-base_desc.helper.txt +1 -0
  268. data/vendor/depot_tools/man/src/_git-nav-downstream_desc.helper.txt +1 -0
  269. data/vendor/depot_tools/man/src/_git-nav-upstream_desc.helper.txt +1 -0
  270. data/vendor/depot_tools/man/src/_git-new-branch_desc.helper.txt +1 -0
  271. data/vendor/depot_tools/man/src/_git-rebase-update_desc.helper.txt +1 -0
  272. data/vendor/depot_tools/man/src/_git-rename-branch_desc.helper.txt +1 -0
  273. data/vendor/depot_tools/man/src/_git-reparent-branch_desc.helper.txt +1 -0
  274. data/vendor/depot_tools/man/src/_git-retry_desc.helper.txt +2 -0
  275. data/vendor/depot_tools/man/src/_git-squash-branch_desc.helper.txt +1 -0
  276. data/vendor/depot_tools/man/src/_git-thaw_desc.helper.txt +2 -0
  277. data/vendor/depot_tools/man/src/_git-upstream-diff_desc.helper.txt +1 -0
  278. data/vendor/depot_tools/man/src/_helper_prefix.txt +1 -0
  279. data/vendor/depot_tools/man/src/asciidoc-override.css +7 -0
  280. data/vendor/depot_tools/man/src/common_demo_functions.sh +84 -0
  281. data/vendor/depot_tools/man/src/demo_repo.sh +43 -0
  282. data/vendor/depot_tools/man/src/depot_tools.txt +28 -0
  283. data/vendor/depot_tools/man/src/depot_tools_tutorial.demo.walkthrough.sh +155 -0
  284. data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +432 -0
  285. data/vendor/depot_tools/man/src/filter_demo_output.py +141 -0
  286. data/vendor/depot_tools/man/src/git-cl.txt +119 -0
  287. data/vendor/depot_tools/man/src/git-drover.demo.1.sh +22 -0
  288. data/vendor/depot_tools/man/src/git-drover.demo.2.sh +23 -0
  289. data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
  290. data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
  291. data/vendor/depot_tools/man/src/git-drover.demo.common.sh +19 -0
  292. data/vendor/depot_tools/man/src/git-drover.txt +102 -0
  293. data/vendor/depot_tools/man/src/git-footers.demo.1.sh +17 -0
  294. data/vendor/depot_tools/man/src/git-footers.txt +71 -0
  295. data/vendor/depot_tools/man/src/git-freeze.demo.1.sh +23 -0
  296. data/vendor/depot_tools/man/src/git-freeze.txt +54 -0
  297. data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
  298. data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
  299. data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
  300. data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
  301. data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +8 -0
  302. data/vendor/depot_tools/man/src/git-map-branches.txt +64 -0
  303. data/vendor/depot_tools/man/src/git-map.demo.1.sh +3 -0
  304. data/vendor/depot_tools/man/src/git-map.txt +67 -0
  305. data/vendor/depot_tools/man/src/git-mark-merge-base.txt +46 -0
  306. data/vendor/depot_tools/man/src/git-nav-downstream.demo.1.sh +12 -0
  307. data/vendor/depot_tools/man/src/git-nav-downstream.txt +40 -0
  308. data/vendor/depot_tools/man/src/git-nav-upstream.demo.1.sh +12 -0
  309. data/vendor/depot_tools/man/src/git-nav-upstream.txt +39 -0
  310. data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +17 -0
  311. data/vendor/depot_tools/man/src/git-new-branch.txt +82 -0
  312. data/vendor/depot_tools/man/src/git-rebase-update.txt +141 -0
  313. data/vendor/depot_tools/man/src/git-rename-branch.txt +28 -0
  314. data/vendor/depot_tools/man/src/git-reparent-branch.txt +61 -0
  315. data/vendor/depot_tools/man/src/git-retry.txt +67 -0
  316. data/vendor/depot_tools/man/src/git-squash-branch.demo.1.sh +12 -0
  317. data/vendor/depot_tools/man/src/git-squash-branch.txt +59 -0
  318. data/vendor/depot_tools/man/src/git-thaw.txt +29 -0
  319. data/vendor/depot_tools/man/src/git-upstream-diff.txt +107 -0
  320. data/vendor/depot_tools/man/src/make_docs.sh +260 -0
  321. data/vendor/depot_tools/man/src/prep_demo_repo.sh +103 -0
  322. data/vendor/depot_tools/metrics.README.md +101 -0
  323. data/vendor/depot_tools/metrics.py +297 -0
  324. data/vendor/depot_tools/metrics_utils.py +293 -0
  325. data/vendor/depot_tools/my_activity.py +971 -0
  326. data/vendor/depot_tools/ninja +44 -0
  327. data/vendor/depot_tools/ninja-linux32 +0 -0
  328. data/vendor/depot_tools/ninja-linux64 +0 -0
  329. data/vendor/depot_tools/ninja-mac +0 -0
  330. data/vendor/depot_tools/ninja.exe +0 -0
  331. data/vendor/depot_tools/ninjalog.README.md +64 -0
  332. data/vendor/depot_tools/ninjalog_uploader.py +233 -0
  333. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +125 -0
  334. data/vendor/depot_tools/owners.py +641 -0
  335. data/vendor/depot_tools/owners_finder.py +385 -0
  336. data/vendor/depot_tools/post_build_ninja_summary.py +350 -0
  337. data/vendor/depot_tools/presubmit_canned_checks.py +1655 -0
  338. data/vendor/depot_tools/presubmit_support.py +1923 -0
  339. data/vendor/depot_tools/profile.xml +8 -0
  340. data/vendor/depot_tools/prpc +13 -0
  341. data/vendor/depot_tools/prpc.bat +8 -0
  342. data/vendor/depot_tools/pylint +9 -0
  343. data/vendor/depot_tools/pylint-1.5 +78 -0
  344. data/vendor/depot_tools/pylint-1.6 +78 -0
  345. data/vendor/depot_tools/pylint-1.7 +78 -0
  346. data/vendor/depot_tools/pylint-1.8 +78 -0
  347. data/vendor/depot_tools/pylint-1.9 +78 -0
  348. data/vendor/depot_tools/pylint.bat +12 -0
  349. data/vendor/depot_tools/pylint_main.py +45 -0
  350. data/vendor/depot_tools/pylintrc +349 -0
  351. data/vendor/depot_tools/python-bin/python3 +7 -0
  352. data/vendor/depot_tools/python_runner.sh +60 -0
  353. data/vendor/depot_tools/rdb +12 -0
  354. data/vendor/depot_tools/rdb.bat +7 -0
  355. data/vendor/depot_tools/recipes/OWNERS +4 -0
  356. data/vendor/depot_tools/recipes/README.recipes.md +1079 -0
  357. data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -0
  358. data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
  359. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +38 -0
  360. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +516 -0
  361. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +117 -0
  362. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +117 -0
  363. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +118 -0
  364. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +211 -0
  365. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +194 -0
  366. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +211 -0
  367. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +211 -0
  368. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +210 -0
  369. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +214 -0
  370. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +265 -0
  371. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_HEAD.json +65 -0
  372. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
  373. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
  374. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
  375. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +212 -0
  376. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +210 -0
  377. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
  378. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +95 -0
  379. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +209 -0
  380. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +193 -0
  381. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +265 -0
  382. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +261 -0
  383. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +261 -0
  384. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +265 -0
  385. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +265 -0
  386. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +265 -0
  387. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +265 -0
  388. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +8 -0
  389. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +211 -0
  390. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +308 -0
  391. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/__init__.py +0 -0
  392. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +1258 -0
  393. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +93 -0
  394. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
  395. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +35 -0
  396. data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +9 -0
  397. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +455 -0
  398. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +403 -0
  399. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +403 -0
  400. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +82 -0
  401. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +411 -0
  402. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +403 -0
  403. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +315 -0
  404. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +313 -0
  405. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +313 -0
  406. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +403 -0
  407. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.py +187 -0
  408. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +5 -0
  409. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +5 -0
  410. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +12 -0
  411. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +12 -0
  412. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +12 -0
  413. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +12 -0
  414. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +12 -0
  415. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +12 -0
  416. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +12 -0
  417. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +12 -0
  418. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
  419. data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +93 -0
  420. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/__init__.py +9 -0
  421. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +75 -0
  422. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +83 -0
  423. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +83 -0
  424. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +83 -0
  425. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +55 -0
  426. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +13 -0
  427. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +428 -0
  428. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +462 -0
  429. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +238 -0
  430. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +240 -0
  431. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +238 -0
  432. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +95 -0
  433. data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
  434. data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +36 -0
  435. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
  436. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
  437. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
  438. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
  439. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
  440. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +92 -0
  441. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
  442. data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +8 -0
  443. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +178 -0
  444. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +284 -0
  445. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +73 -0
  446. data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +53 -0
  447. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +11 -0
  448. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +405 -0
  449. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +217 -0
  450. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +217 -0
  451. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +219 -0
  452. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +216 -0
  453. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +217 -0
  454. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +218 -0
  455. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +218 -0
  456. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +164 -0
  457. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +220 -0
  458. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +239 -0
  459. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +290 -0
  460. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +220 -0
  461. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +222 -0
  462. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +111 -0
  463. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +218 -0
  464. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +265 -0
  465. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +217 -0
  466. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +221 -0
  467. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +219 -0
  468. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +218 -0
  469. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +170 -0
  470. data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +52 -0
  471. data/vendor/depot_tools/recipes/recipe_modules/git/test_api.py +18 -0
  472. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +5 -0
  473. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +50 -0
  474. data/vendor/depot_tools/recipes/recipe_modules/git_cl/config.py +22 -0
  475. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +105 -0
  476. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +47 -0
  477. data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +2 -0
  478. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +12 -0
  479. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +257 -0
  480. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +596 -0
  481. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +93 -0
  482. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +251 -0
  483. data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
  484. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +5 -0
  485. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
  486. data/vendor/depot_tools/recipes/recipe_modules/gsutil/__init__.py +4 -0
  487. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +222 -0
  488. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +247 -0
  489. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +92 -0
  490. data/vendor/depot_tools/recipes/recipe_modules/gsutil/resources/gsutil_smart_retry.py +69 -0
  491. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +36 -0
  492. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +140 -0
  493. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
  494. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
  495. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
  496. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +21 -0
  497. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +83 -0
  498. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +21 -0
  499. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +42 -0
  500. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +27 -0
  501. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +251 -0
  502. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +27 -0
  503. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +19 -0
  504. data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
  505. data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
  506. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
  507. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
  508. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +18 -0
  509. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +264 -0
  510. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +57 -0
  511. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +190 -0
  512. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +190 -0
  513. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +21 -0
  514. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +22 -0
  515. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +95 -0
  516. data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
  517. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
  518. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
  519. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
  520. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
  521. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
  522. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
  523. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +21 -0
  524. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +21 -0
  525. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +108 -0
  526. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +21 -0
  527. data/vendor/depot_tools/recipes/recipes.py +249 -0
  528. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +175 -0
  529. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.py +56 -0
  530. data/vendor/depot_tools/recipes/trigger_recipe_roller.txt +13 -0
  531. data/vendor/depot_tools/repo +1194 -0
  532. data/vendor/depot_tools/roll-dep +21 -0
  533. data/vendor/depot_tools/roll-dep.bat +21 -0
  534. data/vendor/depot_tools/roll_dep.py +282 -0
  535. data/vendor/depot_tools/scm.py +415 -0
  536. data/vendor/depot_tools/setup_color.py +130 -0
  537. data/vendor/depot_tools/split_cl.py +263 -0
  538. data/vendor/depot_tools/subcommand.py +261 -0
  539. data/vendor/depot_tools/subprocess2.py +258 -0
  540. data/vendor/depot_tools/third_party/__init__.py +5 -0
  541. data/vendor/depot_tools/third_party/colorama/LICENSE.txt +27 -0
  542. data/vendor/depot_tools/third_party/colorama/README.chromium +12 -0
  543. data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
  544. data/vendor/depot_tools/third_party/colorama/__init__.py +6 -0
  545. data/vendor/depot_tools/third_party/colorama/ansi.py +102 -0
  546. data/vendor/depot_tools/third_party/colorama/ansitowin32.py +257 -0
  547. data/vendor/depot_tools/third_party/colorama/initialise.py +80 -0
  548. data/vendor/depot_tools/third_party/colorama/win32.py +152 -0
  549. data/vendor/depot_tools/third_party/colorama/winterm.py +169 -0
  550. data/vendor/depot_tools/third_party/coverage/AUTHORS.txt +43 -0
  551. data/vendor/depot_tools/third_party/coverage/PKG-INFO +41 -0
  552. data/vendor/depot_tools/third_party/coverage/README.chromium +13 -0
  553. data/vendor/depot_tools/third_party/coverage/__init__.py +120 -0
  554. data/vendor/depot_tools/third_party/coverage/__main__.py +4 -0
  555. data/vendor/depot_tools/third_party/coverage/annotate.py +101 -0
  556. data/vendor/depot_tools/third_party/coverage/backward.py +184 -0
  557. data/vendor/depot_tools/third_party/coverage/bytecode.py +75 -0
  558. data/vendor/depot_tools/third_party/coverage/cmdline.py +740 -0
  559. data/vendor/depot_tools/third_party/coverage/codeunit.py +145 -0
  560. data/vendor/depot_tools/third_party/coverage/collector.py +353 -0
  561. data/vendor/depot_tools/third_party/coverage/config.py +213 -0
  562. data/vendor/depot_tools/third_party/coverage/control.py +776 -0
  563. data/vendor/depot_tools/third_party/coverage/data.py +278 -0
  564. data/vendor/depot_tools/third_party/coverage/debug.py +54 -0
  565. data/vendor/depot_tools/third_party/coverage/execfile.py +171 -0
  566. data/vendor/depot_tools/third_party/coverage/files.py +309 -0
  567. data/vendor/depot_tools/third_party/coverage/fullcoverage/encodings.py +57 -0
  568. data/vendor/depot_tools/third_party/coverage/html.py +387 -0
  569. data/vendor/depot_tools/third_party/coverage/htmlfiles/coverage_html.js +376 -0
  570. data/vendor/depot_tools/third_party/coverage/htmlfiles/index.html +104 -0
  571. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery-1.4.3.min.js +166 -0
  572. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.hotkeys.js +99 -0
  573. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.isonscreen.js +53 -0
  574. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.min.js +166 -0
  575. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.tablesorter.min.js +2 -0
  576. data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_closed.png +0 -0
  577. data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_open.png +0 -0
  578. data/vendor/depot_tools/third_party/coverage/htmlfiles/pyfile.html +90 -0
  579. data/vendor/depot_tools/third_party/coverage/htmlfiles/style.css +300 -0
  580. data/vendor/depot_tools/third_party/coverage/misc.py +163 -0
  581. data/vendor/depot_tools/third_party/coverage/parser.py +666 -0
  582. data/vendor/depot_tools/third_party/coverage/phystokens.py +208 -0
  583. data/vendor/depot_tools/third_party/coverage/report.py +92 -0
  584. data/vendor/depot_tools/third_party/coverage/results.py +286 -0
  585. data/vendor/depot_tools/third_party/coverage/summary.py +86 -0
  586. data/vendor/depot_tools/third_party/coverage/templite.py +166 -0
  587. data/vendor/depot_tools/third_party/coverage/version.py +9 -0
  588. data/vendor/depot_tools/third_party/coverage/xmlreport.py +155 -0
  589. data/vendor/depot_tools/third_party/httplib2/LICENSE +1339 -0
  590. data/vendor/depot_tools/third_party/httplib2/README.chromium +15 -0
  591. data/vendor/depot_tools/third_party/httplib2/__init__.py +1780 -0
  592. data/vendor/depot_tools/third_party/httplib2/cacerts.txt +2196 -0
  593. data/vendor/depot_tools/third_party/httplib2/iri2uri.py +110 -0
  594. data/vendor/depot_tools/third_party/httplib2/socks.py +448 -0
  595. data/vendor/depot_tools/third_party/repo/COPYING +202 -0
  596. data/vendor/depot_tools/third_party/repo/README.chromium +4 -0
  597. data/vendor/depot_tools/third_party/repo/__init__.py +0 -0
  598. data/vendor/depot_tools/third_party/repo/progress.py +117 -0
  599. data/vendor/depot_tools/third_party/retry_decorator/LICENSE.google +30 -0
  600. data/vendor/depot_tools/third_party/retry_decorator/__init__.py +0 -0
  601. data/vendor/depot_tools/third_party/retry_decorator/decorators.py +45 -0
  602. data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
  603. data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
  604. data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
  605. data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
  606. data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
  607. data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
  608. data/vendor/depot_tools/third_party/schema/README.rst +382 -0
  609. data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
  610. data/vendor/depot_tools/third_party/schema/schema.py +338 -0
  611. data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
  612. data/vendor/depot_tools/third_party/schema/setup.py +30 -0
  613. data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
  614. data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
  615. data/vendor/depot_tools/third_party/six/LICENSE.txt +18 -0
  616. data/vendor/depot_tools/third_party/six/README.chromium +10 -0
  617. data/vendor/depot_tools/third_party/six/__init__.py +762 -0
  618. data/vendor/depot_tools/update_depot_tools +138 -0
  619. data/vendor/depot_tools/update_depot_tools.bat +65 -0
  620. data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
  621. data/vendor/depot_tools/upload_metrics.py +26 -0
  622. data/vendor/depot_tools/upload_to_google_storage.py +306 -0
  623. data/vendor/depot_tools/vpython +42 -0
  624. data/vendor/depot_tools/vpython.bat +7 -0
  625. data/vendor/depot_tools/vpython3 +55 -0
  626. data/vendor/depot_tools/vpython3.bat +12 -0
  627. data/vendor/depot_tools/watchlists.py +141 -0
  628. data/vendor/depot_tools/weekly +54 -0
  629. data/vendor/depot_tools/win32imports.py +61 -0
  630. data/vendor/depot_tools/win_toolchain/OWNERS +2 -0
  631. data/vendor/depot_tools/win_toolchain/README.md +74 -0
  632. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +599 -0
  633. data/vendor/depot_tools/win_toolchain/package_from_installed.py +524 -0
  634. data/vendor/depot_tools/wtf +81 -0
  635. data/vendor/depot_tools/yapf +21 -0
  636. data/vendor/depot_tools/yapf.bat +12 -0
  637. data/vendor/depot_tools/zsh-goodies/README +6 -0
  638. data/vendor/depot_tools/zsh-goodies/_gclient +14 -0
  639. metadata +729 -0
@@ -0,0 +1,184 @@
1
+ """Add things to old Pythons so I can pretend they are newer."""
2
+
3
+ # This file does lots of tricky stuff, so disable a bunch of lintisms.
4
+ # pylint: disable=F0401,W0611,W0622
5
+ # F0401: Unable to import blah
6
+ # W0611: Unused import blah
7
+ # W0622: Redefining built-in blah
8
+
9
+ import os, re, sys
10
+
11
+ # Python 2.3 doesn't have `set`
12
+ try:
13
+ set = set # new in 2.4
14
+ except NameError:
15
+ from sets import Set as set
16
+
17
+ # Python 2.3 doesn't have `sorted`.
18
+ try:
19
+ sorted = sorted
20
+ except NameError:
21
+ def sorted(iterable):
22
+ """A 2.3-compatible implementation of `sorted`."""
23
+ lst = list(iterable)
24
+ lst.sort()
25
+ return lst
26
+
27
+ # Python 2.3 doesn't have `reversed`.
28
+ try:
29
+ reversed = reversed
30
+ except NameError:
31
+ def reversed(iterable):
32
+ """A 2.3-compatible implementation of `reversed`."""
33
+ lst = list(iterable)
34
+ return lst[::-1]
35
+
36
+ # rpartition is new in 2.5
37
+ try:
38
+ "".rpartition
39
+ except AttributeError:
40
+ def rpartition(s, sep):
41
+ """Implement s.rpartition(sep) for old Pythons."""
42
+ i = s.rfind(sep)
43
+ if i == -1:
44
+ return ('', '', s)
45
+ else:
46
+ return (s[:i], sep, s[i+len(sep):])
47
+ else:
48
+ def rpartition(s, sep):
49
+ """A common interface for new Pythons."""
50
+ return s.rpartition(sep)
51
+
52
+ # Pythons 2 and 3 differ on where to get StringIO
53
+ try:
54
+ from cStringIO import StringIO
55
+ BytesIO = StringIO
56
+ except ImportError:
57
+ from io import StringIO, BytesIO
58
+
59
+ # What's a string called?
60
+ try:
61
+ string_class = basestring
62
+ except NameError:
63
+ string_class = str
64
+
65
+ # Where do pickles come from?
66
+ try:
67
+ import cPickle as pickle
68
+ except ImportError:
69
+ import pickle
70
+
71
+ # range or xrange?
72
+ try:
73
+ range = xrange
74
+ except NameError:
75
+ range = range
76
+
77
+ # A function to iterate listlessly over a dict's items.
78
+ try:
79
+ {}.iteritems
80
+ except AttributeError:
81
+ def iitems(d):
82
+ """Produce the items from dict `d`."""
83
+ return d.items()
84
+ else:
85
+ def iitems(d):
86
+ """Produce the items from dict `d`."""
87
+ return d.iteritems()
88
+
89
+ # Exec is a statement in Py2, a function in Py3
90
+ if sys.version_info >= (3, 0):
91
+ def exec_code_object(code, global_map):
92
+ """A wrapper around exec()."""
93
+ exec(code, global_map)
94
+ else:
95
+ # OK, this is pretty gross. In Py2, exec was a statement, but that will
96
+ # be a syntax error if we try to put it in a Py3 file, even if it is never
97
+ # executed. So hide it inside an evaluated string literal instead.
98
+ eval(
99
+ compile(
100
+ "def exec_code_object(code, global_map):\n"
101
+ " exec code in global_map\n",
102
+ "<exec_function>", "exec"
103
+ )
104
+ )
105
+
106
+ # Reading Python source and interpreting the coding comment is a big deal.
107
+ if sys.version_info >= (3, 0):
108
+ # Python 3.2 provides `tokenize.open`, the best way to open source files.
109
+ import tokenize
110
+ try:
111
+ open_source = tokenize.open # pylint: disable=E1101
112
+ except AttributeError:
113
+ from io import TextIOWrapper
114
+ detect_encoding = tokenize.detect_encoding # pylint: disable=E1101
115
+ # Copied from the 3.2 stdlib:
116
+ def open_source(fname):
117
+ """Open a file in read only mode using the encoding detected by
118
+ detect_encoding().
119
+ """
120
+ buffer = open(fname, 'rb')
121
+ encoding, _ = detect_encoding(buffer.readline)
122
+ buffer.seek(0)
123
+ text = TextIOWrapper(buffer, encoding, line_buffering=True)
124
+ text.mode = 'r'
125
+ return text
126
+ else:
127
+ def open_source(fname):
128
+ """Open a source file the best way."""
129
+ return open(fname, "rU")
130
+
131
+
132
+ # Python 3.x is picky about bytes and strings, so provide methods to
133
+ # get them right, and make them no-ops in 2.x
134
+ if sys.version_info >= (3, 0):
135
+ def to_bytes(s):
136
+ """Convert string `s` to bytes."""
137
+ return s.encode('utf8')
138
+
139
+ def to_string(b):
140
+ """Convert bytes `b` to a string."""
141
+ return b.decode('utf8')
142
+
143
+ def binary_bytes(byte_values):
144
+ """Produce a byte string with the ints from `byte_values`."""
145
+ return bytes(byte_values)
146
+
147
+ def byte_to_int(byte_value):
148
+ """Turn an element of a bytes object into an int."""
149
+ return byte_value
150
+
151
+ def bytes_to_ints(bytes_value):
152
+ """Turn a bytes object into a sequence of ints."""
153
+ # In Py3, iterating bytes gives ints.
154
+ return bytes_value
155
+
156
+ else:
157
+ def to_bytes(s):
158
+ """Convert string `s` to bytes (no-op in 2.x)."""
159
+ return s
160
+
161
+ def to_string(b):
162
+ """Convert bytes `b` to a string (no-op in 2.x)."""
163
+ return b
164
+
165
+ def binary_bytes(byte_values):
166
+ """Produce a byte string with the ints from `byte_values`."""
167
+ return "".join([chr(b) for b in byte_values])
168
+
169
+ def byte_to_int(byte_value):
170
+ """Turn an element of a bytes object into an int."""
171
+ return ord(byte_value)
172
+
173
+ def bytes_to_ints(bytes_value):
174
+ """Turn a bytes object into a sequence of ints."""
175
+ for byte in bytes_value:
176
+ yield ord(byte)
177
+
178
+ # Md5 is available in different places.
179
+ try:
180
+ import hashlib
181
+ md5 = hashlib.md5
182
+ except ImportError:
183
+ import md5
184
+ md5 = md5.new
@@ -0,0 +1,75 @@
1
+ """Bytecode manipulation for coverage.py"""
2
+
3
+ import opcode, types
4
+
5
+ from coverage.backward import byte_to_int
6
+
7
+ class ByteCode(object):
8
+ """A single bytecode."""
9
+ def __init__(self):
10
+ # The offset of this bytecode in the code object.
11
+ self.offset = -1
12
+
13
+ # The opcode, defined in the `opcode` module.
14
+ self.op = -1
15
+
16
+ # The argument, a small integer, whose meaning depends on the opcode.
17
+ self.arg = -1
18
+
19
+ # The offset in the code object of the next bytecode.
20
+ self.next_offset = -1
21
+
22
+ # The offset to jump to.
23
+ self.jump_to = -1
24
+
25
+
26
+ class ByteCodes(object):
27
+ """Iterator over byte codes in `code`.
28
+
29
+ Returns `ByteCode` objects.
30
+
31
+ """
32
+ # pylint: disable=R0924
33
+ def __init__(self, code):
34
+ self.code = code
35
+
36
+ def __getitem__(self, i):
37
+ return byte_to_int(self.code[i])
38
+
39
+ def __iter__(self):
40
+ offset = 0
41
+ while offset < len(self.code):
42
+ bc = ByteCode()
43
+ bc.op = self[offset]
44
+ bc.offset = offset
45
+
46
+ next_offset = offset+1
47
+ if bc.op >= opcode.HAVE_ARGUMENT:
48
+ bc.arg = self[offset+1] + 256*self[offset+2]
49
+ next_offset += 2
50
+
51
+ label = -1
52
+ if bc.op in opcode.hasjrel:
53
+ label = next_offset + bc.arg
54
+ elif bc.op in opcode.hasjabs:
55
+ label = bc.arg
56
+ bc.jump_to = label
57
+
58
+ bc.next_offset = offset = next_offset
59
+ yield bc
60
+
61
+
62
+ class CodeObjects(object):
63
+ """Iterate over all the code objects in `code`."""
64
+ def __init__(self, code):
65
+ self.stack = [code]
66
+
67
+ def __iter__(self):
68
+ while self.stack:
69
+ # We're going to return the code object on the stack, but first
70
+ # push its children for later returning.
71
+ code = self.stack.pop()
72
+ for c in code.co_consts:
73
+ if isinstance(c, types.CodeType):
74
+ self.stack.append(c)
75
+ yield code
@@ -0,0 +1,740 @@
1
+ """Command-line support for Coverage."""
2
+
3
+ import optparse, os, sys, traceback
4
+
5
+ from coverage.backward import sorted # pylint: disable=W0622
6
+ from coverage.execfile import run_python_file, run_python_module
7
+ from coverage.misc import CoverageException, ExceptionDuringRun, NoSource
8
+ from coverage.debug import info_formatter
9
+
10
+
11
+ class Opts(object):
12
+ """A namespace class for individual options we'll build parsers from."""
13
+
14
+ append = optparse.make_option(
15
+ '-a', '--append', action='store_false', dest="erase_first",
16
+ help="Append coverage data to .coverage, otherwise it is started "
17
+ "clean with each run."
18
+ )
19
+ branch = optparse.make_option(
20
+ '', '--branch', action='store_true',
21
+ help="Measure branch coverage in addition to statement coverage."
22
+ )
23
+ debug = optparse.make_option(
24
+ '', '--debug', action='store', metavar="OPTS",
25
+ help="Debug options, separated by commas"
26
+ )
27
+ directory = optparse.make_option(
28
+ '-d', '--directory', action='store', metavar="DIR",
29
+ help="Write the output files to DIR."
30
+ )
31
+ fail_under = optparse.make_option(
32
+ '', '--fail-under', action='store', metavar="MIN", type="int",
33
+ help="Exit with a status of 2 if the total coverage is less than MIN."
34
+ )
35
+ help = optparse.make_option(
36
+ '-h', '--help', action='store_true',
37
+ help="Get help on this command."
38
+ )
39
+ ignore_errors = optparse.make_option(
40
+ '-i', '--ignore-errors', action='store_true',
41
+ help="Ignore errors while reading source files."
42
+ )
43
+ include = optparse.make_option(
44
+ '', '--include', action='store',
45
+ metavar="PAT1,PAT2,...",
46
+ help="Include files only when their filename path matches one of "
47
+ "these patterns. Usually needs quoting on the command line."
48
+ )
49
+ pylib = optparse.make_option(
50
+ '-L', '--pylib', action='store_true',
51
+ help="Measure coverage even inside the Python installed library, "
52
+ "which isn't done by default."
53
+ )
54
+ show_missing = optparse.make_option(
55
+ '-m', '--show-missing', action='store_true',
56
+ help="Show line numbers of statements in each module that weren't "
57
+ "executed."
58
+ )
59
+ old_omit = optparse.make_option(
60
+ '-o', '--omit', action='store',
61
+ metavar="PAT1,PAT2,...",
62
+ help="Omit files when their filename matches one of these patterns. "
63
+ "Usually needs quoting on the command line."
64
+ )
65
+ omit = optparse.make_option(
66
+ '', '--omit', action='store',
67
+ metavar="PAT1,PAT2,...",
68
+ help="Omit files when their filename matches one of these patterns. "
69
+ "Usually needs quoting on the command line."
70
+ )
71
+ output_xml = optparse.make_option(
72
+ '-o', '', action='store', dest="outfile",
73
+ metavar="OUTFILE",
74
+ help="Write the XML report to this file. Defaults to 'coverage.xml'"
75
+ )
76
+ parallel_mode = optparse.make_option(
77
+ '-p', '--parallel-mode', action='store_true',
78
+ help="Append the machine name, process id and random number to the "
79
+ ".coverage data file name to simplify collecting data from "
80
+ "many processes."
81
+ )
82
+ module = optparse.make_option(
83
+ '-m', '--module', action='store_true',
84
+ help="<pyfile> is an importable Python module, not a script path, "
85
+ "to be run as 'python -m' would run it."
86
+ )
87
+ rcfile = optparse.make_option(
88
+ '', '--rcfile', action='store',
89
+ help="Specify configuration file. Defaults to '.coveragerc'"
90
+ )
91
+ source = optparse.make_option(
92
+ '', '--source', action='store', metavar="SRC1,SRC2,...",
93
+ help="A list of packages or directories of code to be measured."
94
+ )
95
+ timid = optparse.make_option(
96
+ '', '--timid', action='store_true',
97
+ help="Use a simpler but slower trace method. Try this if you get "
98
+ "seemingly impossible results!"
99
+ )
100
+ title = optparse.make_option(
101
+ '', '--title', action='store', metavar="TITLE",
102
+ help="A text string to use as the title on the HTML."
103
+ )
104
+ version = optparse.make_option(
105
+ '', '--version', action='store_true',
106
+ help="Display version information and exit."
107
+ )
108
+
109
+
110
+ class CoverageOptionParser(optparse.OptionParser, object):
111
+ """Base OptionParser for coverage.
112
+
113
+ Problems don't exit the program.
114
+ Defaults are initialized for all options.
115
+
116
+ """
117
+
118
+ def __init__(self, *args, **kwargs):
119
+ super(CoverageOptionParser, self).__init__(
120
+ add_help_option=False, *args, **kwargs
121
+ )
122
+ self.set_defaults(
123
+ actions=[],
124
+ branch=None,
125
+ debug=None,
126
+ directory=None,
127
+ fail_under=None,
128
+ help=None,
129
+ ignore_errors=None,
130
+ include=None,
131
+ omit=None,
132
+ parallel_mode=None,
133
+ module=None,
134
+ pylib=None,
135
+ rcfile=True,
136
+ show_missing=None,
137
+ source=None,
138
+ timid=None,
139
+ title=None,
140
+ erase_first=None,
141
+ version=None,
142
+ )
143
+
144
+ self.disable_interspersed_args()
145
+ self.help_fn = self.help_noop
146
+
147
+ def help_noop(self, error=None, topic=None, parser=None):
148
+ """No-op help function."""
149
+ pass
150
+
151
+ class OptionParserError(Exception):
152
+ """Used to stop the optparse error handler ending the process."""
153
+ pass
154
+
155
+ def parse_args(self, args=None, options=None):
156
+ """Call optparse.parse_args, but return a triple:
157
+
158
+ (ok, options, args)
159
+
160
+ """
161
+ try:
162
+ options, args = \
163
+ super(CoverageOptionParser, self).parse_args(args, options)
164
+ except self.OptionParserError:
165
+ return False, None, None
166
+ return True, options, args
167
+
168
+ def error(self, msg):
169
+ """Override optparse.error so sys.exit doesn't get called."""
170
+ self.help_fn(msg)
171
+ raise self.OptionParserError
172
+
173
+
174
+ class ClassicOptionParser(CoverageOptionParser):
175
+ """Command-line parser for coverage.py classic arguments."""
176
+
177
+ def __init__(self):
178
+ super(ClassicOptionParser, self).__init__()
179
+
180
+ self.add_action('-a', '--annotate', 'annotate')
181
+ self.add_action('-b', '--html', 'html')
182
+ self.add_action('-c', '--combine', 'combine')
183
+ self.add_action('-e', '--erase', 'erase')
184
+ self.add_action('-r', '--report', 'report')
185
+ self.add_action('-x', '--execute', 'execute')
186
+
187
+ self.add_options([
188
+ Opts.directory,
189
+ Opts.help,
190
+ Opts.ignore_errors,
191
+ Opts.pylib,
192
+ Opts.show_missing,
193
+ Opts.old_omit,
194
+ Opts.parallel_mode,
195
+ Opts.timid,
196
+ Opts.version,
197
+ ])
198
+
199
+ def add_action(self, dash, dashdash, action_code):
200
+ """Add a specialized option that is the action to execute."""
201
+ option = self.add_option(dash, dashdash, action='callback',
202
+ callback=self._append_action
203
+ )
204
+ option.action_code = action_code
205
+
206
+ def _append_action(self, option, opt_unused, value_unused, parser):
207
+ """Callback for an option that adds to the `actions` list."""
208
+ parser.values.actions.append(option.action_code)
209
+
210
+
211
+ class CmdOptionParser(CoverageOptionParser):
212
+ """Parse one of the new-style commands for coverage.py."""
213
+
214
+ def __init__(self, action, options=None, defaults=None, usage=None,
215
+ cmd=None, description=None
216
+ ):
217
+ """Create an OptionParser for a coverage command.
218
+
219
+ `action` is the slug to put into `options.actions`.
220
+ `options` is a list of Option's for the command.
221
+ `defaults` is a dict of default value for options.
222
+ `usage` is the usage string to display in help.
223
+ `cmd` is the command name, if different than `action`.
224
+ `description` is the description of the command, for the help text.
225
+
226
+ """
227
+ if usage:
228
+ usage = "%prog " + usage
229
+ super(CmdOptionParser, self).__init__(
230
+ prog="coverage %s" % (cmd or action),
231
+ usage=usage,
232
+ description=description,
233
+ )
234
+ self.set_defaults(actions=[action], **(defaults or {}))
235
+ if options:
236
+ self.add_options(options)
237
+ self.cmd = cmd or action
238
+
239
+ def __eq__(self, other):
240
+ # A convenience equality, so that I can put strings in unit test
241
+ # results, and they will compare equal to objects.
242
+ return (other == "<CmdOptionParser:%s>" % self.cmd)
243
+
244
+ GLOBAL_ARGS = [
245
+ Opts.rcfile,
246
+ Opts.help,
247
+ ]
248
+
249
+ CMDS = {
250
+ 'annotate': CmdOptionParser("annotate",
251
+ [
252
+ Opts.directory,
253
+ Opts.ignore_errors,
254
+ Opts.omit,
255
+ Opts.include,
256
+ ] + GLOBAL_ARGS,
257
+ usage = "[options] [modules]",
258
+ description = "Make annotated copies of the given files, marking "
259
+ "statements that are executed with > and statements that are "
260
+ "missed with !."
261
+ ),
262
+
263
+ 'combine': CmdOptionParser("combine", GLOBAL_ARGS,
264
+ usage = " ",
265
+ description = "Combine data from multiple coverage files collected "
266
+ "with 'run -p'. The combined results are written to a single "
267
+ "file representing the union of the data."
268
+ ),
269
+
270
+ 'debug': CmdOptionParser("debug", GLOBAL_ARGS,
271
+ usage = "<topic>",
272
+ description = "Display information on the internals of coverage.py, "
273
+ "for diagnosing problems. "
274
+ "Topics are 'data' to show a summary of the collected data, "
275
+ "or 'sys' to show installation information."
276
+ ),
277
+
278
+ 'erase': CmdOptionParser("erase", GLOBAL_ARGS,
279
+ usage = " ",
280
+ description = "Erase previously collected coverage data."
281
+ ),
282
+
283
+ 'help': CmdOptionParser("help", GLOBAL_ARGS,
284
+ usage = "[command]",
285
+ description = "Describe how to use coverage.py"
286
+ ),
287
+
288
+ 'html': CmdOptionParser("html",
289
+ [
290
+ Opts.directory,
291
+ Opts.fail_under,
292
+ Opts.ignore_errors,
293
+ Opts.omit,
294
+ Opts.include,
295
+ Opts.title,
296
+ ] + GLOBAL_ARGS,
297
+ usage = "[options] [modules]",
298
+ description = "Create an HTML report of the coverage of the files. "
299
+ "Each file gets its own page, with the source decorated to show "
300
+ "executed, excluded, and missed lines."
301
+ ),
302
+
303
+ 'report': CmdOptionParser("report",
304
+ [
305
+ Opts.fail_under,
306
+ Opts.ignore_errors,
307
+ Opts.omit,
308
+ Opts.include,
309
+ Opts.show_missing,
310
+ ] + GLOBAL_ARGS,
311
+ usage = "[options] [modules]",
312
+ description = "Report coverage statistics on modules."
313
+ ),
314
+
315
+ 'run': CmdOptionParser("execute",
316
+ [
317
+ Opts.append,
318
+ Opts.branch,
319
+ Opts.debug,
320
+ Opts.pylib,
321
+ Opts.parallel_mode,
322
+ Opts.module,
323
+ Opts.timid,
324
+ Opts.source,
325
+ Opts.omit,
326
+ Opts.include,
327
+ ] + GLOBAL_ARGS,
328
+ defaults = {'erase_first': True},
329
+ cmd = "run",
330
+ usage = "[options] <pyfile> [program options]",
331
+ description = "Run a Python program, measuring code execution."
332
+ ),
333
+
334
+ 'xml': CmdOptionParser("xml",
335
+ [
336
+ Opts.fail_under,
337
+ Opts.ignore_errors,
338
+ Opts.omit,
339
+ Opts.include,
340
+ Opts.output_xml,
341
+ ] + GLOBAL_ARGS,
342
+ cmd = "xml",
343
+ usage = "[options] [modules]",
344
+ description = "Generate an XML report of coverage results."
345
+ ),
346
+ }
347
+
348
+
349
+ OK, ERR, FAIL_UNDER = 0, 1, 2
350
+
351
+
352
+ class CoverageScript(object):
353
+ """The command-line interface to Coverage."""
354
+
355
+ def __init__(self, _covpkg=None, _run_python_file=None,
356
+ _run_python_module=None, _help_fn=None):
357
+ # _covpkg is for dependency injection, so we can test this code.
358
+ if _covpkg:
359
+ self.covpkg = _covpkg
360
+ else:
361
+ import coverage
362
+ self.covpkg = coverage
363
+
364
+ # For dependency injection:
365
+ self.run_python_file = _run_python_file or run_python_file
366
+ self.run_python_module = _run_python_module or run_python_module
367
+ self.help_fn = _help_fn or self.help
368
+ self.classic = False
369
+
370
+ self.coverage = None
371
+
372
+ def command_line(self, argv):
373
+ """The bulk of the command line interface to Coverage.
374
+
375
+ `argv` is the argument list to process.
376
+
377
+ Returns 0 if all is well, 1 if something went wrong.
378
+
379
+ """
380
+ # Collect the command-line options.
381
+ if not argv:
382
+ self.help_fn(topic='minimum_help')
383
+ return OK
384
+
385
+ # The command syntax we parse depends on the first argument. Classic
386
+ # syntax always starts with an option.
387
+ self.classic = argv[0].startswith('-')
388
+ if self.classic:
389
+ parser = ClassicOptionParser()
390
+ else:
391
+ parser = CMDS.get(argv[0])
392
+ if not parser:
393
+ self.help_fn("Unknown command: '%s'" % argv[0])
394
+ return ERR
395
+ argv = argv[1:]
396
+
397
+ parser.help_fn = self.help_fn
398
+ ok, options, args = parser.parse_args(argv)
399
+ if not ok:
400
+ return ERR
401
+
402
+ # Handle help and version.
403
+ if self.do_help(options, args, parser):
404
+ return OK
405
+
406
+ # Check for conflicts and problems in the options.
407
+ if not self.args_ok(options, args):
408
+ return ERR
409
+
410
+ # Listify the list options.
411
+ source = unshell_list(options.source)
412
+ omit = unshell_list(options.omit)
413
+ include = unshell_list(options.include)
414
+ debug = unshell_list(options.debug)
415
+
416
+ # Do something.
417
+ self.coverage = self.covpkg.coverage(
418
+ data_suffix = options.parallel_mode,
419
+ cover_pylib = options.pylib,
420
+ timid = options.timid,
421
+ branch = options.branch,
422
+ config_file = options.rcfile,
423
+ source = source,
424
+ omit = omit,
425
+ include = include,
426
+ debug = debug,
427
+ )
428
+
429
+ if 'debug' in options.actions:
430
+ return self.do_debug(args)
431
+
432
+ if 'erase' in options.actions or options.erase_first:
433
+ self.coverage.erase()
434
+ else:
435
+ self.coverage.load()
436
+
437
+ if 'execute' in options.actions:
438
+ self.do_execute(options, args)
439
+
440
+ if 'combine' in options.actions:
441
+ self.coverage.combine()
442
+ self.coverage.save()
443
+
444
+ # Remaining actions are reporting, with some common options.
445
+ report_args = dict(
446
+ morfs = args,
447
+ ignore_errors = options.ignore_errors,
448
+ omit = omit,
449
+ include = include,
450
+ )
451
+
452
+ if 'report' in options.actions:
453
+ total = self.coverage.report(
454
+ show_missing=options.show_missing, **report_args)
455
+ if 'annotate' in options.actions:
456
+ self.coverage.annotate(
457
+ directory=options.directory, **report_args)
458
+ if 'html' in options.actions:
459
+ total = self.coverage.html_report(
460
+ directory=options.directory, title=options.title,
461
+ **report_args)
462
+ if 'xml' in options.actions:
463
+ outfile = options.outfile
464
+ total = self.coverage.xml_report(outfile=outfile, **report_args)
465
+
466
+ if options.fail_under is not None:
467
+ if total >= options.fail_under:
468
+ return OK
469
+ else:
470
+ return FAIL_UNDER
471
+ else:
472
+ return OK
473
+
474
+ def help(self, error=None, topic=None, parser=None):
475
+ """Display an error message, or the named topic."""
476
+ assert error or topic or parser
477
+ if error:
478
+ print(error)
479
+ print("Use 'coverage help' for help.")
480
+ elif parser:
481
+ print(parser.format_help().strip())
482
+ else:
483
+ help_msg = HELP_TOPICS.get(topic, '').strip()
484
+ if help_msg:
485
+ print(help_msg % self.covpkg.__dict__)
486
+ else:
487
+ print("Don't know topic %r" % topic)
488
+
489
+ def do_help(self, options, args, parser):
490
+ """Deal with help requests.
491
+
492
+ Return True if it handled the request, False if not.
493
+
494
+ """
495
+ # Handle help.
496
+ if options.help:
497
+ if self.classic:
498
+ self.help_fn(topic='help')
499
+ else:
500
+ self.help_fn(parser=parser)
501
+ return True
502
+
503
+ if "help" in options.actions:
504
+ if args:
505
+ for a in args:
506
+ parser = CMDS.get(a)
507
+ if parser:
508
+ self.help_fn(parser=parser)
509
+ else:
510
+ self.help_fn(topic=a)
511
+ else:
512
+ self.help_fn(topic='help')
513
+ return True
514
+
515
+ # Handle version.
516
+ if options.version:
517
+ self.help_fn(topic='version')
518
+ return True
519
+
520
+ return False
521
+
522
+ def args_ok(self, options, args):
523
+ """Check for conflicts and problems in the options.
524
+
525
+ Returns True if everything is ok, or False if not.
526
+
527
+ """
528
+ for i in ['erase', 'execute']:
529
+ for j in ['annotate', 'html', 'report', 'combine']:
530
+ if (i in options.actions) and (j in options.actions):
531
+ self.help_fn("You can't specify the '%s' and '%s' "
532
+ "options at the same time." % (i, j))
533
+ return False
534
+
535
+ if not options.actions:
536
+ self.help_fn(
537
+ "You must specify at least one of -e, -x, -c, -r, -a, or -b."
538
+ )
539
+ return False
540
+ args_allowed = (
541
+ 'execute' in options.actions or
542
+ 'annotate' in options.actions or
543
+ 'html' in options.actions or
544
+ 'debug' in options.actions or
545
+ 'report' in options.actions or
546
+ 'xml' in options.actions
547
+ )
548
+ if not args_allowed and args:
549
+ self.help_fn("Unexpected arguments: %s" % " ".join(args))
550
+ return False
551
+
552
+ if 'execute' in options.actions and not args:
553
+ self.help_fn("Nothing to do.")
554
+ return False
555
+
556
+ return True
557
+
558
+ def do_execute(self, options, args):
559
+ """Implementation of 'coverage run'."""
560
+
561
+ # Set the first path element properly.
562
+ old_path0 = sys.path[0]
563
+
564
+ # Run the script.
565
+ self.coverage.start()
566
+ code_ran = True
567
+ try:
568
+ try:
569
+ if options.module:
570
+ sys.path[0] = ''
571
+ self.run_python_module(args[0], args)
572
+ else:
573
+ filename = args[0]
574
+ sys.path[0] = os.path.abspath(os.path.dirname(filename))
575
+ self.run_python_file(filename, args)
576
+ except NoSource:
577
+ code_ran = False
578
+ raise
579
+ finally:
580
+ self.coverage.stop()
581
+ if code_ran:
582
+ self.coverage.save()
583
+
584
+ # Restore the old path
585
+ sys.path[0] = old_path0
586
+
587
+ def do_debug(self, args):
588
+ """Implementation of 'coverage debug'."""
589
+
590
+ if not args:
591
+ self.help_fn("What information would you like: data, sys?")
592
+ return ERR
593
+ for info in args:
594
+ if info == 'sys':
595
+ print("-- sys ----------------------------------------")
596
+ for line in info_formatter(self.coverage.sysinfo()):
597
+ print(" %s" % line)
598
+ elif info == 'data':
599
+ print("-- data ---------------------------------------")
600
+ self.coverage.load()
601
+ print("path: %s" % self.coverage.data.filename)
602
+ print("has_arcs: %r" % self.coverage.data.has_arcs())
603
+ summary = self.coverage.data.summary(fullpath=True)
604
+ if summary:
605
+ filenames = sorted(summary.keys())
606
+ print("\n%d files:" % len(filenames))
607
+ for f in filenames:
608
+ print("%s: %d lines" % (f, summary[f]))
609
+ else:
610
+ print("No data collected")
611
+ else:
612
+ self.help_fn("Don't know what you mean by %r" % info)
613
+ return ERR
614
+ return OK
615
+
616
+
617
+ def unshell_list(s):
618
+ """Turn a command-line argument into a list."""
619
+ if not s:
620
+ return None
621
+ if sys.platform == 'win32':
622
+ # When running coverage as coverage.exe, some of the behavior
623
+ # of the shell is emulated: wildcards are expanded into a list of
624
+ # filenames. So you have to single-quote patterns on the command
625
+ # line, but (not) helpfully, the single quotes are included in the
626
+ # argument, so we have to strip them off here.
627
+ s = s.strip("'")
628
+ return s.split(',')
629
+
630
+
631
+ HELP_TOPICS = {
632
+ # -------------------------
633
+ 'classic':
634
+ r"""Coverage.py version %(__version__)s
635
+ Measure, collect, and report on code coverage in Python programs.
636
+
637
+ Usage:
638
+
639
+ coverage -x [-p] [-L] [--timid] MODULE.py [ARG1 ARG2 ...]
640
+ Execute the module, passing the given command-line arguments, collecting
641
+ coverage data. With the -p option, include the machine name and process
642
+ id in the .coverage file name. With -L, measure coverage even inside the
643
+ Python installed library, which isn't done by default. With --timid, use a
644
+ simpler but slower trace method.
645
+
646
+ coverage -e
647
+ Erase collected coverage data.
648
+
649
+ coverage -c
650
+ Combine data from multiple coverage files (as created by -p option above)
651
+ and store it into a single file representing the union of the coverage.
652
+
653
+ coverage -r [-m] [-i] [-o DIR,...] [FILE1 FILE2 ...]
654
+ Report on the statement coverage for the given files. With the -m
655
+ option, show line numbers of the statements that weren't executed.
656
+
657
+ coverage -b -d DIR [-i] [-o DIR,...] [FILE1 FILE2 ...]
658
+ Create an HTML report of the coverage of the given files. Each file gets
659
+ its own page, with the file listing decorated to show executed, excluded,
660
+ and missed lines.
661
+
662
+ coverage -a [-d DIR] [-i] [-o DIR,...] [FILE1 FILE2 ...]
663
+ Make annotated copies of the given files, marking statements that
664
+ are executed with > and statements that are missed with !.
665
+
666
+ -d DIR
667
+ Write output files for -b or -a to this directory.
668
+
669
+ -i Ignore errors while reporting or annotating.
670
+
671
+ -o DIR,...
672
+ Omit reporting or annotating files when their filename path starts with
673
+ a directory listed in the omit list.
674
+ e.g. coverage -i -r -o c:\python25,lib\enthought\traits
675
+
676
+ Coverage data is saved in the file .coverage by default. Set the
677
+ COVERAGE_FILE environment variable to save it somewhere else.
678
+ """,
679
+ # -------------------------
680
+ 'help': """\
681
+ Coverage.py, version %(__version__)s
682
+ Measure, collect, and report on code coverage in Python programs.
683
+
684
+ usage: coverage <command> [options] [args]
685
+
686
+ Commands:
687
+ annotate Annotate source files with execution information.
688
+ combine Combine a number of data files.
689
+ erase Erase previously collected coverage data.
690
+ help Get help on using coverage.py.
691
+ html Create an HTML report.
692
+ report Report coverage stats on modules.
693
+ run Run a Python program and measure code execution.
694
+ xml Create an XML report of coverage results.
695
+
696
+ Use "coverage help <command>" for detailed help on any command.
697
+ Use "coverage help classic" for help on older command syntax.
698
+ For more information, see %(__url__)s
699
+ """,
700
+ # -------------------------
701
+ 'minimum_help': """\
702
+ Code coverage for Python. Use 'coverage help' for help.
703
+ """,
704
+ # -------------------------
705
+ 'version': """\
706
+ Coverage.py, version %(__version__)s. %(__url__)s
707
+ """,
708
+ }
709
+
710
+
711
+ def main(argv=None):
712
+ """The main entry point to Coverage.
713
+
714
+ This is installed as the script entry point.
715
+
716
+ """
717
+ if argv is None:
718
+ argv = sys.argv[1:]
719
+ try:
720
+ status = CoverageScript().command_line(argv)
721
+ except ExceptionDuringRun:
722
+ # An exception was caught while running the product code. The
723
+ # sys.exc_info() return tuple is packed into an ExceptionDuringRun
724
+ # exception.
725
+ _, err, _ = sys.exc_info()
726
+ traceback.print_exception(*err.args)
727
+ status = ERR
728
+ except CoverageException:
729
+ # A controlled error inside coverage.py: print the message to the user.
730
+ _, err, _ = sys.exc_info()
731
+ print(err)
732
+ status = ERR
733
+ except SystemExit:
734
+ # The user called `sys.exit()`. Exit with their argument, if any.
735
+ _, err, _ = sys.exc_info()
736
+ if err.args:
737
+ status = err.args[0]
738
+ else:
739
+ status = None
740
+ return status