1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
/*******************************************************************\
Module: Unit test utilities
Author: Diffblue Ltd.
\*******************************************************************/
/// \file
/// Utilties for inspecting java_parse_treet
#ifndef CPROVER_JAVA_TESTING_UTILS_REQUIRE_PARSE_TREE_H
#define CPROVER_JAVA_TESTING_UTILS_REQUIRE_PARSE_TREE_H
#include <java_bytecode/java_bytecode_parse_tree.h>
// NOLINTNEXTLINE(readability/namespace)
namespace require_parse_tree
{
typedef java_bytecode_parse_treet::classt::lambda_method_handlet
lambda_method_handlet;
lambda_method_handlet require_lambda_entry_for_descriptor(
const java_bytecode_parse_treet::classt &parsed_class,
const std::string &lambda_method_ref);
typedef java_bytecode_parse_treet::methodt methodt;
const methodt require_method(
const java_bytecode_parse_treet::classt &parsed_class,
const irep_idt &method_name);
struct expected_instructiont
{
expected_instructiont(
const irep_idt &instruction_mnemoic,
const std::vector<exprt> &instruction_arguments)
: instruction_mnemoic(instruction_mnemoic),
instruction_arguments(instruction_arguments)
{
}
void require_instructions_equal(
java_bytecode_parse_treet::instructiont actual_instruction) const;
private:
irep_idt instruction_mnemoic;
std::vector<exprt> instruction_arguments;
};
typedef std::vector<expected_instructiont> expected_instructionst;
void require_instructions_match_expectation(
const expected_instructionst &expected_instructions,
const java_bytecode_parse_treet::methodt::instructionst instructions);
}
#endif // CPROVER_JAVA_TESTING_UTILS_REQUIRE_PARSE_TREE_H
|