def gen_results_sub(items, results, fail_msgs):
    '\n            Generate the results table from the test runs (builds are ignored).\n            The table has 3 columns - name, passing and total as a list of dicts.\n            This is populated for all tests. The number of passing and total is\n            in reference to the number of iterations or reseeds for that test.\n            This list of dicts is directly consumed by the Testplan::results_table\n            method for testplan mapping / annotation.\n            '
    for item in items:
        if (item.status == 'F'):
            fail_msgs += item.fail_msg
        if (item.target == 'run'):
            result = retrieve_result(item.name, results)
            if (result is None):
                result = {'name': item.name, 'passing': 0, 'total': 0}
                results.append(result)
            if (item.status == 'P'):
                result['passing'] += 1
            result['total'] += 1
        (results, fail_msgs) = gen_results_sub(item.sub, results, fail_msgs)
    return (results, fail_msgs)
Generate the results table from the test runs (builds are ignored).
The table has 3 columns - name, passing and total as a list of dicts.
This is populated for all tests. The number of passing and total is
in reference to the number of iterations or reseeds for that test.
This list of dicts is directly consumed by the Testplan::results_table
method for testplan mapping / annotation.
def gen_results_sub(items, results, fail_msgs):
    '\n            Generate the results table from the test runs (builds are ignored).\n            The table has 3 columns - name, passing and total as a list of dicts.\n            This is populated for all tests. The number of passing and total is\n            in reference to the number of iterations or reseeds for that test.\n            This list of dicts is directly consumed by the Testplan::results_table\n            method for testplan mapping / annotation.\n            '
    for item in items:
        if (item.status == 'F'):
            fail_msgs += item.fail_msg
        if (item.target == 'run'):
            result = retrieve_result(item.name, results)
            if (result is None):
                result = {'name': item.name, 'passing': 0, 'total': 0}
                results.append(result)
            if (item.status == 'P'):
                result['passing'] += 1
            result['total'] += 1
        (results, fail_msgs) = gen_results_sub(item.sub, results, fail_msgs)
    return (results, fail_msgs)