• Show log

    Commit

  • Hash : 298abbc1
    Author : angle-autoroll
    Date : 2024-02-16T08:50:43

    Roll Chromium from 29bec8631d2f to 9d4a35b46e1e (1220 revisions)
    
    Amend the roll with http://crrev.com/c/5301614 courtesy agrieve@.
    
    https://chromium.googlesource.com/chromium/src.git/+log/29bec8631d2f..9d4a35b46e1e
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/chromium-angle-autoroll
    Please CC angle-team@google.com,geofflang@google.com on the revert to
    ensure that a human
    is aware of the problem.
    
    To file a bug in Chromium:
    https://bugs.chromium.org/p/chromium/issues/entry
    To file a bug in ANGLE:
    https://bugs.chromium.org/p/angleproject/issues/entry
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    
    Changed dependencies
    * build: https://chromium.googlesource.com/chromium/src/build.git/+log/2cece96e17..a11ae4664a
    * buildtools/linux64: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
    * buildtools/mac: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
    * buildtools/win: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
    * testing: https://chromium.googlesource.com/chromium/src/testing/+log/c37870b5fd..5e8f58ef80
    * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/d353dfb095..984707e65c
    * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f39e9d8c1a..ad0b8e7a0e
    * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/51589f432d..3d6c15240b
    * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a5a09d23fa..b1b1a43f07
    * third_party/fuchsia-sdk/sdk: version:18.20240207.3.1..version:18.20240215.1.1
    * third_party/r8: tp4vVuXzmyHJxDFlwxDb7RYZLLEufc3EnGTyOTCTNkgC..f7pPpoVTaC3WoBY5dURVrI-N1_4YZpSYipdiDUeWDAEC
    * third_party/siso: git_revision:3cd0e6e55246b8eca6646e33b124e54e67fc5660..git_revision:4bede4f49669d3a8bdaa8dbd01620c3a07ae0c4e
    * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/894ad691c6..47756615f5
    No update to Clang.
    
    Bug: angleproject:6081, chromium:324916799
    Change-Id: Ib097e6dca9374111632838beab4f0224ff6196fc
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5302166
    Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
    Reviewed-by: Geoff Lang <geofflang@chromium.org>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags

  • README.md

  • ANGLE Test Harness

    The ANGLE test harness is a harness around GoogleTest that provides functionality similar to the Chromium test harness. It features:

    • splitting a test set into shards
    • catching and reporting crashes and timeouts
    • outputting to the Chromium JSON test results format
    • multi-process execution

    Command-Line Arguments

    The ANGLE test harness accepts all standard GoogleTest arguments. The harness also accepts the following additional command-line arguments:

    • --batch-size limits the number of tests to run in each batch
    • --batch-timeout limits the amount of time spent in each batch
    • --bot-mode enables multi-process execution and test batching
    • --debug-test-groups dumps the test config categories when using bot-mode
    • --filter-file allows passing a larger gtest_filter via a file
    • --histogram-json-file outputs a formatted JSON file for perf dashboards
    • --max-processes limits the number of simuntaneous processes
    • --results-directory specifies a directory to write test results to
    • --results-file specifies a location for the JSON test result output
    • --shard-count and --shard-index control the test sharding
    • --test-timeout limits the amount of time spent in each test
    • --flaky-retries allows for tests to fail a fixed number of times and still pass
    • --disable-crash-handler forces off OS-level crash handling
    • --isolated-outdir specifies a test artifacts directory
    • --max-failures specifies a count of failures after which the harness early exits.

    --isolated-script-test-output and --isolated-script-perf-test-output mirror --results-file and --histogram-json-file respectively.

    As well as the custom command-line arguments we support a few standard GoogleTest arguments:

    • gtest_filter works as it normally does with GoogleTest
    • gtest_also_run_disabled_tests works as it normally does as well

    Other GoogleTest arguments are not supported although they may work.

    Implementation Notes

    • The test harness only requires angle_common and angle_util.
    • It does not depend on any Chromium browser code. This allows us to compile on other non-Clang platforms.
    • It uses rapidjson to read and write JSON files.
    • Test execution is not currently deterministic in multi-process mode.

    Normal Mode vs Bot Mode

    The test runner has two main modes of operation: normal and bot mode.

    During normal mode:

    • Tests are executed single-process and single-thread.
    • The test runner executes the GoogleTest Run function.
    • We use a TestEventListener to record test results for our output JSON file.
    • A watchdog thread will force a fast exit if no test results get recorded after a timeout.
    • Crashes are handled via ANGLE’s test crash handling code.

    During bot mode:

    • Tests are run in multiple processes depending on the system processor count.
    • A server process records the child processes’ stdout and stderr.
    • The server terminates a child process if there’s no progress after a timeout.
    • The server sorts work into batches according to the back-end configuration.
    • This prevents driver errors from using multiple back-ends in the same process.
    • Batches are striped to help split up slow groups of tests.
    • The server passes test batches to child processes via a gtest_filter file.
    • Bot mode does not work on Android or Fuchsia.

    See the source code for more details: TestSuite.h and TestSuite.cpp.

    Potential Areas of Improvement

    • Deterministic test execution.
    • Using sockets to communicate with test children. Similar to dEQP’s test harness.
    • Closer integration with ANGLE’s test expectations and system config libraries.
    • Supporting a GoogleTest-free integration.