P4C
The P4 Compiler
Loading...
Searching...
No Matches
path_selection.h
1/*
2 * SPDX-FileCopyrightText: 2023 The P4 Language Consortium
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SYMBOLIC_EXECUTOR_PATH_SELECTION_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SYMBOLIC_EXECUTOR_PATH_SELECTION_H_
9
10#include <set>
11
12namespace P4::P4Tools::P4Testgen {
13
14enum class PathSelectionPolicy {
15 DepthFirst,
16 RandomBacktrack,
17 GreedyStmtCoverage,
18};
19
20inline bool requiresLookahead(PathSelectionPolicy &pathSelectionPolicy) {
21 static const std::set LOOKAHEAD_STRATEGYIES = {PathSelectionPolicy::GreedyStmtCoverage};
22 return LOOKAHEAD_STRATEGYIES.find(pathSelectionPolicy) != LOOKAHEAD_STRATEGYIES.end();
23}
24
25} // namespace P4::P4Tools::P4Testgen
26
27#endif /* BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SYMBOLIC_EXECUTOR_PATH_SELECTION_H_ */