aboutsummaryrefslogtreecommitdiff
path: root/llvm_tools
AgeCommit message (Collapse)Author
2020-02-28llvm_tools: Uploaded CL as WIP and do not send emails.Manoj Gupta
Mark CL as wip and do not send emails to avoid unnecessary email churns for people monitoring the changes. BUG=None TEST=CL uploaded as wip and with no emails sent. Change-Id: I8577fb8a149b5511bc27df2a7e79901b1c778721 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2080652 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Jian Cai <jiancai@google.com> Reviewed-by: George Burgess <gbiv@chromium.org> Commit-Queue: Manoj Gupta <manojgupta@chromium.org>
2020-02-13toolchain-utils: migrate all in-use projects to python 3Zhizhou Yang
This patch migrates all in-use projects left to python 3. BUG=chromium:1011676 TEST=Passed unittests and launched scripts manually. Change-Id: I7f2de4e1131c05bacfac80667f3064da8adaebfd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2051397 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Zhizhou Yang <zhizhouy@google.com> Auto-Submit: Zhizhou Yang <zhizhouy@google.com>
2020-02-05Add --use_src_head.Chih-Hung Hsieh
This flag is used in non-bisecting mode by Android llvm builder, to use the HEAD of src_path directory as is, without calling git_llvm_rev or get_llvm_hash. BUG=None TEST=None Change-Id: I99f75936d85b969009df3648d4759ff98e63bd4c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2037149 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Chih-Hung Hsieh <chh@google.com> Commit-Queue: Chih-Hung Hsieh <chh@google.com> Auto-Submit: Chih-Hung Hsieh <chh@google.com>
2020-01-27llvm_tools: remove unused importGeorge Burgess IV
`requests` is an artifact of an old way of doing things, and breaks things on Android bots. Best to just remove it. This also fixes other misc lints in that file BUG=b:147699825 TEST=unittests Change-Id: I3f465f9a129679b104e328ab8307298af1df651b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2023775 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Pirama Arumuga Nainar <pirama@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-01-17patch_manager_unittest: rename variables to be more meaningfulJian Cai
BUG=chromium:1042953 TEST=verified locally. Change-Id: I1a452c2756491e69121a161a32ab007c4e79629d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2006728 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-01-17patch_manager: appease pylintJian Cai
Fix unused-argument complaints in unit tests. BUG=chromium:1042953 TEST=verified locally. Change-Id: I7037fc10f8160a5f1f8929a3256e91255dd125ac Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2006330 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-01-11git_llvm_rev: auto-update llvm-project-copy in testsGeorge Burgess IV
My local llvm-project-copy was out-of-date. It's nice if we can automatically handle that. This also fixes lints and such that weren't able to fire when this was originally landed. BUG=chromium:1041016 TEST=Wiped out my LLVM tree; it synced without issue. Tried syncing with a timedelta of seconds=2; everything WAI. Change-Id: I4a4811bb1500db0b00c924eec0be12dc57499fc6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1995316 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2020-01-11git_llvm_rev: handle merge commits more gracefullyGeorge Burgess IV
llvm grew a relatively large merge commit recently, which broke this script noticeably. There's analysis of why this happened in the bug. tl;dr is that `rev-parse ${sha}~${N}` and `rev-list --count` don't do the same thing without extra flags. BUG=chromium:1041016 TEST=Unit tests. A few random runs in my LLVM tree. Change-Id: I393d1ada842b5f19846d961b403641bc958b191f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1995315 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-12-10llvm_tools: update commit messageJian Cai
We should mention git hashes in the CLs automatically created for LLVM roll now that the hashes become the only revision numbers LLVM uses. BUG=chromium:1027950 TEST=local tests. Change-Id: Iaec59599d4fa0d133e09d2a31db45c777a2d1e60 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1959439 Commit-Queue: Jian Cai <jiancai@google.com> Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: George Burgess <gbiv@chromium.org>
2019-12-10llvm_tools: add git_llvm_rev to the copy/paste listGeorge Burgess IV
BUG=None TEST=./copy_helpers_to_chromiumos_overlay.py Change-Id: I8296968ac8e51b48c84c877e0f8610832721bcc2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1957896 Tested-by: George Burgess <gbiv@chromium.org> Auto-Submit: George Burgess <gbiv@chromium.org> Reviewed-by: Caroline Tice <cmtice@chromium.org> Commit-Queue: George Burgess <gbiv@chromium.org>
2019-12-09Remove trailing newline from sha/git hash.Caroline Tice
Currently there is a trailing newline no the git has that is causing git rev-parse to fail. This CL removes the trailing newline. BUG=None TEST=None Change-Id: I509871fda6bc7ec77bf088d54490b68d3b58e268 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1957891 Reviewed-by: George Burgess <gbiv@chromium.org> Commit-Queue: Caroline Tice <cmtice@chromium.org> Tested-by: Caroline Tice <cmtice@chromium.org>
2019-12-07LLVM tools: sync python scriptsJian Cai
Sync python scripts from sys-devel/llvm/files/patch_manager that fixed broken LLVM roll builders. BUG=chromium:1027950 TEST=local builds. Change-Id: I0f1c7147e937d59dfe859d36aa8cfcfcbfd1fdb9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1949693 Reviewed-by: George Burgess <gbiv@chromium.org> Commit-Queue: Jian Cai <jiancai@google.com> Tested-by: Jian Cai <jiancai@google.com>
2019-11-24toolchain-utils: use LLVM git hashes to track version numbers.Jian Cai
LLVM has stopped issuing SVN version numbers in its commits. This patch adds a way to track SVN-style version number based on a LLVM git hash. BUG=Chromium:1027950 TEST=local tests. Change-Id: Idd8055ea7deb3bcd17c18ab5b642ce8b389e446a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1915373 Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-11-20Add a git-llvm-rev toolGeorge Burgess IV
The main down-side to this is sort of inherent in any git-based numbering scheme: as time goes on, our distance from r375505 is going to increase, so any tool that takes this approach will take progressively longer. To get an idea of what that means in practice, I set `base_llvm_revision = 199999` (from 2014) and messed around. Converting a near-ToT SHA to a rev took 250ms, and converting that rev back into a SHA took 191ms. For reference, at their current settings, they take 83ms and 106ms to perform those same options, respectively. Hence, I doubt this will become a problem in the next 5 years. If it does start to bite us, we can add complexity to bound our searches. The only op known to take quite a while on this is converting a branch-only commit to a rev, because `git branch -r --contains ${X}` takes quite a while. I don't think that's a common op, so we can worry about that later. BUG=None TEST=A few random commits round-tripped. Tests passed. `mypy --strict` was happy. Change-Id: If093f3593a9f1aa3c6275d9dcd2785864dbfce1d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1907408 Tested-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-09-30llvm_tools: Fix error in getting a fixed SVN version.Manoj Gupta
llvm_hash was not initialized when using a fixed SVN version. Fixes the error: UnboundLocalError: local variable 'llvm_hash' referenced before assignment BUG=None TEST=Unit tests pass Change-Id: I83d68908801325c7827b090e6bb472bc54bb3d75 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1831791 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2019-09-27llvm_tools: add a script to `cp` files to chromiumos-overlayGeorge Burgess IV
This is a manual and seemingly error-prone process. Why not automate it? BUG=chromium:994322 TEST=./copy_helpers_to_chromiumos_overlay.py Change-Id: I6d008810619c0595fbbd4155526b6ad10a5d466c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1811966 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-09-13LLVM tools: Updated README.md to include auto LLVM bisectionSalud Lemus
Also includes a section for the script that updates all tryjobs whose status is 'pending' to the result of `cros buildresult`. Also included examples for each script. BUG=None TEST=None Change-Id: I1b6a5096eb0c3fe48d3b4962ce464afee785b4ef Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1798816 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-13LLVM tools: Added unittest for llvm_bisection.pySalud Lemus
BUG=None TEST='./llvm_bisection_unittest.py' passes Change-Id: I2689deff7ede41bcfcf5707d4419bd3c816bba39 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1798739 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-13LLVM tools: Updated unittests for patch_manager.pySalud Lemus
BUG=None TEST='./patch_manager_unittest.py' passes Change-Id: Ib33236b725cf9ffad6cae622aac1ff154db09e0f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1796386 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-12LLVM tools: Updated unittests for update_chromeos_llvm_next_hash.pySalud Lemus
BUG=None TEST='./update_chromeos_llvm_next_hash_unittest.py' passes Change-Id: I9793dde698fe21dc4d9462c552bc1c321ad06ff4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1796383 Tested-by: Salud Lemus <saludlemus@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-09-12LLVM tools: Updated unittest for llvm_patch_management.pySalud Lemus
BUG=None TEST='./llvm_patch_management_unittest.py' passes Change-Id: I92c198ffefc51d0afa780de9e930a3db4260efbf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1795932 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-12LLVM tools: Unittests for modify_a_tryjob.pySalud Lemus
BUG=None TEST='./modify_a_tryjob_unittest.py' passes Change-Id: I6363bde914e710c2efbe8bce08c27351e4f3b7f0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1793683 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-12LLVM tools: Unittests for update_tryjob_status.pySalud Lemus
BUG=None TEST='./update_tryjob_status_unittest.py' passes Change-Id: Ia70a31c7e6f69c818c719986d831d3dbb300a1cd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1793909 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-12LLVM tools: Unittests for auto_llvm_bisection.pySalud Lemus
BUG=None TEST='./auto_llvm_bisection_unittest.py' passes Change-Id: Id5a2138d1f7247591b66e3a25d8313c59566c209 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1794042 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-12LLVM tools: Unittests for update_packages_and_run_tryjobs_unittest.pySalud Lemus
BUG=None TEST='./update_packages_and_run_tryjobs_unittest.py' passes Change-Id: I46768d5e0b85135ecf26eb2a7dad6ce7521051ba Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1793261 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-10llvm_tools: appease pylintGeorge Burgess IV
Pylint apparently dislikes a lot about these files. Make it happy. BUG=None TEST=`cros lint` Change-Id: I2752ca5872eb0c9b2daa2c0409ddc6347171418f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1793908 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-09-10llvm_tools: teach patch updating logic about google3-unstableGeorge Burgess IV
This CL lets us use the new google3-unstable option from update_chromeos_llvm_next_hash.py. It also includes some formatting changes forced by `yapf`. BUG=chromium:914081 TEST=Unittests have no new failures; ran the script with google3-unstable, and it appeared to parse. Change-Id: Ib70e238b383e91dfa7c7df04d716e7127402f68a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1793907 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-09-10llvm_tools: support grabbing google3's unstable LLVMGeorge Burgess IV
Google3 integrates LLVM pretty often -- using that as a foundation for testing might be a good idea. This CL enables us to pull the revision of their unstable LLVM. As an added bonus, this will also have us print a message to stderr when we're syncing LLVM for the first time. Otherwise, it may seem to a user that our script got hung up on something while that first clone happens. :) BUG=chromium:914081 TEST=Unittests. Ran the new get_llvm_hash functionality. Change-Id: I3a7088c25dbd7169ca31373daf0c46fb28f46a68 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1793906 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-09-09LLVM tools: Migrated all scripts to python3Salud Lemus
This CL includes changes such as replacements of `\'` with `"` and adding extra debugging output to some scripts. Currently, the scripts are in python2, so migrating them to python3 so they are more maintainable. BUG=None TEST=Ran each script by itself with various input (e.g. different google3, tot, etc.). Change-Id: Ib72b7744c6f7c13711c2db427f6524ff3cbc6205 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1787738 Tested-by: Salud Lemus <saludlemus@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-09-06llvm_tools: fix get_llvm_hash_unittestGeorge Burgess IV
It was broken when I tried to run it. This fixes it, and removes tests that no longer test anything meaningful (e.g. migration to `subprocess` made a lot of our "if ${command} failed, ...") logic go away. BUG=None TEST=./get_llvm_hash_unittest.py Change-Id: Id631e54f1d5af7c08e86f4fec9f97de79de4081d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1788665 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-09-04LLVM tools: Added a simple custom script exampleSalud Lemus
This custom script determines what to set the tryjob's 'status' to based off of the script's exit code. BUG=None TEST=Ran the 'update_tryjob_status.py' script with `--custom_script` and `--set_status custom_script` option. Used the absolute path to this script for `--custom_script`. The tryjob's 'status' was updated correctly based off of the exit code by the custom script. Change-Id: Ib4fe58406ba6f9c9cb0cdc9dcc3e7d5e9bb18fb7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1783838 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-03LLVM tools: Added auto bisection of LLVMSalud Lemus
Similar to 'llvm_bisection.py' script but uses `cros buildresult` to update each tryjob's 'status' field. The script sleeps for X minutes and continues where bisection left off (similar behavior if script terminates). The script is an infinite loop but terminates when there are no more revisions between the new 'start' and new 'end' or if an exception happens. This script is using the scripts such as bisection script and updating a tryjob's status script in a loop. BUG=None TEST=Ran 'auto_llvm_bisection.py' script with a file that was not created and start revision of 369410 and end revision of 369420. Successfully created tryjobs between the start and end and the script went to sleep for X minutes and woke up to resume where bisection left off. Change-Id: I711988b164c41f56ecc2c9478527bdcfe8f5bb88 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1776330 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-09-03LLVM tools: Updated README.md to include new scriptsSalud Lemus
Also added more examples for each script. BUG=None TEST=None Change-Id: Ic41217574a4a430d6869679ddc8e8c920795269b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1783103 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-28LLVM tools: Add extra return value for no tryjobsSalud Lemus
BUG=None TEST=Function returned correctly Change-Id: I568be1b17cc2fda982d4a4fa0d0c15d08475ea45 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1775399 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-28LLVM tools: Fixed unreferenced errorSalud Lemus
BUG=None TEST=Ran 'update_packages_and_run_tryjobs.py' with google3 option. Change-Id: I200b53239c9a557f59e94be7b2b4d0ee8e6cffb3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1775022 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2019-08-28LLVM tools: Added support for 'skip' and executing a custom scriptSalud Lemus
If a tryjob's status is set to 'skip', then that tryjob will not be considered when bisecting LLVM. And for executing a custom script, the exit code will be used by a mapping that sets the 'status' to the equivalent value of the exit code. BUG=None TEST=Ran the 'update_tryjob_status.py' with the 'skip' option and successfully set the tryjob's status to 'skip'. Also, created a testing script to serve as the custom script. Successfully set the 'status' value based off of the custom script's exit code. Change-Id: I0ae3a9b53467b13ff5ce26aeff46b31563cfc7e0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1772472 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-26LLVM tools: Maintain up-to-date LLVM repo in 'llvm_tools'Salud Lemus
Keeps an up-to-date LLVM source tree in 'llvm_tools' directory. Previously, the LLVM repo would be cloned once and then be forgotten. BUG=None TEST=Ran the 'llvm_bisection.py' script on a previously created JSON file (the script created it before). Successfully created tryjobs that were not in the 'jobs' list. Also, successfully kept the LLVM repo up-to-date in 'llvm_tools'. Change-Id: If9038da788eb0fe0fe258274c1942f1d687868b4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1769483 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-23LLVM tools: Change list now contains all tryjobs launchedSalud Lemus
After creating the CL, tryjobs are launched/submitted, so for each tryjob, its url is added to the CL as a comment (single comment). BUG=None TEST=Ran the 'update_packages_and_run_tryjobs.py' with 2 builders and successfully listed each tryjob's url as a single comment in the CL. Change-Id: I81cb23d35c00ba048f971c5263e5c8a76342c0cb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1769477 Tested-by: Salud Lemus <saludlemus@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-08-23LLVM tools: Added bisection of LLVMSalud Lemus
Bisects LLVM based using a JSON file and the last good version and the last bad version. The number of tryjobs that are launched in the between the two (good, bad) depends on the 'parallel' command line argument. Added support for modifying a tryjob's status. Added support for removing, relaunching, or adding a tryjob. BUG=None TEST=Ran the script with 'start_rev' as 367590 and 'end_rev' as 367622 and a JSON file that did not exist. Successfully created tryjobs. Ran, the script again after a few hours and also successfully created another set of tryjobs that were not in the 'jobs' list. Change-Id: I71a6d74f62c6f6fc212209c1faa73e729912b086 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1761469 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-22LLVM tools: Display to stdout when the log level is 'verbose'Salud Lemus
BUG=None TEST=Ran the 'update_chromeos_llvm_next_hash.py' with log level set to 'none' and then with 'verbose'. It correctly displayed to stdout for 'verbose'. Change-Id: Ib6b3bba44ccdb78a0d000f51287ffc7b0b5670d5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1766581 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-22LLVM tools: Fixed remove patches mode when dealing with future patchesSalud Lemus
The issue was that if a patch is from the future (e.g. its start version > SVN version) then that patch would be removed in 'remove_patches' mode. BUG=None TEST=Ran the script on revision 365631 and the expected patches to be removed were removed from the JSON file. Change-Id: I42e63f972103b4f48b6e9ffeaa75a0263f31ec79 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1765950 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-16LLVM tools: Moved function that retrieves latest g3 LLVM versionSalud Lemus
BUG=None TEST=Ran the script that creates tryjobs for both 'tot' and 'google3' Change-Id: I1be3971ab8858cb21d9d95b63b1bf60a98d3c7b9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1758728 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-16LLVM tools: Added support for bisection of patchesSalud Lemus
Changed 'get_google3_llvm_version.py' and 'get_llvm_hash.py' to use the subprocess module instead of the command executer because the patch manager script uses some methods for bisection (retrieving the good and bad hash). They were also changed because the ebuilds will not have access to the command executer when invoking the patch manager script. BUG=None TEST=Ran the script on SVN version of 367622 without continuing bisection and successfully bisected the failed patch and terminated the script. Then moved HEAD of source tree to the bisected SVN version and applied the patch manually to test correctness and also moved HEAD to the SVN version one above it and one below it and also manually applied the patch. Change-Id: I2367b76e9bb4d0c95d651ec7b3f66e582155d2c7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1752526 Tested-by: Salud Lemus <saludlemus@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-08-12LLVM tools: Assert that the scripts are not run inside the chrootSalud Lemus
BUG=None TEST=Scripts terminated when ran inside the chroot Change-Id: Id7060ca6554a05f158160e73759763663dec1ce9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1742544 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-10llvm-tools: Use the chromium mirror for gettting tot hash.Manoj Gupta
We were querying github to get the tot git hash. However, the ebuilds use the chromium mirror for llvm sources. As the mirror can be behind github, it caused a version skew where the sources could not be checked out to the desired tot hash. BUG=None TEST=update_packages script. Change-Id: I6510213f8de2ea29b26f46741a5da7b4c81f59e0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1747167 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2019-08-07LLVM tools: Added README.md for clarification on the scriptsSalud Lemus
BUG=None TEST=None Change-Id: Ie112596f6297d5b60346e85bda45aa41284ecbf5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1740547 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-07LLVM tools: Updated unittests for ToT optionSalud Lemus
BUG=None TEST='./update_chromeos_llvm_next_hash_unittest.py' and './llvm_patch_management_unittest.py' pass Change-Id: I59bb1f8a1be5610c3a2c64b365392c07e95f97fb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1739606 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Salud Lemus <saludlemus@google.com>
2019-08-06llvm-tools: Remove assert when stderr is non-empty.Manoj Gupta
stderr often can have a non-empty value. e.g. On my machine, I got: WARNING cros_sdk:enter_chroot: Gclient cache dir "/tmp/git-cache" is not a directory. Therefore remove the assert for empty stderr. BUG=None TEST=No asserts Change-Id: I9f175aca9bbcee2acbb77bacfd8806de985d3447 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1738324 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2019-08-06LLVM tools: Added script that runs tryjobs after updating the packagesSalud Lemus
BUG=None TEST=Ran the script and a CL was generated for ToT correctly and two trybots were created, one for kevin and one for nocturne Change-Id: I856c23d4368f5e45d9837e6f4341ae1f97f8f136 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1733650 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2019-08-02LLVM tools: Moved parsing 'llvm-svn' of a commit message to another functionSalud Lemus
BUG=None TEST='./get_llvm_hash_unittest.py' passes Change-Id: I7cbb34a9e7924104aaa5934ca2156f547f421450 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1731735 Tested-by: Salud Lemus <saludlemus@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>