• Leszek Swirski's avatar
    [test] Make cctest run one test, with maybe custom platform · 49c507dc
    Leszek Swirski authored
    Remove cctest's ability to run multiple tests (which has long been
    deprecated and mostly broken). We can then make platform & V8
    initialisation be part of running the test's Run method.
    
    In particular, this allows us to inject custom logic into the platform
    initialisation, like setting up a platform wrapper. Add a
    TEST_WITH_PLATFORM which exercises this by registering a platform
    factory on the test, and wrapping the default platform using this
    factory. This allows these tests to guarantee that the lifetime of the
    platform is longer than the lifetime of the isolate.
    
    As a result of this, we can also remove the complexity around draining
    platform state in the TestPlatform (since it will now have a longer
    lifetime than the Isolate using it), and as a drive-by clean up the
    TestPlaform to use a CcTest-global "default platform" instead of trying
    to scope over the "current" platform.
    
    As another drive-by, change the linked-list of CcTests and the linear
    search through it into an std::map of tests.
    
    Change-Id: I610f6312fe042f29f45cc4dfba311e4184bc7759
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569223Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79772}
    49c507dc
cctest.h 28.2 KB