From a26bb254fed2cd6432b1a9ca186bf810466f3ad4 Mon Sep 17 00:00:00 2001 From: strangeqargo <“strangeqargo@gmail.com”> Date: Mon, 13 Jun 2016 20:44:59 +0300 Subject: [PATCH] cleanup and refactoring --- test_scripts/CMakeLists.txt | 11 +++++-- test_scripts/ddl2cpp.cpp | 33 +-------------------- test_scripts/ddl2cpp_util.h | 57 +++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 34 deletions(-) create mode 100644 test_scripts/ddl2cpp_util.h diff --git a/test_scripts/CMakeLists.txt b/test_scripts/CMakeLists.txt index af1347e1..84d29a4e 100644 --- a/test_scripts/CMakeLists.txt +++ b/test_scripts/CMakeLists.txt @@ -40,10 +40,17 @@ if (${PYTHONINTERP_FOUND}) set(test_scripts_names ddl2cpp) #create header for inclusion, we don't want to depend on shell scripts file(WRITE ddl2cpp_test.h " +#ifndef SQLPP_TEST_DDL2CPP_TEST_H +#define SQLPP_TEST_DDL2CPP_TEST #include -std::string test_scripts_pythonPath = \"${PYTHON_EXECUTABLE}\"; +std::string test_scripts_python_path = \"${PYTHON_EXECUTABLE}\"; +" ) +#some other definitions goes here +#... +#close header + file(APPEND ddl2cpp_test.h " +#endif " ) - create_test_sourcelist(test_scripts_sources test_scripts_main.cpp ${test_scripts_names}) add_executable(sqlpp11_test_scripts ${test_scripts_sources}) diff --git a/test_scripts/ddl2cpp.cpp b/test_scripts/ddl2cpp.cpp index f4c469bf..520e9ec5 100644 --- a/test_scripts/ddl2cpp.cpp +++ b/test_scripts/ddl2cpp.cpp @@ -1,35 +1,4 @@ -#include -#include -//#include "MockDb.h" //todo 1 -#include "ddl2cpp_test.h" -#include -#include -#include - - -int testSqlFile(const std::string pathToSqlFile ){ - -#if defined _WIN64 || defined _WIN32 - std::string nullOutput = " > nul 2>&1"; -#else - std::string nullOutput = " > /dev/null 2>&1"; -#endif - -nullOutput =""; - - std::string ddlHeaderPath = "../test_scripts/ddl2cpp_test_result_header"; - - std::string args = - " ../scripts/ddl2cpp -fail-on-parse " + - pathToSqlFile + " " + - ddlHeaderPath + - " ddlcpp2_test_namespace "+ - nullOutput - ; - - auto python_args = test_scripts_pythonPath + args.c_str(); - return system(python_args.c_str()); -} +#include "ddl2cpp_util.h" int ddl2cpp(int, char* []) { diff --git a/test_scripts/ddl2cpp_util.h b/test_scripts/ddl2cpp_util.h new file mode 100644 index 00000000..9b5c3afe --- /dev/null +++ b/test_scripts/ddl2cpp_util.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2013-2015, Roland Bock, Alexey Elymanov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include +//#include "MockDb.h" //todo 1 +#include +#include +#include +#include +#include "ddl2cpp_test.h" +namespace { + int testSqlFile(const std::string pathToSqlFile) { + +#if defined _WIN64 || defined _WIN32 + std::string nullOutput = " > nul 2>&1"; +#else + std::string nullOutput = " > /dev/null 2>&1"; +#endif + + nullOutput = ""; + + std::string ddlHeaderPath = "../test_scripts/ddl2cpp_test_result_header"; + + std::string args = + " ../scripts/ddl2cpp -fail-on-parse " + + pathToSqlFile + " " + + ddlHeaderPath + + " ddlcpp2_test_namespace " + + nullOutput; + //test_scripts_python_path is a global variable from ddl2cpp_test.h, which is generated by cmake + auto python_args = test_scripts_python_path + args.c_str(); + return system(python_args.c_str()); + } +} \ No newline at end of file