def gen_envinfo(self, sepfile=None): if sepfile: self.rstf = RSTfile(sepfile) self.rstf.write(rest.chapter("Verification Environment")) self.gen_suite_environ() self.rstf.write("~\n") self.gen_suite_options() if sepfile: self.rstf.close()
def gen_tssummary(self, sepfile): if sepfile: self.rstf = RSTfile(sepfile) self.rstf.write(".. _tssummary:\n") self.rstf.write(rest.chapter("Testsuite Status summary")) RSTtable(title=None, text="This table summarizes status and expectation counters " "for each test category across the entire testsuite. Please " "refer to the :ref:`tctable` section of this report for an " "explanation of the legend. ", columns=self.sumcolumns(), contents=self.sumcontents()).dump_to(self.rstf) if sepfile: self.rstf.close()
def gen_tctables(self, sepfile=None): if sepfile: self.rstf = RSTfile(sepfile) self.rstf.write(".. _tctable:\n") self.rstf.write(rest.chapter("Testcase Execution summary")) # Arrange to get a single description and legend followed by a set of # tables with data for each category. RSTtable( title=None, text=( "The following tables list all the testcases that were " "executed, with their execution status and a set of " "expectation counters." "\n\n" "*Expectations* there refer to expected coverage assessment " "diagnostics stated as embedded comments within the test " "sources. *Violations* refer to " "deviations with respect to a given coverage criterion, " "that tests trigger on purpose and which we *expect* the " "tool to detect. For example, a test arranging not to execute " "a specific statement triggers a statement coverage violation " "on purpose, which the tool must report for the test to pass. " "The `scv` counter for a testcase is then the number of " "such statement coverage violations, triggered by the tests " "executed for this testcase and that the testsuite harness " "has verified the tool did detect." "\n\n" "The possible test execution statuses are: " "*passed* when all the expectations were satisfied and no " "other violation was reported, *xfail* (expected failure) " "when the results reported by the tool don't conform to " "requirements for an understood and acknowledged reason, and " "*failed* otherwise." "\n\n" "The set of tables is partitioned according to " "language/coverage-criterion associations described by " "section titles. The text in square brackets at the end " "of each section title is a common prefix to the Testcase " "Identifier column, just not repeated on every line. These " "identifiers match those used in the TOR document so can " "be used to look up results from testcase descriptions or " "vice-versa." "\n\n" "A general summary of all the results is provided in the " ":ref:`tssummary` section of this report.\n"), columns=self.tccolumns(), contents=None, ).dump_to(self.rstf) [ RSTtable(title=("%s tests [ %s/... ]" % (cat.name, cat.qmprefix)), text=None, columns=self.tccolumns(), contents=[self.tcdict_for(qd) for qd in cat.qdl]).dump_to(self.rstf) for cat in self.categories if cat.qdl and not cat.internal ] if sepfile: self.rstf.close()
def gen_index(self, sepfiles): self.rstf = RSTfile("index.rst") self.rstf.write(rest.chapter('GNATcoverage Software Test Results')) self.rstf.write(rest.toctree(sepfiles, depth=1)) self.rstf.close()