• Show log

    Commit

  • Hash : debe4683
    Author : Jamie Madill
    Date : 2020-07-15T14:36:33

    Test Runner: Accept Chromium args.
    
    This change lets the test runner accept the same isolated script
    parameter syntax as Chromium. It keeps the old parameter names so
    the tests accept both. This will let us more easily integrate with
    the Chromium Android test_runner.py script.
    
    Also update the README which was missing a few flags.
    
    Bug: angleproject:3162
    Change-Id: Ic22b289a095418ffdaa19a04caa1b45c6c657872
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300530
    Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
    Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
    Commit-Queue: Jamie Madill <jmadill@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 larget 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

    --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.
    • Timeouts are detected via a watchdog thread.
    • Crashes are handled via ANGLE’s test crash handling code.
    • Currently it does not entirely support Android or Fuchsia.
    • Test execution is not currently deterministic in multi-process mode.
    • We capture stdout to output test failure reasons.

    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.