• Daniel Latypov's avatar
    kunit: drop assumption in kunit-log-test about current suite · b7cbaef3
    Daniel Latypov authored
    This test assumes that the declared kunit_suite object is the exact one
    which is being executed, which KUnit will not guarantee [1].
    
    Specifically, `suite->log` is not initialized until a suite object is
    executed. So if KUnit makes a copy of the suite and runs that instead,
    this test dereferences an invalid pointer and (hopefully) segfaults.
    
    N.B. since we no longer assume this, we can no longer verify that
    `suite->log` is *not* allocated during normal execution.
    
    An alternative to this patch that would allow us to test that would
    require exposing an API for the current test to get its current suite.
    Exposing that for one internal kunit test seems like overkill, and
    grants users more footguns (e.g. reusing a test case in multiple suites
    and changing behavior based on the suite name, dynamically modifying the
    setup/cleanup funcs, storing/reading stuff out of the suite->log, etc.).
    
    [1] In a subsequent patch, KUnit will allow running subsets of test
    cases within a suite by making a copy of the suite w/ the filtered test
    list. But there are other reasons KUnit might execute a copy, e.g. if it
    ever wants to support parallel execution of different suites, recovering
    from errors and restarting suites
    Signed-off-by: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    b7cbaef3
kunit-test.c 12.5 KB