7#ifndef MIDEND_COVERAGE_H_
8#define MIDEND_COVERAGE_H_
14#include "ir/visitor.h"
15#include "lib/source_file.h"
51class CollectNodes :
public Inspector {
59 bool preorder(
const IR::BaseAssignmentStatement *stmt)
override;
60 bool preorder(
const IR::MethodCallStatement *stmt)
override;
61 bool preorder(
const IR::ExitStatement *stmt)
override;
64 bool preorder(
const IR::Entry *entry)
override;
67 bool preorder(
const IR::P4Action *act)
override;
70 bool preorder(
const IR::ParserState *state)
override;
const CoverageSet & getCoverableNodes()
Definition coverage.cpp:102
Definition coverage.cpp:11
bool coverParserStates
Cover IR::ParserState.
Definition coverage.h:39
bool coverStatements
Cover IR::Statement.
Definition coverage.h:33
bool onlyCoveringTests
Skip tests which do not increase coverage.
Definition coverage.h:42
void printCoverageReport(const CoverageSet &all, const CoverageSet &visited)
Produces detailed final coverage log.
Definition coverage.cpp:70
bool coverActions
Cover IR::P4Action.
Definition coverage.h:37
std::set< const IR::Node *, SourceIdCmp > CoverageSet
Definition coverage.h:47
void logCoverage(const CoverageSet &all, const CoverageSet &visited, const CoverageSet &new_)
Logs nodes from new_ which have not yet been visited (are not members of visited).
Definition coverage.cpp:91
bool coverTableEntries
Cover IR::Entry.
Definition coverage.h:35
Specifies general options and which IR nodes to track with this particular visitor.
Definition coverage.h:31
Utility function to compare IR nodes in a set. We use their source info.
Definition coverage.h:26