• Rae Moar's avatar
    kunit: Add ability to filter attributes · 529534e8
    Rae Moar authored
    Add filtering of test attributes. Users can filter tests using the
    module_param called "filter".
    
    Filters are imputed in the format: <attribute_name><operation><value>
    
    Example: kunit.filter="speed>slow"
    
    Operations include: >, <, >=, <=, !=, and =. These operations will act the
    same for attributes of the same type but may not between types.
    
    Note multiple filters can be inputted by separating them with a comma.
    Example: kunit.filter="speed=slow, module!=example"
    
    Since both suites and test cases can have attributes, there may be
    conflicts. The process of filtering follows these rules:
    - Filtering always operates at a per-test level.
    - If a test has an attribute set, then the test's value is filtered on.
    - Otherwise, the value falls back to the suite's value.
    - If neither are set, the attribute has a global "default" value, which
      is used.
    
    Filtered tests will not be run or show in output. The tests can instead be
    skipped using the configurable option "kunit.filter_action=skip".
    
    Note the default settings for running tests remains unfiltered.
    
    Finally, add "filter" methods for the speed and module attributes to parse
    and compare attribute values.
    
    Note this filtering functionality will be added to kunit.py in the next
    patch.
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarRae Moar <rmoar@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    529534e8
test.c 20.7 KB