• davidgow@google.com's avatar
    kunit: Add APIs for managing devices · d03c720e
    davidgow@google.com authored
    Tests for drivers often require a struct device to pass to other
    functions. While it's possible to create these with
    root_device_register(), or to use something like a platform device, this
    is both a misuse of those APIs, and can be difficult to clean up after,
    for example, a failed assertion.
    
    Add some KUnit-specific functions for registering and unregistering a
    struct device:
    - kunit_device_register()
    - kunit_device_register_with_driver()
    - kunit_device_unregister()
    
    These helpers allocate a on a 'kunit' bus which will either probe the
    driver passed in (kunit_device_register_with_driver), or will create a
    stub driver (kunit_device_register) which is cleaned up on test shutdown.
    
    Devices are automatically unregistered on test shutdown, but can be
    manually unregistered earlier with kunit_device_unregister() in order
    to, for example, test device release code.
    Reviewed-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
    Reviewed-by: default avatarMaxime Ripard <mripard@kernel.org>
    Signed-off-by: default avatarDavid Gow <davidgow@google.com>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    d03c720e
device.h 2.77 KB