Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7d50a0d authored by Lucas Bates's avatar Lucas Bates Committed by David S. Miller
Browse files

tc-testing: Allow tdc plugins to see test case data



Instead of only passing the test case name and ID, pass the
entire current test case down to the plugins. This change
allows plugins to start accepting commands and directives
from the test cases themselves, for greater flexibility
in testing.

Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a1cd4e43
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -18,12 +18,11 @@ class TdcPlugin:
        if self.args.verbose > 1:
            print(' -- {}.post_suite'.format(self.sub_class))

    def pre_case(self, testid, test_name, test_skip):
    def pre_case(self, caseinfo, test_skip):
        '''run commands before test_runner does one test'''
        if self.args.verbose > 1:
            print(' -- {}.pre_case'.format(self.sub_class))
        self.args.testid = testid
        self.args.test_name = test_name
        self.args.caseinfo = caseinfo
        self.args.test_skip = test_skip

    def post_case(self):
+5 −5
Original line number Diff line number Diff line
@@ -122,15 +122,15 @@ class PluginMgr:
        for pgn_inst in reversed(self.plugin_instances):
            pgn_inst.post_suite(index)

    def call_pre_case(self, testid, test_name, *, test_skip=False):
    def call_pre_case(self, caseinfo, *, test_skip=False):
        for pgn_inst in self.plugin_instances:
            try:
                pgn_inst.pre_case(testid, test_name, test_skip)
                pgn_inst.pre_case(caseinfo, test_skip)
            except Exception as ee:
                print('exception {} in call to pre_case for {} plugin'.
                      format(ee, pgn_inst.__class__))
                print('test_ordinal is {}'.format(test_ordinal))
                print('testid is {}'.format(testid))
                print('testid is {}'.format(caseinfo['id']))
                raise

    def call_post_case(self):
@@ -261,14 +261,14 @@ def run_one_test(pm, args, index, tidx):
            res = TestResult(tidx['id'], tidx['name'])
            res.set_result(ResultState.skip)
            res.set_errormsg('Test case designated as skipped.')
            pm.call_pre_case(tidx['id'], tidx['name'], test_skip=True)
            pm.call_pre_case(tidx, test_skip=True)
            pm.call_post_execute()
            return res

    # populate NAMES with TESTID for this test
    NAMES['TESTID'] = tidx['id']

    pm.call_pre_case(tidx['id'], tidx['name'])
    pm.call_pre_case(tidx)
    prepare_env(args, pm, 'setup', "-----> prepare stage", tidx["setup"])

    if (args.verbose > 0):