From aacd4367a318898d0de612b988cc6ce74c575722 Mon Sep 17 00:00:00 2001 From: reuk Date: Mon, 9 Oct 2017 18:29:51 +0100 Subject: [PATCH] Add new testing-utils library --- unit/CMakeLists.txt | 10 +++++++++- unit/Makefile | 10 +++++----- unit/analyses/ai/ai_simplify_lhs.cpp | 2 +- unit/analyses/call_graph.cpp | 2 +- .../does_remove_const/does_expr_lose_const.cpp | 2 +- .../does_type_preserve_const_correctness.cpp | 2 +- .../is_type_at_least_as_const_as.cpp | 2 +- unit/catch_example.cpp | 2 +- .../convert_abstract_class.cpp | 4 ++-- .../convert_exprt_to_string_exprt.cpp | 2 +- unit/miniBDD_new.cpp | 2 +- .../calculate_max_string_length.cpp | 2 +- .../get_numeric_value_from_character.cpp | 2 +- .../is_digit_with_radix.cpp | 2 +- .../instantiate_not_contains.cpp | 2 +- .../string_refinement/concretize_array.cpp | 2 +- .../substitute_array_list.cpp | 2 +- unit/testing-utils/CMakeLists.txt | 10 ++++++++++ unit/testing-utils/Makefile | 18 ++++++++++++++++++ .../ansi-c => testing-utils}/c_to_expr.cpp | 2 +- unit/{src/ansi-c => testing-utils}/c_to_expr.h | 6 +++--- unit/{ => testing-utils}/catch.hpp | 0 .../load_java_class.cpp | 2 +- .../load_java_class.h | 6 +++--- .../expr => testing-utils}/require_expr.cpp | 2 +- .../{src/expr => testing-utils}/require_expr.h | 6 +++--- unit/unit_tests.cpp | 2 +- unit/util/expr_cast/expr_cast.cpp | 2 +- unit/util/expr_iterator.cpp | 2 +- unit/util/optional.cpp | 2 +- unit/util/simplify_expr.cpp | 2 +- 31 files changed, 75 insertions(+), 39 deletions(-) create mode 100644 unit/testing-utils/CMakeLists.txt create mode 100644 unit/testing-utils/Makefile rename unit/{src/ansi-c => testing-utils}/c_to_expr.cpp (96%) rename unit/{src/ansi-c => testing-utils}/c_to_expr.h (84%) rename unit/{ => testing-utils}/catch.hpp (100%) rename unit/{src/java_bytecode => testing-utils}/load_java_class.cpp (98%) rename unit/{src/java_bytecode => testing-utils}/load_java_class.h (75%) rename unit/{src/expr => testing-utils}/require_expr.cpp (98%) rename unit/{src/expr => testing-utils}/require_expr.h (86%) diff --git a/unit/CMakeLists.txt b/unit/CMakeLists.txt index 010ef336546..6549cdc626a 100644 --- a/unit/CMakeLists.txt +++ b/unit/CMakeLists.txt @@ -3,6 +3,9 @@ set(CMAKE_CXX_STANDARD_REQUIRED true) file(GLOB_RECURSE sources "*.cpp") file(GLOB_RECURSE headers "*.h") + +file(GLOB_RECURSE testing_utils "testing-utils/*.cpp" "testing-utils/*.h") + list(REMOVE_ITEM sources # Used in executables ${CMAKE_CURRENT_SOURCE_DIR}/miniBDD.cpp @@ -22,10 +25,15 @@ list(REMOVE_ITEM sources ${CMAKE_CURRENT_SOURCE_DIR}/float_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ieee_float.cpp + # Will be built into a separate library and linked + ${testing_utils} + # Intended to fail to compile ${CMAKE_CURRENT_SOURCE_DIR}/util/expr_cast/expr_undefined_casts.cpp ) +add_subdirectory(testing-utils) + add_executable(unit ${sources} ${headers}) target_include_directories(unit PUBLIC @@ -33,7 +41,7 @@ target_include_directories(unit ${CBMC_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) -target_link_libraries(unit ansi-c solvers java_bytecode) +target_link_libraries(unit testing-utils ansi-c solvers java_bytecode) add_test( NAME unit COMMAND $ diff --git a/unit/Makefile b/unit/Makefile index dfeb41376e1..04ebf6c6635 100644 --- a/unit/Makefile +++ b/unit/Makefile @@ -1,10 +1,7 @@ .PHONY: all cprover.dir test # Source files for test utilities -SRC = src/expr/require_expr.cpp \ - src/ansi-c/c_to_expr.cpp \ - src/java_bytecode/load_java_class.cpp \ - unit_tests.cpp \ +SRC = unit_tests.cpp \ catch_example.cpp \ util/expr_iterator.cpp \ util/optional.cpp \ @@ -42,6 +39,9 @@ include ../src/common cprover.dir: $(MAKE) $(MAKEARGS) -C ../src +testing-utils/testing-utils$(LIBEXT): + $(MAKE) $(MAKEARGS) -C testing-utils + CPROVER_LIBS =../src/java_bytecode/java_bytecode$(LIBEXT) \ ../src/miniz/miniz$(OBJEXT) \ ../src/ansi-c/ansi-c$(LIBEXT) \ @@ -58,7 +58,7 @@ CPROVER_LIBS =../src/java_bytecode/java_bytecode$(LIBEXT) \ ../src/solvers/solvers$(LIBEXT) \ # Empty last line -OBJ += $(CPROVER_LIBS) +OBJ += $(CPROVER_LIBS) testing-utils/testing-utils$(LIBEXT) TESTS = unit_tests$(EXEEXT) \ miniBDD$(EXEEXT) \ diff --git a/unit/analyses/ai/ai_simplify_lhs.cpp b/unit/analyses/ai/ai_simplify_lhs.cpp index d161df0bffb..d345468fd99 100644 --- a/unit/analyses/ai/ai_simplify_lhs.cpp +++ b/unit/analyses/ai/ai_simplify_lhs.cpp @@ -9,7 +9,7 @@ /// \file /// Unit tests for ai_domain_baset::ai_simplify_lhs -#include +#include #include diff --git a/unit/analyses/call_graph.cpp b/unit/analyses/call_graph.cpp index 36b829cd103..985c804c91c 100644 --- a/unit/analyses/call_graph.cpp +++ b/unit/analyses/call_graph.cpp @@ -8,7 +8,7 @@ Module: Unit test for call graph generation #include -#include +#include #include diff --git a/unit/analyses/does_remove_const/does_expr_lose_const.cpp b/unit/analyses/does_remove_const/does_expr_lose_const.cpp index d24cce126a3..628af124bc2 100644 --- a/unit/analyses/does_remove_const/does_expr_lose_const.cpp +++ b/unit/analyses/does_remove_const/does_expr_lose_const.cpp @@ -9,7 +9,7 @@ /// \file /// Does Remove Const Unit Tests -#include +#include #include #include diff --git a/unit/analyses/does_remove_const/does_type_preserve_const_correctness.cpp b/unit/analyses/does_remove_const/does_type_preserve_const_correctness.cpp index 9b678ff1089..ccfe0a56647 100644 --- a/unit/analyses/does_remove_const/does_type_preserve_const_correctness.cpp +++ b/unit/analyses/does_remove_const/does_type_preserve_const_correctness.cpp @@ -9,7 +9,7 @@ /// \file /// Does Remove Const Unit Tests -#include +#include #include #include diff --git a/unit/analyses/does_remove_const/is_type_at_least_as_const_as.cpp b/unit/analyses/does_remove_const/is_type_at_least_as_const_as.cpp index a85819bf301..625c8df1121 100644 --- a/unit/analyses/does_remove_const/is_type_at_least_as_const_as.cpp +++ b/unit/analyses/does_remove_const/is_type_at_least_as_const_as.cpp @@ -9,7 +9,7 @@ /// \file /// Does Remove Const Unit Tests -#include +#include #include #include diff --git a/unit/catch_example.cpp b/unit/catch_example.cpp index 8a7b237fe71..31cb9f605a5 100644 --- a/unit/catch_example.cpp +++ b/unit/catch_example.cpp @@ -6,7 +6,7 @@ \*******************************************************************/ -#include +#include unsigned int Factorial(unsigned int number) { diff --git a/unit/java_bytecode/java_bytecode_convert_class/convert_abstract_class.cpp b/unit/java_bytecode/java_bytecode_convert_class/convert_abstract_class.cpp index e328ac936a3..406291025ad 100644 --- a/unit/java_bytecode/java_bytecode_convert_class/convert_abstract_class.cpp +++ b/unit/java_bytecode/java_bytecode_convert_class/convert_abstract_class.cpp @@ -6,7 +6,7 @@ \*******************************************************************/ -#include +#include #include #include @@ -15,7 +15,7 @@ #include #include #include -#include +#include SCENARIO("java_bytecode_convert_abstract_class", "[core][java_bytecode][java_bytecode_convert_class]") diff --git a/unit/java_bytecode/java_string_library_preprocess/convert_exprt_to_string_exprt.cpp b/unit/java_bytecode/java_string_library_preprocess/convert_exprt_to_string_exprt.cpp index f7125f4fe17..4d2a86944d8 100644 --- a/unit/java_bytecode/java_string_library_preprocess/convert_exprt_to_string_exprt.cpp +++ b/unit/java_bytecode/java_string_library_preprocess/convert_exprt_to_string_exprt.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ -#include +#include #include #include #include diff --git a/unit/miniBDD_new.cpp b/unit/miniBDD_new.cpp index 0c176c7f82e..b61b0e54093 100644 --- a/unit/miniBDD_new.cpp +++ b/unit/miniBDD_new.cpp @@ -9,7 +9,7 @@ /// \file /// Unit tests for miniBDD -#include +#include #include #include diff --git a/unit/solvers/refinement/string_constraint_generator_valueof/calculate_max_string_length.cpp b/unit/solvers/refinement/string_constraint_generator_valueof/calculate_max_string_length.cpp index 82a636a9052..7bdf5bb5a06 100644 --- a/unit/solvers/refinement/string_constraint_generator_valueof/calculate_max_string_length.cpp +++ b/unit/solvers/refinement/string_constraint_generator_valueof/calculate_max_string_length.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ -#include +#include #include #include diff --git a/unit/solvers/refinement/string_constraint_generator_valueof/get_numeric_value_from_character.cpp b/unit/solvers/refinement/string_constraint_generator_valueof/get_numeric_value_from_character.cpp index 3fbcc93832d..0b3fbcebdf0 100644 --- a/unit/solvers/refinement/string_constraint_generator_valueof/get_numeric_value_from_character.cpp +++ b/unit/solvers/refinement/string_constraint_generator_valueof/get_numeric_value_from_character.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ -#include +#include #include #include diff --git a/unit/solvers/refinement/string_constraint_generator_valueof/is_digit_with_radix.cpp b/unit/solvers/refinement/string_constraint_generator_valueof/is_digit_with_radix.cpp index e4fc9b22397..350f59bdc56 100644 --- a/unit/solvers/refinement/string_constraint_generator_valueof/is_digit_with_radix.cpp +++ b/unit/solvers/refinement/string_constraint_generator_valueof/is_digit_with_radix.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ -#include +#include #include #include diff --git a/unit/solvers/refinement/string_constraint_instantiation/instantiate_not_contains.cpp b/unit/solvers/refinement/string_constraint_instantiation/instantiate_not_contains.cpp index 2cd07e9f082..c90e0ebd27a 100644 --- a/unit/solvers/refinement/string_constraint_instantiation/instantiate_not_contains.cpp +++ b/unit/solvers/refinement/string_constraint_instantiation/instantiate_not_contains.cpp @@ -6,7 +6,7 @@ \*******************************************************************/ -#include +#include #include diff --git a/unit/solvers/refinement/string_refinement/concretize_array.cpp b/unit/solvers/refinement/string_refinement/concretize_array.cpp index ab4dc31ae5f..8a7ae042c3f 100644 --- a/unit/solvers/refinement/string_refinement/concretize_array.cpp +++ b/unit/solvers/refinement/string_refinement/concretize_array.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ -#include +#include #include #include diff --git a/unit/solvers/refinement/string_refinement/substitute_array_list.cpp b/unit/solvers/refinement/string_refinement/substitute_array_list.cpp index 5258406cff1..227df773d74 100644 --- a/unit/solvers/refinement/string_refinement/substitute_array_list.cpp +++ b/unit/solvers/refinement/string_refinement/substitute_array_list.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ -#include +#include #include #include diff --git a/unit/testing-utils/CMakeLists.txt b/unit/testing-utils/CMakeLists.txt new file mode 100644 index 00000000000..db62ded5cea --- /dev/null +++ b/unit/testing-utils/CMakeLists.txt @@ -0,0 +1,10 @@ +file(GLOB_RECURSE sources "*.cpp" "*.h") +add_library(testing-utils ${sources}) +target_link_libraries(testing-utils + util + java_bytecode +) +target_include_directories(testing-utils + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/.. +) diff --git a/unit/testing-utils/Makefile b/unit/testing-utils/Makefile new file mode 100644 index 00000000000..db9dfb33ec4 --- /dev/null +++ b/unit/testing-utils/Makefile @@ -0,0 +1,18 @@ +SRC = \ + c_to_expr.cpp \ + load_java_class.cpp \ + require_expr.cpp \ + # Empty last line (please keep above list sorted!) + +INCLUDES = -I .. -I . -I ../../src + +include ../../src/config.inc +include ../../src/common + +CLEANFILES = testing-utils$(LIBEXT) + +.PHONY: all +all: testing-utils$(LIBEXT) + +testing-utils$(LIBEXT): $(OBJ) + $(LINKLIB) diff --git a/unit/src/ansi-c/c_to_expr.cpp b/unit/testing-utils/c_to_expr.cpp similarity index 96% rename from unit/src/ansi-c/c_to_expr.cpp rename to unit/testing-utils/c_to_expr.cpp index bb71d5fabb1..a8880ac2283 100644 --- a/unit/src/ansi-c/c_to_expr.cpp +++ b/unit/testing-utils/c_to_expr.cpp @@ -12,7 +12,7 @@ /// #include "c_to_expr.h" -#include +#include c_to_exprt::c_to_exprt(): message_handler( diff --git a/unit/src/ansi-c/c_to_expr.h b/unit/testing-utils/c_to_expr.h similarity index 84% rename from unit/src/ansi-c/c_to_expr.h rename to unit/testing-utils/c_to_expr.h index dcaf0b0d1b7..be4d83bcf92 100644 --- a/unit/src/ansi-c/c_to_expr.h +++ b/unit/testing-utils/c_to_expr.h @@ -10,8 +10,8 @@ /// Utility for converting strings in to exprt, throwing a CATCH exception /// if this fails in any way. -#ifndef CPROVER_SRC_ANSI_C_C_TO_EXPR_H -#define CPROVER_SRC_ANSI_C_C_TO_EXPR_H +#ifndef CPROVER_TESTING_UTILS_C_TO_EXPR_H +#define CPROVER_TESTING_UTILS_C_TO_EXPR_H #include @@ -32,4 +32,4 @@ class c_to_exprt ansi_c_languaget language; }; -#endif // CPROVER_SRC_ANSI_C_C_TO_EXPR_H +#endif // CPROVER_TESTING_UTILS_C_TO_EXPR_H diff --git a/unit/catch.hpp b/unit/testing-utils/catch.hpp similarity index 100% rename from unit/catch.hpp rename to unit/testing-utils/catch.hpp diff --git a/unit/src/java_bytecode/load_java_class.cpp b/unit/testing-utils/load_java_class.cpp similarity index 98% rename from unit/src/java_bytecode/load_java_class.cpp rename to unit/testing-utils/load_java_class.cpp index 5956012b853..f1eb485fd4e 100644 --- a/unit/src/java_bytecode/load_java_class.cpp +++ b/unit/testing-utils/load_java_class.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ #include "load_java_class.h" -#include +#include #include #include diff --git a/unit/src/java_bytecode/load_java_class.h b/unit/testing-utils/load_java_class.h similarity index 75% rename from unit/src/java_bytecode/load_java_class.h rename to unit/testing-utils/load_java_class.h index ecfb703dd89..d81bb2f7636 100644 --- a/unit/src/java_bytecode/load_java_class.h +++ b/unit/testing-utils/load_java_class.h @@ -10,8 +10,8 @@ /// Utility for loading and parsing a specified java class file, returning /// the symbol table generated by this. -#ifndef CPROVER_SRC_JAVA_BYTECODE_LOAD_JAVA_CLASS_H -#define CPROVER_SRC_JAVA_BYTECODE_LOAD_JAVA_CLASS_H +#ifndef CPROVER_TESTING_UTILS_LOAD_JAVA_CLASS_H +#define CPROVER_TESTING_UTILS_LOAD_JAVA_CLASS_H #include @@ -19,4 +19,4 @@ symbol_tablet load_java_class( const std::string &java_class_name, const std::string &class_path); -#endif // CPROVER_SRC_JAVA_BYTECODE_LOAD_JAVA_CLASS_H +#endif // CPROVER_TESTING_UTILS_LOAD_JAVA_CLASS_H diff --git a/unit/src/expr/require_expr.cpp b/unit/testing-utils/require_expr.cpp similarity index 98% rename from unit/src/expr/require_expr.cpp rename to unit/testing-utils/require_expr.cpp index e81b5a2d70a..efff117b6b4 100644 --- a/unit/src/expr/require_expr.cpp +++ b/unit/testing-utils/require_expr.cpp @@ -14,7 +14,7 @@ #include "require_expr.h" -#include +#include #include /// Verify a given exprt is an index_exprt with a a constant value equal to the diff --git a/unit/src/expr/require_expr.h b/unit/testing-utils/require_expr.h similarity index 86% rename from unit/src/expr/require_expr.h rename to unit/testing-utils/require_expr.h index 83bdad2132d..0516c629411 100644 --- a/unit/src/expr/require_expr.h +++ b/unit/testing-utils/require_expr.h @@ -12,8 +12,8 @@ /// Also checks associated properties and returns a casted version of the /// expression. -#ifndef CPROVER_SRC_EXPR_REQUIRE_EXPR_H -#define CPROVER_SRC_EXPR_REQUIRE_EXPR_H +#ifndef CPROVER_TESTING_UTILS_REQUIRE_EXPR_H +#define CPROVER_TESTING_UTILS_REQUIRE_EXPR_H #include @@ -30,4 +30,4 @@ namespace require_expr const exprt &expr, const irep_idt &symbol_name); } -#endif // CPROVER_SRC_EXPR_REQUIRE_EXPR_H +#endif // CPROVER_TESTING_UTILS_REQUIRE_EXPR_H diff --git a/unit/unit_tests.cpp b/unit/unit_tests.cpp index 8d007b83696..0f4109d2f69 100644 --- a/unit/unit_tests.cpp +++ b/unit/unit_tests.cpp @@ -7,7 +7,7 @@ \*******************************************************************/ #define CATCH_CONFIG_MAIN -#include "catch.hpp" +#include #include // Debug printer for irept diff --git a/unit/util/expr_cast/expr_cast.cpp b/unit/util/expr_cast/expr_cast.cpp index 658e35a5057..a39e0607398 100644 --- a/unit/util/expr_cast/expr_cast.cpp +++ b/unit/util/expr_cast/expr_cast.cpp @@ -5,7 +5,7 @@ /// \file /// expr_dynamic_cast Unit Tests -#include +#include #include #include #include diff --git a/unit/util/expr_iterator.cpp b/unit/util/expr_iterator.cpp index b806448b5c9..0ec6807aef0 100644 --- a/unit/util/expr_iterator.cpp +++ b/unit/util/expr_iterator.cpp @@ -6,7 +6,7 @@ \*******************************************************************/ -#include +#include #include #include diff --git a/unit/util/optional.cpp b/unit/util/optional.cpp index 9c22596bd3d..ddad13707bc 100644 --- a/unit/util/optional.cpp +++ b/unit/util/optional.cpp @@ -6,7 +6,7 @@ \*******************************************************************/ -#include "catch.hpp" +#include #include TEST_CASE("Optional without a value", "[core][util][optional]") diff --git a/unit/util/simplify_expr.cpp b/unit/util/simplify_expr.cpp index 053fa11d7e3..22ac8b40f94 100644 --- a/unit/util/simplify_expr.cpp +++ b/unit/util/simplify_expr.cpp @@ -6,7 +6,7 @@ \*******************************************************************/ -#include +#include #include #include