[go: nahoru, domu]

Relandx2: "Move a couple telemetry_gpu_integration_tests to generated_scripts"

This reverts commit 51b88756ceb481915fa3e33de3d97d2be4a346c4.

Reland fix: no diff in this CL.
Instead, originally broken builders have been turned down:
https://crrev.com/i/7393865

Original change's description:
> Revert "Reland "Move a couple telemetry_gpu_integration_tests to generated_scripts""
>
> This reverts commit 347b96784d0916898ed1d68b2bf0968ff073393d.
>
> Reason for revert:
> CrOS perf builders started to fail on resource size step.
> E.g.:
> https://ci.chromium.org/ui/p/chrome/builders/ci/chromeos-arm64-generic-lacros-builder-perf/40254/overview
> https://ci.chromium.org/ui/p/chrome/builders/ci/chromeos-amd64-generic-lacros-builder-perf/97208/overview
>
> Original change's description:
> > Reland "Move a couple telemetry_gpu_integration_tests to generated_scripts"
> >
> > This is a reland of commit 1f7e91a1818819b8ee31caa310ed4a8d6d84d00e
> >
> > Reland fix: Use "@WrappedPath(.)" instead of rebase_path() for the
> > non-android copy of the args. Whoops.
> >
> > Confirmed this fixes the determinism issue:
> > $ md5sum out/linux1/bin/run_telemetry_gpu_integration_test out/linux2/bin/run_telemetry_gpu_integration_test
> > 8a639ea78fab9b9ab8ce2c3891bbeb7c  out/linux1/bin/run_telemetry_gpu_integration_test
> > 8a639ea78fab9b9ab8ce2c3891bbeb7c  out/linux2/bin/run_telemetry_gpu_integration_test
> >
> > Original change's description:
> > > Move a couple telemetry_gpu_integration_tests to generated_scripts
> > >
> > > We're trying to support arbitrarily-named build dirs, both for bots and
> > > for devs. However, some suites hard-code the usual build dir names
> > > (like "Release") and assume it matches the actual build dir. Telemetry
> > > has such assumptions:
> > > https://source.chromium.org/chromium/chromium/src/+/main:third_party/catapult/telemetry/telemetry/core/util.py;drc=e3f9ae73db5135ad998108113af7ef82a47efc51;l=104
> > >
> > > This can lead to errors when the user/bot uses a build dir not named
> > > any of those. Moving a suite to be invoked as a generated script can
> > > be a perfect fix for that. We can bind the name of the build dir to
> > > the cmd-line invocation in the target's def.
> > >
> > > So this moves a couple telemetry-gpu suites to be generated scripts.
> > > This requires:
> > > - moving the target definition they map to to be a generated-wrapper
> > >   rather than just a group()
> > > - moving their classification from infra's PoV as a "script" to a
> > >   "generated_script"
> > > - moving their args from being listed in starlark, to being listed in
> > >   GN.
> > >
> > > This doesn't preclude devs/bots from invoking it the old way. It
> > > simply opens up another method. ie: Instead of running the full cmd
> > > line, the bots can now run `./bin/run_telemetry_gpu_integration_test`
> > > So this moves the desktop runs of telemetry_gpu_integration_test, and
> > > android runs of telemetry_gpu_integration_test_android_chrome. There
> > > are more to migrate, but this just moves those two as a first step.
> > > More can be migrated in follow-ups.
> > >
> > > This appears to be the first time android-device and CrOS-device
> > > tests will be classified as "generated_scripts". So there was a few
> > > issues to work out:
> > >
> > > - Most/all Android tests on swarming today get a script prepended to
> > >   them that streams logcats to logdog. To keep that wrapper running
> > >   on the bots, we include it in the wrapper target. This means
> > >   that it will also run for a dev if the dev invokes the generated
> > >   script, which might not be great. That logdog script also needs a
> > >   swarming specific cmd-line arg, which also isn't great (since we
> > >   don't know anything about swarming test pools at GN/ninja time). To
> > >   solve both of those issues, this CL also changes the logdog script to:
> > >   a) Fetch the logdog_butler binary from PATH. This prevents it from
> > >      needing to be passed the swarming-specific cmd line arg.
> > >   b) Gracefully pass-through to the test if the logdog_butler binary
> > >      isn't found for devs. But fail loudly if it's running on swarming.
> > >
> > > - Similar to Android, most/all CrOS device script tests on swarming
> > >   today get a separate wrapper script prepended to their tests that
> > >   prepare a DUT for testing. So we do the same thing as the logdog
> > >   wrapper, and prepend this wrapper script in the target definition.
> > >   Unlike the logdog one, this CrOS wrapper should be safe to run for
> > >   a dev locally. (In fact, it likely needs to.)
> > >
> > > - That same CrOS-specific wrapper script has an arg to dump DUT logs to
> > >   after the test finishes. For tests on the bot, the value of this
> > >   arg is swarming-specific, so we can't know it at GN time, and so
> > >   can't put it in the GN definition. Fortunately, its presence doesn't
> > >   affect the outcome of the actual tests at all. So we can just only
> > >   append it for swarming invocations (via GetSwarmingCommand in mb.py).
> > >   So devs running the generated wrapper script locally should be fine.
> > >
> > > Bug: 342602628
> > > Change-Id: I62357617b3db036bc88b71bba70d74bb7e5eea7f
> > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5569388
> > > Cr-Commit-Position: refs/heads/main@{#1310036}
> >
> > Bug: 342602628
> > Change-Id: I48f0383388b5d1542cd195144185125faee97d20
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5602230
> > Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
> > Reviewed-by: Andrew Grieve <agrieve@chromium.org>
> > Commit-Queue: Ben Pastene <bpastene@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1311409}
>
> Bug: 342602628
> Change-Id: I1d2232967470383f939e2c9023f957c015dd1639
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5622610
> Cr-Commit-Position: refs/heads/main@{#1313620}

Bug: 342602628
Change-Id: I49098144453e8f79bd2de7975c1e2bad0bc0f259
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5640373
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1318707}
7 files changed
tree: 4cafc66fd4a5b2b4087de4b8d0144136a8c36adc
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. webkit/
  51. .clang-format
  52. .clang-tidy
  53. .clangd
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitallowed
  57. .gitattributes
  58. .gitignore
  59. .gitmodules
  60. .gn
  61. .mailmap
  62. .rustfmt.toml
  63. .vpython3
  64. .yapfignore
  65. ATL_OWNERS
  66. AUTHORS
  67. BUILD.gn
  68. CODE_OF_CONDUCT.md
  69. codereview.settings
  70. CPPLINT.cfg
  71. DEPS
  72. DIR_METADATA
  73. LICENSE
  74. LICENSE.chromium_os
  75. OWNERS
  76. PRESUBMIT.py
  77. PRESUBMIT_test.py
  78. PRESUBMIT_test_mocks.py
  79. README.md
  80. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure.

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.