Merge pull request #2488 from polgreen/common_call_graph_funcs

factor out common call graph unit test functions into header
This commit is contained in:
Michael Tautschnig 2018-06-28 10:05:05 +01:00 committed by GitHub
commit 5423ea4429
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 68 additions and 69 deletions

View File

@ -8,40 +8,17 @@ Author:
#include <iostream>
#include <testing-utils/call_graph_test_utils.h>
#include <testing-utils/catch.hpp>
#include <analyses/call_graph.h>
#include <analyses/call_graph_helpers.h>
#include <util/symbol_table.h>
#include <util/std_code.h>
#include <goto-programs/goto_convert_functions.h>
static symbolt create_void_function_symbol(
const irep_idt &name,
const codet &code)
{
const code_typet void_function_type({}, empty_typet());
symbolt function;
function.name=name;
function.type=void_function_type;
function.mode=ID_java;
function.value=code;
return function;
}
static bool multimap_key_matches(
const std::multimap<irep_idt, irep_idt> &map,
const irep_idt &key,
const std::set<irep_idt> &values)
{
auto matching_values=map.equal_range(key);
std::set<irep_idt> matching_set;
for(auto it=matching_values.first; it!=matching_values.second; ++it)
matching_set.insert(it->second);
return matching_set==values;
}
SCENARIO("call_graph",
"[core][util][call_graph]")

View File

@ -8,28 +8,16 @@ Author: Chris Smowton, chris.smowton@diffblue.com
#include <iostream>
#include <testing-utils/catch.hpp>
#include <analyses/dependence_graph.h>
#include <util/symbol_table.h>
#include <util/std_code.h>
#include <util/c_types.h>
#include <util/arith_tools.h>
#include <ansi-c/ansi_c_language.h>
#include <goto-programs/goto_convert_functions.h>
#include <langapi/mode.h>
#include <ansi-c/ansi_c_language.h>
static symbolt create_void_function_symbol(
const irep_idt &name,
const codet &code)
{
const code_typet void_function_type({}, empty_typet());
symbolt function;
function.name = name;
function.type = void_function_type;
function.mode = ID_java;
function.value = code;
return function;
}
#include <testing-utils/call_graph_test_utils.h>
#include <testing-utils/catch.hpp>
#include <util/arith_tools.h>
#include <util/c_types.h>
#include <util/std_code.h>
#include <util/symbol_table.h>
const std::set<goto_programt::const_targett>&
dependence_graph_test_get_control_deps(const dep_graph_domaint &domain)

View File

@ -8,40 +8,15 @@ Author:
#include <iostream>
#include <testing-utils/call_graph_test_utils.h>
#include <testing-utils/catch.hpp>
#include <analyses/call_graph.h>
#include <analyses/call_graph_helpers.h>
#include <util/std_code.h>
#include <util/symbol_table.h>
#include <goto-programs/goto_convert_functions.h>
static symbolt
create_void_function_symbol(const irep_idt &name, const codet &code)
{
const code_typet void_function_type({}, empty_typet());
symbolt function;
function.name = name;
function.type = void_function_type;
function.mode = ID_java;
function.value = code;
return function;
}
static bool multimap_key_matches(
const std::multimap<irep_idt, irep_idt> &map,
const irep_idt &key,
const std::set<irep_idt> &values)
{
auto matching_values = map.equal_range(key);
std::set<irep_idt> matching_set;
for(auto it = matching_values.first; it != matching_values.second; ++it)
matching_set.insert(it->second);
return matching_set == values;
}
SCENARIO("graph", "[core][util][graph]")
{
GIVEN("Some cyclic function calls")

View File

@ -1,4 +1,5 @@
SRC = \
call_graph_test_utils.cpp \
free_form_cmdline.cpp \
message.cpp \
require_expr.cpp \

View File

@ -0,0 +1,33 @@
/*******************************************************************\
Module: Call graph test utils
Author: Chris Smowton, chris.smowton@diffblue.com
\*******************************************************************/
#include "call_graph_test_utils.h"
symbolt
create_void_function_symbol(const irep_idt &name, const codet &code)
{
const code_typet void_function_type({}, empty_typet());
symbolt function;
function.name = name;
function.type = void_function_type;
function.mode = ID_java;
function.value = code;
return function;
}
bool multimap_key_matches(
const std::multimap<irep_idt, irep_idt> &map,
const irep_idt &key,
const std::set<irep_idt> &values)
{
auto matching_values = map.equal_range(key);
std::set<irep_idt> matching_set;
for(auto it = matching_values.first; it != matching_values.second; ++it)
matching_set.insert(it->second);
return matching_set == values;
}

View File

@ -0,0 +1,24 @@
/*******************************************************************\
Module: Call graph test utils
Author: Chris Smowton, chris.smowton@diffblue.com
\*******************************************************************/
#ifndef CPROVER_TESTING_UTILS_CALL_GRAPH_TEST_UTILS_H
#define CPROVER_TESTING_UTILS_CALL_GRAPH_TEST_UTILS_H
#include <analyses/call_graph.h>
#include <util/std_code.h>
symbolt
create_void_function_symbol(const irep_idt &name, const codet &code);
bool multimap_key_matches(
const std::multimap<irep_idt, irep_idt> &map,
const irep_idt &key,
const std::set<irep_idt> &values);
#endif /* CPROVER_TESTING_UTILS_CALL_GRAPH_TEST_UTILS_HT */

View File

@ -1,3 +1,4 @@
ansi-c
testing-utils
util
analyses