Merge branch 'dev' of https://github.com/OpenWaterAnalytics/EPANET into dev-unittesting
This commit is contained in:
@@ -19,19 +19,18 @@ endif(UNIX)
|
||||
set(toolkit_test_srcs
|
||||
test_toolkit.cpp
|
||||
test_project.cpp
|
||||
# test_hydraulics.cpp
|
||||
# test_quality.cpp
|
||||
# test_report.cpp
|
||||
# test_analysis.cpp
|
||||
# test_node.cpp
|
||||
# test_demand.cpp
|
||||
# test_link.cpp
|
||||
test_hydraulics.cpp
|
||||
test_quality.cpp
|
||||
test_report.cpp
|
||||
test_analysis.cpp
|
||||
test_node.cpp
|
||||
test_demand.cpp
|
||||
test_link.cpp
|
||||
# test_pump.cpp
|
||||
# test_pattern.cpp
|
||||
# test_curve.cpp
|
||||
# test_control.cpp
|
||||
# test_net_builder.cpp
|
||||
)
|
||||
test_pattern.cpp
|
||||
test_curve.cpp
|
||||
test_control.cpp
|
||||
test_net_builder.cpp)
|
||||
|
||||
add_executable(test_toolkit ${toolkit_test_srcs})
|
||||
|
||||
@@ -60,6 +59,10 @@ add_test(NAME test_reent
|
||||
add_test(NAME test_errormanager
|
||||
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_errormanager)
|
||||
|
||||
add_test(NAME test_filemanager
|
||||
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_filemanager
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/outfile/data)
|
||||
|
||||
add_test(NAME test_output
|
||||
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_output
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/outfile/data)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
//#define BOOST_ALL_DYN_LINK
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include "test_toolkit.hpp"
|
||||
|
||||
@@ -35,6 +35,35 @@ BOOST_FIXTURE_TEST_CASE(test_curve_comments, FixtureOpenClose)
|
||||
error = EN_getcomment(ph, EN_CURVE, index, comment);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
BOOST_CHECK(check_string(comment, (char *)"Curve 1"));
|
||||
|
||||
// Test of EN_setcurve and EN_getcurve
|
||||
int i;
|
||||
char id1[] = "NewCurve";
|
||||
int n1 = 5;
|
||||
double X1[] = {16.88889, 19.5, 22.13889, 25.94445, 33.33334};
|
||||
double Y1[] = {156.7, 146.5, 136.2, 117.9, 50.0};
|
||||
int n2;
|
||||
double X2[5], Y2[5];
|
||||
char id2[EN_MAXID+1];
|
||||
|
||||
// Add data to a new curve
|
||||
error = EN_addcurve(ph, id1);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
error = EN_getcurveindex(ph, id1, &i);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
error = EN_setcurve(ph, i, X1, Y1, n1);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
// Retrieve data from curve
|
||||
error = EN_getcurve(ph, i, id2, &n2, X2, Y2);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
BOOST_CHECK(check_string(id2, id1));
|
||||
BOOST_REQUIRE(n2 == n1);
|
||||
for (i = 0; i < n1; i++)
|
||||
{
|
||||
BOOST_REQUIRE(X1[i] == X2[i]);
|
||||
BOOST_REQUIRE(Y1[i] == Y2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include "test_toolkit.hpp"
|
||||
|
||||
@@ -58,47 +58,35 @@ BOOST_AUTO_TEST_CASE(test_save)
|
||||
{
|
||||
int error;
|
||||
|
||||
EN_Project ph = NULL;
|
||||
EN_Project ph_save;
|
||||
|
||||
error = EN_createproject(&ph);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
error = EN_open(ph, DATA_PATH_NET1, DATA_PATH_RPT, DATA_PATH_OUT);
|
||||
EN_createproject(&ph_save);
|
||||
error = EN_open(ph_save, DATA_PATH_NET1, DATA_PATH_RPT, DATA_PATH_OUT);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
error = EN_saveinpfile(ph, DATA_PATH_TMP);
|
||||
error = EN_saveinpfile(ph_save, "test_reopen.inp");
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
BOOST_CHECK(boost::filesystem::exists(DATA_PATH_TMP) == true);
|
||||
BOOST_CHECK(boost::filesystem::exists("test_reopen.inp") == true);
|
||||
|
||||
error = EN_close(ph);
|
||||
error = EN_close(ph_save);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
error = EN_deleteproject(&ph);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
BOOST_CHECK(ph == NULL);
|
||||
EN_deleteproject(&ph_save);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_reopen, * boost::unit_test::depends_on("test_project/test_save"))
|
||||
{
|
||||
int error;
|
||||
|
||||
EN_Project ph = NULL;
|
||||
EN_Project ph_reopen;
|
||||
|
||||
error = EN_createproject(&ph);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
EN_createproject(&ph_reopen);
|
||||
error = EN_open(ph_reopen, "test_reopen.inp", DATA_PATH_RPT, DATA_PATH_OUT);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
error = EN_open(ph, DATA_PATH_TMP, DATA_PATH_RPT, DATA_PATH_OUT);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
error = EN_close(ph);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
EN_deleteproject(&ph);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
BOOST_CHECK(ph == NULL);
|
||||
error = EN_close(ph_reopen);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
EN_deleteproject(&ph_reopen);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_run)
|
||||
|
||||
@@ -14,12 +14,6 @@
|
||||
#ifndef TEST_TOOLKIT_HPP
|
||||
#define TEST_TOOLKIT_HPP
|
||||
|
||||
// MSVC ONLY
|
||||
#ifdef _DEBUG
|
||||
#define _CRTDBG_MAP_ALLOC
|
||||
#include <stdlib.h>
|
||||
#include <crtdbg.h>
|
||||
#endif
|
||||
|
||||
#include "epanet2_2.h"
|
||||
|
||||
|
||||
@@ -7,11 +7,14 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
|
||||
|
||||
set (test_source
|
||||
./test_errormanager.cpp
|
||||
../../src/util/errormanager.c
|
||||
)
|
||||
|
||||
add_executable(test_errormanager ${test_source})
|
||||
add_executable(test_errormanager ./test_errormanager.cpp
|
||||
../../src/util/errormanager.c)
|
||||
target_include_directories(test_errormanager PUBLIC ../../src/)
|
||||
target_link_libraries(test_errormanager ${Boost_LIBRARIES})
|
||||
|
||||
|
||||
add_executable(test_filemanager ./test_filemanager.cpp
|
||||
../../src/util/filemanager.c
|
||||
../../src/util/cstr_helper.c)
|
||||
target_include_directories(test_filemanager PUBLIC ../../src/)
|
||||
target_link_libraries(test_filemanager ${Boost_LIBRARIES})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
#define BOOST_TEST_MODULE errormanager
|
||||
//#define BOOST_TEST_DYN_LINK
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include "util/errormanager.h"
|
||||
@@ -15,10 +15,10 @@ void mock_lookup(int errcode, char *errmsg, int len)
|
||||
char *msg = NULL;
|
||||
|
||||
if (errcode == 100) {
|
||||
msg = MESSAGE_STRING;
|
||||
msg = (char *)MESSAGE_STRING;
|
||||
}
|
||||
else {
|
||||
msg = "";
|
||||
msg = (char *)"";
|
||||
}
|
||||
strncpy(errmsg, msg, len);
|
||||
}
|
||||
|
||||
97
tests/util/test_filemanager.cpp
Normal file
97
tests/util/test_filemanager.cpp
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
Project: OWA EPANET
|
||||
Version: 2.2
|
||||
Module: util/test_filemanager.cpp
|
||||
Description: Tests for util/filemanager.c
|
||||
Authors: see AUTHORS
|
||||
Copyright: see AUTHORS
|
||||
License: see LICENSE
|
||||
Last Updated: 04/01/2019
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#define BOOST_TEST_MODULE filemanager
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
|
||||
#include "util/filemanager.h"
|
||||
|
||||
|
||||
#define DATA_PATH_OUTPUT "./example1.out"
|
||||
|
||||
|
||||
boost::test_tools::predicate_result check_string(std::string test, std::string ref)
|
||||
{
|
||||
if (ref.compare(test) == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(test_filemanager)
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE (test_create_destroy)
|
||||
{
|
||||
file_handle_t *file_handle = NULL;
|
||||
|
||||
file_handle = create_file_manager();
|
||||
BOOST_CHECK(file_handle != NULL);
|
||||
BOOST_CHECK(is_valid(file_handle) == true);
|
||||
|
||||
delete_file_manager(file_handle);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_open_close)
|
||||
{
|
||||
int error = 0;
|
||||
file_handle_t *file_handle = NULL;
|
||||
|
||||
file_handle = create_file_manager();
|
||||
BOOST_CHECK(file_handle != NULL);
|
||||
|
||||
error = open_file(file_handle, DATA_PATH_OUTPUT, "rb");
|
||||
BOOST_REQUIRE(error == 0);
|
||||
BOOST_CHECK(is_valid(file_handle) == true);
|
||||
|
||||
error = close_file(file_handle);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
delete_file_manager(file_handle);
|
||||
}
|
||||
|
||||
struct Fixture{
|
||||
Fixture() {
|
||||
error = 0;
|
||||
file_handle = NULL;
|
||||
|
||||
file_handle = create_file_manager();
|
||||
open_file(file_handle, NULL, "wt");
|
||||
}
|
||||
~Fixture() {
|
||||
close_file(file_handle);
|
||||
delete_file_manager(file_handle);
|
||||
}
|
||||
int error;
|
||||
file_handle_t *file_handle;
|
||||
};
|
||||
|
||||
BOOST_FIXTURE_TEST_CASE(test_temp_file, Fixture)
|
||||
{
|
||||
char *filename;
|
||||
|
||||
printf_file(file_handle, "%s", "This is a test.");
|
||||
|
||||
error = get_filename(file_handle, &filename);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
BOOST_CHECK(is_valid(file_handle) == true);
|
||||
|
||||
BOOST_CHECK(boost::filesystem::exists(filename) == true);
|
||||
|
||||
free(filename);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
Reference in New Issue
Block a user