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.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.gitmodules +3 -0
- data/.rspec +3 -0
- data/.travis.yml +45 -0
- data/CHANGELOG.md +111 -0
- data/Gemfile +4 -0
- data/README.md +152 -0
- data/Rakefile +125 -0
- data/appveyor.yml.disabled +36 -0
- data/ext/libv8/arch.rb +20 -0
- data/ext/libv8/builder.rb +106 -0
- data/ext/libv8/extconf.rb +7 -0
- data/ext/libv8/location.rb +89 -0
- data/ext/libv8/paths.rb +28 -0
- data/lib/libv8.rb +9 -0
- data/lib/libv8/version.rb +3 -0
- data/libv8.gemspec +30 -0
- data/scaleway.png +0 -0
- data/spec/location_spec.rb +69 -0
- data/spec/spec_helper.rb +4 -0
- data/thefrontside.png +0 -0
- data/vendor/depot_tools/.cipd_impl.ps1 +129 -0
- data/vendor/depot_tools/.gitattributes +55 -0
- data/vendor/depot_tools/.gitignore +92 -0
- data/vendor/depot_tools/.style.yapf +4 -0
- data/vendor/depot_tools/.vpython +55 -0
- data/vendor/depot_tools/.vpython3 +23 -0
- data/vendor/depot_tools/CROS_OWNERS +7 -0
- data/vendor/depot_tools/GOMA_OWNERS +9 -0
- data/vendor/depot_tools/LICENSE +27 -0
- data/vendor/depot_tools/LUCI_OWNERS +5 -0
- data/vendor/depot_tools/OWNERS +39 -0
- data/vendor/depot_tools/PRESUBMIT.py +150 -0
- data/vendor/depot_tools/README.gclient.md +67 -0
- data/vendor/depot_tools/README.git-cl.md +99 -0
- data/vendor/depot_tools/README.md +78 -0
- data/vendor/depot_tools/WATCHLISTS +26 -0
- data/vendor/depot_tools/auth.py +163 -0
- data/vendor/depot_tools/autoninja +36 -0
- data/vendor/depot_tools/autoninja.bat +33 -0
- data/vendor/depot_tools/autoninja.py +148 -0
- data/vendor/depot_tools/bb +12 -0
- data/vendor/depot_tools/bb.bat +7 -0
- data/vendor/depot_tools/bootstrap/README.md +155 -0
- data/vendor/depot_tools/bootstrap/bootstrap.py +356 -0
- data/vendor/depot_tools/bootstrap/git-bash.template.sh +12 -0
- data/vendor/depot_tools/bootstrap/git.template.bat +5 -0
- data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
- data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
- data/vendor/depot_tools/bootstrap/profile.d.python.sh +20 -0
- data/vendor/depot_tools/bootstrap/python27.bat +46 -0
- data/vendor/depot_tools/bootstrap/python3.bat +46 -0
- data/vendor/depot_tools/bootstrap/win_tools.bat +79 -0
- data/vendor/depot_tools/bootstrap_python3 +35 -0
- data/vendor/depot_tools/breakpad.py +12 -0
- data/vendor/depot_tools/cbuildbot +1 -0
- data/vendor/depot_tools/chrome_set_ver +1 -0
- data/vendor/depot_tools/cipd +247 -0
- data/vendor/depot_tools/cipd.bat +67 -0
- data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
- data/vendor/depot_tools/cipd_bin_setup.sh +22 -0
- data/vendor/depot_tools/cipd_client_version +1 -0
- data/vendor/depot_tools/cipd_client_version.digests +22 -0
- data/vendor/depot_tools/cipd_manifest.txt +63 -0
- data/vendor/depot_tools/cipd_manifest.versions +438 -0
- data/vendor/depot_tools/cit +8 -0
- data/vendor/depot_tools/cit.bat +12 -0
- data/vendor/depot_tools/cit.py +167 -0
- data/vendor/depot_tools/clang-format +8 -0
- data/vendor/depot_tools/clang-format.bat +12 -0
- data/vendor/depot_tools/clang_format.py +79 -0
- data/vendor/depot_tools/clang_format_merge_driver +8 -0
- data/vendor/depot_tools/clang_format_merge_driver.bat +12 -0
- data/vendor/depot_tools/clang_format_merge_driver.py +69 -0
- data/vendor/depot_tools/codereview.settings +6 -0
- data/vendor/depot_tools/compile_single_file +8 -0
- data/vendor/depot_tools/compile_single_file.bat +11 -0
- data/vendor/depot_tools/compile_single_file.py +79 -0
- data/vendor/depot_tools/cpplint.bat +11 -0
- data/vendor/depot_tools/cpplint.py +6097 -0
- data/vendor/depot_tools/cpplint_chromium.py +50 -0
- data/vendor/depot_tools/cros +87 -0
- data/vendor/depot_tools/cros_sdk +1 -0
- data/vendor/depot_tools/crosjobs +13 -0
- data/vendor/depot_tools/detect_host_arch.py +55 -0
- data/vendor/depot_tools/dirmd +12 -0
- data/vendor/depot_tools/dirmd.bat +7 -0
- data/vendor/depot_tools/download_from_google_storage +8 -0
- data/vendor/depot_tools/download_from_google_storage.bat +12 -0
- data/vendor/depot_tools/download_from_google_storage.py +634 -0
- data/vendor/depot_tools/ensure_bootstrap +53 -0
- data/vendor/depot_tools/fetch +21 -0
- data/vendor/depot_tools/fetch.bat +28 -0
- data/vendor/depot_tools/fetch.py +319 -0
- data/vendor/depot_tools/fetch_configs/android.py +34 -0
- data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
- data/vendor/depot_tools/fetch_configs/breakpad.py +44 -0
- data/vendor/depot_tools/fetch_configs/chromium.py +66 -0
- data/vendor/depot_tools/fetch_configs/config_util.py +52 -0
- data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
- data/vendor/depot_tools/fetch_configs/dart.py +45 -0
- data/vendor/depot_tools/fetch_configs/depot_tools.py +44 -0
- data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
- data/vendor/depot_tools/fetch_configs/goma_client.py +41 -0
- data/vendor/depot_tools/fetch_configs/gyp.py +41 -0
- data/vendor/depot_tools/fetch_configs/infra.py +40 -0
- data/vendor/depot_tools/fetch_configs/infra_internal.py +45 -0
- data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
- data/vendor/depot_tools/fetch_configs/ios.py +34 -0
- data/vendor/depot_tools/fetch_configs/ios_internal.py +39 -0
- data/vendor/depot_tools/fetch_configs/nacl.py +48 -0
- data/vendor/depot_tools/fetch_configs/naclports.py +47 -0
- data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
- data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
- data/vendor/depot_tools/fetch_configs/skia.py +41 -0
- data/vendor/depot_tools/fetch_configs/skia_buildbot.py +41 -0
- data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
- data/vendor/depot_tools/fetch_configs/v8.py +44 -0
- data/vendor/depot_tools/fetch_configs/webrtc.py +52 -0
- data/vendor/depot_tools/fetch_configs/webrtc_android.py +34 -0
- data/vendor/depot_tools/fetch_configs/webrtc_ios.py +34 -0
- data/vendor/depot_tools/fix_encoding.py +385 -0
- data/vendor/depot_tools/gclient +38 -0
- data/vendor/depot_tools/gclient-new-workdir.py +124 -0
- data/vendor/depot_tools/gclient.bat +32 -0
- data/vendor/depot_tools/gclient.py +3198 -0
- data/vendor/depot_tools/gclient_completion.sh +76 -0
- data/vendor/depot_tools/gclient_eval.py +891 -0
- data/vendor/depot_tools/gclient_paths.py +152 -0
- data/vendor/depot_tools/gclient_scm.py +1615 -0
- data/vendor/depot_tools/gclient_utils.py +1280 -0
- data/vendor/depot_tools/gerrit_client.py +151 -0
- data/vendor/depot_tools/gerrit_util.py +996 -0
- data/vendor/depot_tools/git-cache +6 -0
- data/vendor/depot_tools/git-cl +6 -0
- data/vendor/depot_tools/git-crrev-parse +53 -0
- data/vendor/depot_tools/git-drover +6 -0
- data/vendor/depot_tools/git-find-releases +6 -0
- data/vendor/depot_tools/git-footers +6 -0
- data/vendor/depot_tools/git-freeze +8 -0
- data/vendor/depot_tools/git-gs +9 -0
- data/vendor/depot_tools/git-hyper-blame +6 -0
- data/vendor/depot_tools/git-map +6 -0
- data/vendor/depot_tools/git-map-branches +6 -0
- data/vendor/depot_tools/git-mark-merge-base +6 -0
- data/vendor/depot_tools/git-nav-downstream +6 -0
- data/vendor/depot_tools/git-nav-upstream +6 -0
- data/vendor/depot_tools/git-new-branch +6 -0
- data/vendor/depot_tools/git-number +6 -0
- data/vendor/depot_tools/git-rebase-update +6 -0
- data/vendor/depot_tools/git-rename-branch +6 -0
- data/vendor/depot_tools/git-reparent-branch +6 -0
- data/vendor/depot_tools/git-retry +8 -0
- data/vendor/depot_tools/git-runhooks +23 -0
- data/vendor/depot_tools/git-squash-branch +6 -0
- data/vendor/depot_tools/git-templates/description +3 -0
- data/vendor/depot_tools/git-templates/hooks/applypatch-msg +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-applypatch +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-checkout +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-commit +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-merge +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-update +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-applypatch +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-auto-gc +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-commit +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-rebase +4 -0
- data/vendor/depot_tools/git-templates/hooks/prepare-commit-msg +4 -0
- data/vendor/depot_tools/git-templates/info/exclude +6 -0
- data/vendor/depot_tools/git-thaw +13 -0
- data/vendor/depot_tools/git-upstream-diff +9 -0
- data/vendor/depot_tools/git_cache.py +786 -0
- data/vendor/depot_tools/git_cl.py +5158 -0
- data/vendor/depot_tools/git_cl_completion.sh +48 -0
- data/vendor/depot_tools/git_common.py +1101 -0
- data/vendor/depot_tools/git_dates.py +62 -0
- data/vendor/depot_tools/git_drover.py +469 -0
- data/vendor/depot_tools/git_find_releases.py +67 -0
- data/vendor/depot_tools/git_footers.py +261 -0
- data/vendor/depot_tools/git_freezer.py +40 -0
- data/vendor/depot_tools/git_hyper_blame.py +391 -0
- data/vendor/depot_tools/git_map.py +166 -0
- data/vendor/depot_tools/git_map_branches.py +354 -0
- data/vendor/depot_tools/git_mark_merge_base.py +73 -0
- data/vendor/depot_tools/git_nav_downstream.py +69 -0
- data/vendor/depot_tools/git_new_branch.py +82 -0
- data/vendor/depot_tools/git_number.py +301 -0
- data/vendor/depot_tools/git_rebase_update.py +351 -0
- data/vendor/depot_tools/git_rename_branch.py +55 -0
- data/vendor/depot_tools/git_reparent_branch.py +101 -0
- data/vendor/depot_tools/git_retry.py +181 -0
- data/vendor/depot_tools/git_squash_branch.py +28 -0
- data/vendor/depot_tools/git_upstream_diff.py +64 -0
- data/vendor/depot_tools/gn +8 -0
- data/vendor/depot_tools/gn.bat +12 -0
- data/vendor/depot_tools/gn.py +78 -0
- data/vendor/depot_tools/goma_auth +12 -0
- data/vendor/depot_tools/goma_auth.bat +8 -0
- data/vendor/depot_tools/goma_ctl +12 -0
- data/vendor/depot_tools/goma_ctl.bat +8 -0
- data/vendor/depot_tools/gsutil.py +190 -0
- data/vendor/depot_tools/gsutil.py.bat +23 -0
- data/vendor/depot_tools/gsutil.vpython +120 -0
- data/vendor/depot_tools/infra/README.md +1 -0
- data/vendor/depot_tools/infra/config/OWNERS +7 -0
- data/vendor/depot_tools/infra/config/README.md +1 -0
- data/vendor/depot_tools/infra/config/recipes.cfg +26 -0
- data/vendor/depot_tools/led +12 -0
- data/vendor/depot_tools/led.bat +7 -0
- data/vendor/depot_tools/lockfile.py +116 -0
- data/vendor/depot_tools/luci-auth +13 -0
- data/vendor/depot_tools/luci-auth.bat +8 -0
- data/vendor/depot_tools/lucicfg +12 -0
- data/vendor/depot_tools/lucicfg.bat +7 -0
- data/vendor/depot_tools/mac_toolchain +12 -0
- data/vendor/depot_tools/man/html/depot_tools.html +934 -0
- data/vendor/depot_tools/man/html/depot_tools_tutorial.html +1593 -0
- data/vendor/depot_tools/man/html/git-cl.html +1033 -0
- data/vendor/depot_tools/man/html/git-drover.html +1048 -0
- data/vendor/depot_tools/man/html/git-footers.html +878 -0
- data/vendor/depot_tools/man/html/git-freeze.html +859 -0
- data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
- data/vendor/depot_tools/man/html/git-map-branches.html +904 -0
- data/vendor/depot_tools/man/html/git-map.html +887 -0
- data/vendor/depot_tools/man/html/git-mark-merge-base.html +826 -0
- data/vendor/depot_tools/man/html/git-nav-downstream.html +844 -0
- data/vendor/depot_tools/man/html/git-nav-upstream.html +853 -0
- data/vendor/depot_tools/man/html/git-new-branch.html +932 -0
- data/vendor/depot_tools/man/html/git-rebase-update.html +961 -0
- data/vendor/depot_tools/man/html/git-rename-branch.html +794 -0
- data/vendor/depot_tools/man/html/git-reparent-branch.html +847 -0
- data/vendor/depot_tools/man/html/git-retry.html +858 -0
- data/vendor/depot_tools/man/html/git-squash-branch.html +881 -0
- data/vendor/depot_tools/man/html/git-thaw.html +794 -0
- data/vendor/depot_tools/man/html/git-upstream-diff.html +923 -0
- data/vendor/depot_tools/man/man1/git-cl.1 +198 -0
- data/vendor/depot_tools/man/man1/git-drover.1 +330 -0
- data/vendor/depot_tools/man/man1/git-footers.1 +144 -0
- data/vendor/depot_tools/man/man1/git-freeze.1 +113 -0
- data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
- data/vendor/depot_tools/man/man1/git-map-branches.1 +210 -0
- data/vendor/depot_tools/man/man1/git-map.1 +179 -0
- data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +69 -0
- data/vendor/depot_tools/man/man1/git-nav-downstream.1 +112 -0
- data/vendor/depot_tools/man/man1/git-nav-upstream.1 +122 -0
- data/vendor/depot_tools/man/man1/git-new-branch.1 +176 -0
- data/vendor/depot_tools/man/man1/git-rebase-update.1 +177 -0
- data/vendor/depot_tools/man/man1/git-rename-branch.1 +53 -0
- data/vendor/depot_tools/man/man1/git-reparent-branch.1 +93 -0
- data/vendor/depot_tools/man/man1/git-retry.1 +108 -0
- data/vendor/depot_tools/man/man1/git-squash-branch.1 +129 -0
- data/vendor/depot_tools/man/man1/git-thaw.1 +54 -0
- data/vendor/depot_tools/man/man1/git-upstream-diff.1 +153 -0
- data/vendor/depot_tools/man/man7/depot_tools.7 +139 -0
- data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +1061 -0
- data/vendor/depot_tools/man/push_to_gs.sh +4 -0
- data/vendor/depot_tools/man/src/.gitignore +5 -0
- data/vendor/depot_tools/man/src/_aliases.txt +5 -0
- data/vendor/depot_tools/man/src/_footer.txt +8 -0
- data/vendor/depot_tools/man/src/_git-cl_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-drover_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-footers_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-freeze_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-map-branches_desc.helper.txt +4 -0
- data/vendor/depot_tools/man/src/_git-map_desc.helper.txt +3 -0
- data/vendor/depot_tools/man/src/_git-mark-merge-base_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-nav-downstream_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-nav-upstream_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-new-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-rebase-update_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-rename-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-reparent-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-retry_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-squash-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-thaw_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-upstream-diff_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_helper_prefix.txt +1 -0
- data/vendor/depot_tools/man/src/asciidoc-override.css +7 -0
- data/vendor/depot_tools/man/src/common_demo_functions.sh +84 -0
- data/vendor/depot_tools/man/src/demo_repo.sh +43 -0
- data/vendor/depot_tools/man/src/depot_tools.txt +28 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.demo.walkthrough.sh +155 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +432 -0
- data/vendor/depot_tools/man/src/filter_demo_output.py +141 -0
- data/vendor/depot_tools/man/src/git-cl.txt +119 -0
- data/vendor/depot_tools/man/src/git-drover.demo.1.sh +22 -0
- data/vendor/depot_tools/man/src/git-drover.demo.2.sh +23 -0
- data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
- data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
- data/vendor/depot_tools/man/src/git-drover.demo.common.sh +19 -0
- data/vendor/depot_tools/man/src/git-drover.txt +102 -0
- data/vendor/depot_tools/man/src/git-footers.demo.1.sh +17 -0
- data/vendor/depot_tools/man/src/git-footers.txt +71 -0
- data/vendor/depot_tools/man/src/git-freeze.demo.1.sh +23 -0
- data/vendor/depot_tools/man/src/git-freeze.txt +54 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
- data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +8 -0
- data/vendor/depot_tools/man/src/git-map-branches.txt +64 -0
- data/vendor/depot_tools/man/src/git-map.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-map.txt +67 -0
- data/vendor/depot_tools/man/src/git-mark-merge-base.txt +46 -0
- data/vendor/depot_tools/man/src/git-nav-downstream.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-nav-downstream.txt +40 -0
- data/vendor/depot_tools/man/src/git-nav-upstream.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-nav-upstream.txt +39 -0
- data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +17 -0
- data/vendor/depot_tools/man/src/git-new-branch.txt +82 -0
- data/vendor/depot_tools/man/src/git-rebase-update.txt +141 -0
- data/vendor/depot_tools/man/src/git-rename-branch.txt +28 -0
- data/vendor/depot_tools/man/src/git-reparent-branch.txt +61 -0
- data/vendor/depot_tools/man/src/git-retry.txt +67 -0
- data/vendor/depot_tools/man/src/git-squash-branch.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-squash-branch.txt +59 -0
- data/vendor/depot_tools/man/src/git-thaw.txt +29 -0
- data/vendor/depot_tools/man/src/git-upstream-diff.txt +107 -0
- data/vendor/depot_tools/man/src/make_docs.sh +260 -0
- data/vendor/depot_tools/man/src/prep_demo_repo.sh +103 -0
- data/vendor/depot_tools/metrics.README.md +101 -0
- data/vendor/depot_tools/metrics.py +297 -0
- data/vendor/depot_tools/metrics_utils.py +293 -0
- data/vendor/depot_tools/my_activity.py +971 -0
- data/vendor/depot_tools/ninja +44 -0
- data/vendor/depot_tools/ninja-linux32 +0 -0
- data/vendor/depot_tools/ninja-linux64 +0 -0
- data/vendor/depot_tools/ninja-mac +0 -0
- data/vendor/depot_tools/ninja.exe +0 -0
- data/vendor/depot_tools/ninjalog.README.md +64 -0
- data/vendor/depot_tools/ninjalog_uploader.py +233 -0
- data/vendor/depot_tools/ninjalog_uploader_wrapper.py +125 -0
- data/vendor/depot_tools/owners.py +641 -0
- data/vendor/depot_tools/owners_finder.py +385 -0
- data/vendor/depot_tools/post_build_ninja_summary.py +350 -0
- data/vendor/depot_tools/presubmit_canned_checks.py +1655 -0
- data/vendor/depot_tools/presubmit_support.py +1923 -0
- data/vendor/depot_tools/profile.xml +8 -0
- data/vendor/depot_tools/prpc +13 -0
- data/vendor/depot_tools/prpc.bat +8 -0
- data/vendor/depot_tools/pylint +9 -0
- data/vendor/depot_tools/pylint-1.5 +78 -0
- data/vendor/depot_tools/pylint-1.6 +78 -0
- data/vendor/depot_tools/pylint-1.7 +78 -0
- data/vendor/depot_tools/pylint-1.8 +78 -0
- data/vendor/depot_tools/pylint-1.9 +78 -0
- data/vendor/depot_tools/pylint.bat +12 -0
- data/vendor/depot_tools/pylint_main.py +45 -0
- data/vendor/depot_tools/pylintrc +349 -0
- data/vendor/depot_tools/python-bin/python3 +7 -0
- data/vendor/depot_tools/python_runner.sh +60 -0
- data/vendor/depot_tools/rdb +12 -0
- data/vendor/depot_tools/rdb.bat +7 -0
- data/vendor/depot_tools/recipes/OWNERS +4 -0
- data/vendor/depot_tools/recipes/README.recipes.md +1079 -0
- data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +38 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +516 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +118 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +194 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +210 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +214 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_HEAD.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +212 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +210 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +209 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +193 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +261 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +261 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +8 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +308 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/__init__.py +0 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +1258 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +35 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +9 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +455 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +82 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +411 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +315 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +313 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +313 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.py +187 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/__init__.py +9 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +75 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +13 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +428 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +462 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +238 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +240 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +238 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +36 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +92 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +8 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +178 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +284 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +73 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +53 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +11 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/api.py +405 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +219 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +216 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +164 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +220 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +239 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +290 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +220 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +111 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +221 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +219 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +170 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +52 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/test_api.py +18 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +50 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/config.py +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +105 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +47 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +257 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +596 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +251 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/__init__.py +4 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +247 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +92 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/resources/gsutil_smart_retry.py +69 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +36 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +140 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +42 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +27 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +251 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +27 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +19 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +18 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +264 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +57 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +190 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +190 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +108 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +21 -0
- data/vendor/depot_tools/recipes/recipes.py +249 -0
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +175 -0
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.py +56 -0
- data/vendor/depot_tools/recipes/trigger_recipe_roller.txt +13 -0
- data/vendor/depot_tools/repo +1194 -0
- data/vendor/depot_tools/roll-dep +21 -0
- data/vendor/depot_tools/roll-dep.bat +21 -0
- data/vendor/depot_tools/roll_dep.py +282 -0
- data/vendor/depot_tools/scm.py +415 -0
- data/vendor/depot_tools/setup_color.py +130 -0
- data/vendor/depot_tools/split_cl.py +263 -0
- data/vendor/depot_tools/subcommand.py +261 -0
- data/vendor/depot_tools/subprocess2.py +258 -0
- data/vendor/depot_tools/third_party/__init__.py +5 -0
- data/vendor/depot_tools/third_party/colorama/LICENSE.txt +27 -0
- data/vendor/depot_tools/third_party/colorama/README.chromium +12 -0
- data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
- data/vendor/depot_tools/third_party/colorama/__init__.py +6 -0
- data/vendor/depot_tools/third_party/colorama/ansi.py +102 -0
- data/vendor/depot_tools/third_party/colorama/ansitowin32.py +257 -0
- data/vendor/depot_tools/third_party/colorama/initialise.py +80 -0
- data/vendor/depot_tools/third_party/colorama/win32.py +152 -0
- data/vendor/depot_tools/third_party/colorama/winterm.py +169 -0
- data/vendor/depot_tools/third_party/coverage/AUTHORS.txt +43 -0
- data/vendor/depot_tools/third_party/coverage/PKG-INFO +41 -0
- data/vendor/depot_tools/third_party/coverage/README.chromium +13 -0
- data/vendor/depot_tools/third_party/coverage/__init__.py +120 -0
- data/vendor/depot_tools/third_party/coverage/__main__.py +4 -0
- data/vendor/depot_tools/third_party/coverage/annotate.py +101 -0
- data/vendor/depot_tools/third_party/coverage/backward.py +184 -0
- data/vendor/depot_tools/third_party/coverage/bytecode.py +75 -0
- data/vendor/depot_tools/third_party/coverage/cmdline.py +740 -0
- data/vendor/depot_tools/third_party/coverage/codeunit.py +145 -0
- data/vendor/depot_tools/third_party/coverage/collector.py +353 -0
- data/vendor/depot_tools/third_party/coverage/config.py +213 -0
- data/vendor/depot_tools/third_party/coverage/control.py +776 -0
- data/vendor/depot_tools/third_party/coverage/data.py +278 -0
- data/vendor/depot_tools/third_party/coverage/debug.py +54 -0
- data/vendor/depot_tools/third_party/coverage/execfile.py +171 -0
- data/vendor/depot_tools/third_party/coverage/files.py +309 -0
- data/vendor/depot_tools/third_party/coverage/fullcoverage/encodings.py +57 -0
- data/vendor/depot_tools/third_party/coverage/html.py +387 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/coverage_html.js +376 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/index.html +104 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery-1.4.3.min.js +166 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.hotkeys.js +99 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.isonscreen.js +53 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.min.js +166 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.tablesorter.min.js +2 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_closed.png +0 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_open.png +0 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/pyfile.html +90 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/style.css +300 -0
- data/vendor/depot_tools/third_party/coverage/misc.py +163 -0
- data/vendor/depot_tools/third_party/coverage/parser.py +666 -0
- data/vendor/depot_tools/third_party/coverage/phystokens.py +208 -0
- data/vendor/depot_tools/third_party/coverage/report.py +92 -0
- data/vendor/depot_tools/third_party/coverage/results.py +286 -0
- data/vendor/depot_tools/third_party/coverage/summary.py +86 -0
- data/vendor/depot_tools/third_party/coverage/templite.py +166 -0
- data/vendor/depot_tools/third_party/coverage/version.py +9 -0
- data/vendor/depot_tools/third_party/coverage/xmlreport.py +155 -0
- data/vendor/depot_tools/third_party/httplib2/LICENSE +1339 -0
- data/vendor/depot_tools/third_party/httplib2/README.chromium +15 -0
- data/vendor/depot_tools/third_party/httplib2/__init__.py +1780 -0
- data/vendor/depot_tools/third_party/httplib2/cacerts.txt +2196 -0
- data/vendor/depot_tools/third_party/httplib2/iri2uri.py +110 -0
- data/vendor/depot_tools/third_party/httplib2/socks.py +448 -0
- data/vendor/depot_tools/third_party/repo/COPYING +202 -0
- data/vendor/depot_tools/third_party/repo/README.chromium +4 -0
- data/vendor/depot_tools/third_party/repo/__init__.py +0 -0
- data/vendor/depot_tools/third_party/repo/progress.py +117 -0
- data/vendor/depot_tools/third_party/retry_decorator/LICENSE.google +30 -0
- data/vendor/depot_tools/third_party/retry_decorator/__init__.py +0 -0
- data/vendor/depot_tools/third_party/retry_decorator/decorators.py +45 -0
- data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
- data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
- data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
- data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
- data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
- data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
- data/vendor/depot_tools/third_party/schema/README.rst +382 -0
- data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
- data/vendor/depot_tools/third_party/schema/schema.py +338 -0
- data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
- data/vendor/depot_tools/third_party/schema/setup.py +30 -0
- data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
- data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
- data/vendor/depot_tools/third_party/six/LICENSE.txt +18 -0
- data/vendor/depot_tools/third_party/six/README.chromium +10 -0
- data/vendor/depot_tools/third_party/six/__init__.py +762 -0
- data/vendor/depot_tools/update_depot_tools +138 -0
- data/vendor/depot_tools/update_depot_tools.bat +65 -0
- data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
- data/vendor/depot_tools/upload_metrics.py +26 -0
- data/vendor/depot_tools/upload_to_google_storage.py +306 -0
- data/vendor/depot_tools/vpython +42 -0
- data/vendor/depot_tools/vpython.bat +7 -0
- data/vendor/depot_tools/vpython3 +55 -0
- data/vendor/depot_tools/vpython3.bat +12 -0
- data/vendor/depot_tools/watchlists.py +141 -0
- data/vendor/depot_tools/weekly +54 -0
- data/vendor/depot_tools/win32imports.py +61 -0
- data/vendor/depot_tools/win_toolchain/OWNERS +2 -0
- data/vendor/depot_tools/win_toolchain/README.md +74 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +599 -0
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +524 -0
- data/vendor/depot_tools/wtf +81 -0
- data/vendor/depot_tools/yapf +21 -0
- data/vendor/depot_tools/yapf.bat +12 -0
- data/vendor/depot_tools/zsh-goodies/README +6 -0
- data/vendor/depot_tools/zsh-goodies/_gclient +14 -0
- metadata +729 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"""Coverage data for Coverage."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
from coverage.backward import iitems, pickle, sorted # pylint: disable=W0622
|
|
6
|
+
from coverage.files import PathAliases
|
|
7
|
+
from coverage.misc import file_be_gone
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class CoverageData(object):
|
|
11
|
+
"""Manages collected coverage data, including file storage.
|
|
12
|
+
|
|
13
|
+
The data file format is a pickled dict, with these keys:
|
|
14
|
+
|
|
15
|
+
* collector: a string identifying the collecting software
|
|
16
|
+
|
|
17
|
+
* lines: a dict mapping filenames to sorted lists of line numbers
|
|
18
|
+
executed:
|
|
19
|
+
{ 'file1': [17,23,45], 'file2': [1,2,3], ... }
|
|
20
|
+
|
|
21
|
+
* arcs: a dict mapping filenames to sorted lists of line number pairs:
|
|
22
|
+
{ 'file1': [(17,23), (17,25), (25,26)], ... }
|
|
23
|
+
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
def __init__(self, basename=None, collector=None, debug=None):
|
|
27
|
+
"""Create a CoverageData.
|
|
28
|
+
|
|
29
|
+
`basename` is the name of the file to use for storing data.
|
|
30
|
+
|
|
31
|
+
`collector` is a string describing the coverage measurement software.
|
|
32
|
+
|
|
33
|
+
`debug` is a `DebugControl` object for writing debug messages.
|
|
34
|
+
|
|
35
|
+
"""
|
|
36
|
+
self.collector = collector or 'unknown'
|
|
37
|
+
self.debug = debug
|
|
38
|
+
|
|
39
|
+
self.use_file = True
|
|
40
|
+
|
|
41
|
+
# Construct the filename that will be used for data file storage, if we
|
|
42
|
+
# ever do any file storage.
|
|
43
|
+
self.filename = basename or ".coverage"
|
|
44
|
+
self.filename = os.path.abspath(self.filename)
|
|
45
|
+
|
|
46
|
+
# A map from canonical Python source file name to a dictionary in
|
|
47
|
+
# which there's an entry for each line number that has been
|
|
48
|
+
# executed:
|
|
49
|
+
#
|
|
50
|
+
# {
|
|
51
|
+
# 'filename1.py': { 12: None, 47: None, ... },
|
|
52
|
+
# ...
|
|
53
|
+
# }
|
|
54
|
+
#
|
|
55
|
+
self.lines = {}
|
|
56
|
+
|
|
57
|
+
# A map from canonical Python source file name to a dictionary with an
|
|
58
|
+
# entry for each pair of line numbers forming an arc:
|
|
59
|
+
#
|
|
60
|
+
# {
|
|
61
|
+
# 'filename1.py': { (12,14): None, (47,48): None, ... },
|
|
62
|
+
# ...
|
|
63
|
+
# }
|
|
64
|
+
#
|
|
65
|
+
self.arcs = {}
|
|
66
|
+
|
|
67
|
+
def usefile(self, use_file=True):
|
|
68
|
+
"""Set whether or not to use a disk file for data."""
|
|
69
|
+
self.use_file = use_file
|
|
70
|
+
|
|
71
|
+
def read(self):
|
|
72
|
+
"""Read coverage data from the coverage data file (if it exists)."""
|
|
73
|
+
if self.use_file:
|
|
74
|
+
self.lines, self.arcs = self._read_file(self.filename)
|
|
75
|
+
else:
|
|
76
|
+
self.lines, self.arcs = {}, {}
|
|
77
|
+
|
|
78
|
+
def write(self, suffix=None):
|
|
79
|
+
"""Write the collected coverage data to a file.
|
|
80
|
+
|
|
81
|
+
`suffix` is a suffix to append to the base file name. This can be used
|
|
82
|
+
for multiple or parallel execution, so that many coverage data files
|
|
83
|
+
can exist simultaneously. A dot will be used to join the base name and
|
|
84
|
+
the suffix.
|
|
85
|
+
|
|
86
|
+
"""
|
|
87
|
+
if self.use_file:
|
|
88
|
+
filename = self.filename
|
|
89
|
+
if suffix:
|
|
90
|
+
filename += "." + suffix
|
|
91
|
+
self.write_file(filename)
|
|
92
|
+
|
|
93
|
+
def erase(self):
|
|
94
|
+
"""Erase the data, both in this object, and from its file storage."""
|
|
95
|
+
if self.use_file:
|
|
96
|
+
if self.filename:
|
|
97
|
+
file_be_gone(self.filename)
|
|
98
|
+
self.lines = {}
|
|
99
|
+
self.arcs = {}
|
|
100
|
+
|
|
101
|
+
def line_data(self):
|
|
102
|
+
"""Return the map from filenames to lists of line numbers executed."""
|
|
103
|
+
return dict(
|
|
104
|
+
[(f, sorted(lmap.keys())) for f, lmap in iitems(self.lines)]
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
def arc_data(self):
|
|
108
|
+
"""Return the map from filenames to lists of line number pairs."""
|
|
109
|
+
return dict(
|
|
110
|
+
[(f, sorted(amap.keys())) for f, amap in iitems(self.arcs)]
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
def write_file(self, filename):
|
|
114
|
+
"""Write the coverage data to `filename`."""
|
|
115
|
+
|
|
116
|
+
# Create the file data.
|
|
117
|
+
data = {}
|
|
118
|
+
|
|
119
|
+
data['lines'] = self.line_data()
|
|
120
|
+
arcs = self.arc_data()
|
|
121
|
+
if arcs:
|
|
122
|
+
data['arcs'] = arcs
|
|
123
|
+
|
|
124
|
+
if self.collector:
|
|
125
|
+
data['collector'] = self.collector
|
|
126
|
+
|
|
127
|
+
if self.debug and self.debug.should('dataio'):
|
|
128
|
+
self.debug.write("Writing data to %r" % (filename,))
|
|
129
|
+
|
|
130
|
+
# Write the pickle to the file.
|
|
131
|
+
fdata = open(filename, 'wb')
|
|
132
|
+
try:
|
|
133
|
+
pickle.dump(data, fdata, 2)
|
|
134
|
+
finally:
|
|
135
|
+
fdata.close()
|
|
136
|
+
|
|
137
|
+
def read_file(self, filename):
|
|
138
|
+
"""Read the coverage data from `filename`."""
|
|
139
|
+
self.lines, self.arcs = self._read_file(filename)
|
|
140
|
+
|
|
141
|
+
def raw_data(self, filename):
|
|
142
|
+
"""Return the raw pickled data from `filename`."""
|
|
143
|
+
if self.debug and self.debug.should('dataio'):
|
|
144
|
+
self.debug.write("Reading data from %r" % (filename,))
|
|
145
|
+
fdata = open(filename, 'rb')
|
|
146
|
+
try:
|
|
147
|
+
data = pickle.load(fdata)
|
|
148
|
+
finally:
|
|
149
|
+
fdata.close()
|
|
150
|
+
return data
|
|
151
|
+
|
|
152
|
+
def _read_file(self, filename):
|
|
153
|
+
"""Return the stored coverage data from the given file.
|
|
154
|
+
|
|
155
|
+
Returns two values, suitable for assigning to `self.lines` and
|
|
156
|
+
`self.arcs`.
|
|
157
|
+
|
|
158
|
+
"""
|
|
159
|
+
lines = {}
|
|
160
|
+
arcs = {}
|
|
161
|
+
try:
|
|
162
|
+
data = self.raw_data(filename)
|
|
163
|
+
if isinstance(data, dict):
|
|
164
|
+
# Unpack the 'lines' item.
|
|
165
|
+
lines = dict([
|
|
166
|
+
(f, dict.fromkeys(linenos, None))
|
|
167
|
+
for f, linenos in iitems(data.get('lines', {}))
|
|
168
|
+
])
|
|
169
|
+
# Unpack the 'arcs' item.
|
|
170
|
+
arcs = dict([
|
|
171
|
+
(f, dict.fromkeys(arcpairs, None))
|
|
172
|
+
for f, arcpairs in iitems(data.get('arcs', {}))
|
|
173
|
+
])
|
|
174
|
+
except Exception:
|
|
175
|
+
pass
|
|
176
|
+
return lines, arcs
|
|
177
|
+
|
|
178
|
+
def combine_parallel_data(self, aliases=None):
|
|
179
|
+
"""Combine a number of data files together.
|
|
180
|
+
|
|
181
|
+
Treat `self.filename` as a file prefix, and combine the data from all
|
|
182
|
+
of the data files starting with that prefix plus a dot.
|
|
183
|
+
|
|
184
|
+
If `aliases` is provided, it's a `PathAliases` object that is used to
|
|
185
|
+
re-map paths to match the local machine's.
|
|
186
|
+
|
|
187
|
+
"""
|
|
188
|
+
aliases = aliases or PathAliases()
|
|
189
|
+
data_dir, local = os.path.split(self.filename)
|
|
190
|
+
localdot = local + '.'
|
|
191
|
+
for f in os.listdir(data_dir or '.'):
|
|
192
|
+
if f.startswith(localdot):
|
|
193
|
+
full_path = os.path.join(data_dir, f)
|
|
194
|
+
new_lines, new_arcs = self._read_file(full_path)
|
|
195
|
+
for filename, file_data in iitems(new_lines):
|
|
196
|
+
filename = aliases.map(filename)
|
|
197
|
+
self.lines.setdefault(filename, {}).update(file_data)
|
|
198
|
+
for filename, file_data in iitems(new_arcs):
|
|
199
|
+
filename = aliases.map(filename)
|
|
200
|
+
self.arcs.setdefault(filename, {}).update(file_data)
|
|
201
|
+
if f != local:
|
|
202
|
+
os.remove(full_path)
|
|
203
|
+
|
|
204
|
+
def add_line_data(self, line_data):
|
|
205
|
+
"""Add executed line data.
|
|
206
|
+
|
|
207
|
+
`line_data` is { filename: { lineno: None, ... }, ...}
|
|
208
|
+
|
|
209
|
+
"""
|
|
210
|
+
for filename, linenos in iitems(line_data):
|
|
211
|
+
self.lines.setdefault(filename, {}).update(linenos)
|
|
212
|
+
|
|
213
|
+
def add_arc_data(self, arc_data):
|
|
214
|
+
"""Add measured arc data.
|
|
215
|
+
|
|
216
|
+
`arc_data` is { filename: { (l1,l2): None, ... }, ...}
|
|
217
|
+
|
|
218
|
+
"""
|
|
219
|
+
for filename, arcs in iitems(arc_data):
|
|
220
|
+
self.arcs.setdefault(filename, {}).update(arcs)
|
|
221
|
+
|
|
222
|
+
def touch_file(self, filename):
|
|
223
|
+
"""Ensure that `filename` appears in the data, empty if needed."""
|
|
224
|
+
self.lines.setdefault(filename, {})
|
|
225
|
+
|
|
226
|
+
def measured_files(self):
|
|
227
|
+
"""A list of all files that had been measured."""
|
|
228
|
+
return list(self.lines.keys())
|
|
229
|
+
|
|
230
|
+
def executed_lines(self, filename):
|
|
231
|
+
"""A map containing all the line numbers executed in `filename`.
|
|
232
|
+
|
|
233
|
+
If `filename` hasn't been collected at all (because it wasn't executed)
|
|
234
|
+
then return an empty map.
|
|
235
|
+
|
|
236
|
+
"""
|
|
237
|
+
return self.lines.get(filename) or {}
|
|
238
|
+
|
|
239
|
+
def executed_arcs(self, filename):
|
|
240
|
+
"""A map containing all the arcs executed in `filename`."""
|
|
241
|
+
return self.arcs.get(filename) or {}
|
|
242
|
+
|
|
243
|
+
def add_to_hash(self, filename, hasher):
|
|
244
|
+
"""Contribute `filename`'s data to the Md5Hash `hasher`."""
|
|
245
|
+
hasher.update(self.executed_lines(filename))
|
|
246
|
+
hasher.update(self.executed_arcs(filename))
|
|
247
|
+
|
|
248
|
+
def summary(self, fullpath=False):
|
|
249
|
+
"""Return a dict summarizing the coverage data.
|
|
250
|
+
|
|
251
|
+
Keys are based on the filenames, and values are the number of executed
|
|
252
|
+
lines. If `fullpath` is true, then the keys are the full pathnames of
|
|
253
|
+
the files, otherwise they are the basenames of the files.
|
|
254
|
+
|
|
255
|
+
"""
|
|
256
|
+
summ = {}
|
|
257
|
+
if fullpath:
|
|
258
|
+
filename_fn = lambda f: f
|
|
259
|
+
else:
|
|
260
|
+
filename_fn = os.path.basename
|
|
261
|
+
for filename, lines in iitems(self.lines):
|
|
262
|
+
summ[filename_fn(filename)] = len(lines)
|
|
263
|
+
return summ
|
|
264
|
+
|
|
265
|
+
def has_arcs(self):
|
|
266
|
+
"""Does this data have arcs?"""
|
|
267
|
+
return bool(self.arcs)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
if __name__ == '__main__':
|
|
271
|
+
# Ad-hoc: show the raw data in a data file.
|
|
272
|
+
import pprint, sys
|
|
273
|
+
covdata = CoverageData()
|
|
274
|
+
if sys.argv[1:]:
|
|
275
|
+
fname = sys.argv[1]
|
|
276
|
+
else:
|
|
277
|
+
fname = covdata.filename
|
|
278
|
+
pprint.pprint(covdata.raw_data(fname))
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Control of and utilities for debugging."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# When debugging, it can be helpful to force some options, especially when
|
|
7
|
+
# debugging the configuration mechanisms you usually use to control debugging!
|
|
8
|
+
# This is a list of forced debugging options.
|
|
9
|
+
FORCED_DEBUG = []
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DebugControl(object):
|
|
13
|
+
"""Control and output for debugging."""
|
|
14
|
+
|
|
15
|
+
def __init__(self, options, output):
|
|
16
|
+
"""Configure the options and output file for debugging."""
|
|
17
|
+
self.options = options
|
|
18
|
+
self.output = output
|
|
19
|
+
|
|
20
|
+
def should(self, option):
|
|
21
|
+
"""Decide whether to output debug information in category `option`."""
|
|
22
|
+
return (option in self.options or option in FORCED_DEBUG)
|
|
23
|
+
|
|
24
|
+
def write(self, msg):
|
|
25
|
+
"""Write a line of debug output."""
|
|
26
|
+
if self.should('pid'):
|
|
27
|
+
msg = "pid %5d: %s" % (os.getpid(), msg)
|
|
28
|
+
self.output.write(msg+"\n")
|
|
29
|
+
self.output.flush()
|
|
30
|
+
|
|
31
|
+
def write_formatted_info(self, info):
|
|
32
|
+
"""Write a sequence of (label,data) pairs nicely."""
|
|
33
|
+
for line in info_formatter(info):
|
|
34
|
+
self.write(" %s" % line)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def info_formatter(info):
|
|
38
|
+
"""Produce a sequence of formatted lines from info.
|
|
39
|
+
|
|
40
|
+
`info` is a sequence of pairs (label, data). The produced lines are
|
|
41
|
+
nicely formatted, ready to print.
|
|
42
|
+
|
|
43
|
+
"""
|
|
44
|
+
label_len = max([len(l) for l, _d in info])
|
|
45
|
+
for label, data in info:
|
|
46
|
+
if data == []:
|
|
47
|
+
data = "-none-"
|
|
48
|
+
if isinstance(data, (list, tuple)):
|
|
49
|
+
prefix = "%*s:" % (label_len, label)
|
|
50
|
+
for e in data:
|
|
51
|
+
yield "%*s %s" % (label_len+1, prefix, e)
|
|
52
|
+
prefix = ""
|
|
53
|
+
else:
|
|
54
|
+
yield "%*s: %s" % (label_len, label, data)
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"""Execute files of Python code."""
|
|
2
|
+
|
|
3
|
+
import imp, marshal, os, sys
|
|
4
|
+
|
|
5
|
+
from coverage.backward import exec_code_object, open_source
|
|
6
|
+
from coverage.misc import ExceptionDuringRun, NoCode, NoSource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
# In Py 2.x, the builtins were in __builtin__
|
|
11
|
+
BUILTINS = sys.modules['__builtin__']
|
|
12
|
+
except KeyError:
|
|
13
|
+
# In Py 3.x, they're in builtins
|
|
14
|
+
BUILTINS = sys.modules['builtins']
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def rsplit1(s, sep):
|
|
18
|
+
"""The same as s.rsplit(sep, 1), but works in 2.3"""
|
|
19
|
+
parts = s.split(sep)
|
|
20
|
+
return sep.join(parts[:-1]), parts[-1]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def run_python_module(modulename, args):
|
|
24
|
+
"""Run a python module, as though with ``python -m name args...``.
|
|
25
|
+
|
|
26
|
+
`modulename` is the name of the module, possibly a dot-separated name.
|
|
27
|
+
`args` is the argument array to present as sys.argv, including the first
|
|
28
|
+
element naming the module being executed.
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
openfile = None
|
|
32
|
+
glo, loc = globals(), locals()
|
|
33
|
+
try:
|
|
34
|
+
try:
|
|
35
|
+
# Search for the module - inside its parent package, if any - using
|
|
36
|
+
# standard import mechanics.
|
|
37
|
+
if '.' in modulename:
|
|
38
|
+
packagename, name = rsplit1(modulename, '.')
|
|
39
|
+
package = __import__(packagename, glo, loc, ['__path__'])
|
|
40
|
+
searchpath = package.__path__
|
|
41
|
+
else:
|
|
42
|
+
packagename, name = None, modulename
|
|
43
|
+
searchpath = None # "top-level search" in imp.find_module()
|
|
44
|
+
openfile, pathname, _ = imp.find_module(name, searchpath)
|
|
45
|
+
|
|
46
|
+
# Complain if this is a magic non-file module.
|
|
47
|
+
if openfile is None and pathname is None:
|
|
48
|
+
raise NoSource(
|
|
49
|
+
"module does not live in a file: %r" % modulename
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
# If `modulename` is actually a package, not a mere module, then we
|
|
53
|
+
# pretend to be Python 2.7 and try running its __main__.py script.
|
|
54
|
+
if openfile is None:
|
|
55
|
+
packagename = modulename
|
|
56
|
+
name = '__main__'
|
|
57
|
+
package = __import__(packagename, glo, loc, ['__path__'])
|
|
58
|
+
searchpath = package.__path__
|
|
59
|
+
openfile, pathname, _ = imp.find_module(name, searchpath)
|
|
60
|
+
except ImportError:
|
|
61
|
+
_, err, _ = sys.exc_info()
|
|
62
|
+
raise NoSource(str(err))
|
|
63
|
+
finally:
|
|
64
|
+
if openfile:
|
|
65
|
+
openfile.close()
|
|
66
|
+
|
|
67
|
+
# Finally, hand the file off to run_python_file for execution.
|
|
68
|
+
pathname = os.path.abspath(pathname)
|
|
69
|
+
args[0] = pathname
|
|
70
|
+
run_python_file(pathname, args, package=packagename)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def run_python_file(filename, args, package=None):
|
|
74
|
+
"""Run a python file as if it were the main program on the command line.
|
|
75
|
+
|
|
76
|
+
`filename` is the path to the file to execute, it need not be a .py file.
|
|
77
|
+
`args` is the argument array to present as sys.argv, including the first
|
|
78
|
+
element naming the file being executed. `package` is the name of the
|
|
79
|
+
enclosing package, if any.
|
|
80
|
+
|
|
81
|
+
"""
|
|
82
|
+
# Create a module to serve as __main__
|
|
83
|
+
old_main_mod = sys.modules['__main__']
|
|
84
|
+
main_mod = imp.new_module('__main__')
|
|
85
|
+
sys.modules['__main__'] = main_mod
|
|
86
|
+
main_mod.__file__ = filename
|
|
87
|
+
if package:
|
|
88
|
+
main_mod.__package__ = package
|
|
89
|
+
main_mod.__builtins__ = BUILTINS
|
|
90
|
+
|
|
91
|
+
# Set sys.argv properly.
|
|
92
|
+
old_argv = sys.argv
|
|
93
|
+
sys.argv = args
|
|
94
|
+
|
|
95
|
+
try:
|
|
96
|
+
# Make a code object somehow.
|
|
97
|
+
if filename.endswith(".pyc") or filename.endswith(".pyo"):
|
|
98
|
+
code = make_code_from_pyc(filename)
|
|
99
|
+
else:
|
|
100
|
+
code = make_code_from_py(filename)
|
|
101
|
+
|
|
102
|
+
# Execute the code object.
|
|
103
|
+
try:
|
|
104
|
+
exec_code_object(code, main_mod.__dict__)
|
|
105
|
+
except SystemExit:
|
|
106
|
+
# The user called sys.exit(). Just pass it along to the upper
|
|
107
|
+
# layers, where it will be handled.
|
|
108
|
+
raise
|
|
109
|
+
except:
|
|
110
|
+
# Something went wrong while executing the user code.
|
|
111
|
+
# Get the exc_info, and pack them into an exception that we can
|
|
112
|
+
# throw up to the outer loop. We peel two layers off the traceback
|
|
113
|
+
# so that the coverage.py code doesn't appear in the final printed
|
|
114
|
+
# traceback.
|
|
115
|
+
typ, err, tb = sys.exc_info()
|
|
116
|
+
raise ExceptionDuringRun(typ, err, tb.tb_next.tb_next)
|
|
117
|
+
finally:
|
|
118
|
+
# Restore the old __main__
|
|
119
|
+
sys.modules['__main__'] = old_main_mod
|
|
120
|
+
|
|
121
|
+
# Restore the old argv and path
|
|
122
|
+
sys.argv = old_argv
|
|
123
|
+
|
|
124
|
+
def make_code_from_py(filename):
|
|
125
|
+
"""Get source from `filename` and make a code object of it."""
|
|
126
|
+
# Open the source file.
|
|
127
|
+
try:
|
|
128
|
+
source_file = open_source(filename)
|
|
129
|
+
except IOError:
|
|
130
|
+
raise NoSource("No file to run: %r" % filename)
|
|
131
|
+
|
|
132
|
+
try:
|
|
133
|
+
source = source_file.read()
|
|
134
|
+
finally:
|
|
135
|
+
source_file.close()
|
|
136
|
+
|
|
137
|
+
# We have the source. `compile` still needs the last line to be clean,
|
|
138
|
+
# so make sure it is, then compile a code object from it.
|
|
139
|
+
if not source or source[-1] != '\n':
|
|
140
|
+
source += '\n'
|
|
141
|
+
code = compile(source, filename, "exec")
|
|
142
|
+
|
|
143
|
+
return code
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
def make_code_from_pyc(filename):
|
|
147
|
+
"""Get a code object from a .pyc file."""
|
|
148
|
+
try:
|
|
149
|
+
fpyc = open(filename, "rb")
|
|
150
|
+
except IOError:
|
|
151
|
+
raise NoCode("No file to run: %r" % filename)
|
|
152
|
+
|
|
153
|
+
try:
|
|
154
|
+
# First four bytes are a version-specific magic number. It has to
|
|
155
|
+
# match or we won't run the file.
|
|
156
|
+
magic = fpyc.read(4)
|
|
157
|
+
if magic != imp.get_magic():
|
|
158
|
+
raise NoCode("Bad magic number in .pyc file")
|
|
159
|
+
|
|
160
|
+
# Skip the junk in the header that we don't need.
|
|
161
|
+
fpyc.read(4) # Skip the moddate.
|
|
162
|
+
if sys.version_info >= (3, 3):
|
|
163
|
+
# 3.3 added another long to the header (size), skip it.
|
|
164
|
+
fpyc.read(4)
|
|
165
|
+
|
|
166
|
+
# The rest of the file is the code object we want.
|
|
167
|
+
code = marshal.load(fpyc)
|
|
168
|
+
finally:
|
|
169
|
+
fpyc.close()
|
|
170
|
+
|
|
171
|
+
return code
|