summaryrefslogtreecommitdiff
path: root/gr-utils/python/modtool/gr-newmod
diff options
context:
space:
mode:
Diffstat (limited to 'gr-utils/python/modtool/gr-newmod')
-rw-r--r--gr-utils/python/modtool/gr-newmod/CMakeLists.txt9
-rw-r--r--gr-utils/python/modtool/gr-newmod/cmake/Modules/FindCppUnit.cmake39
-rw-r--r--gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake26
-rw-r--r--gr-utils/python/modtool/gr-newmod/lib/CMakeLists.txt45
-rw-r--r--gr-utils/python/modtool/gr-newmod/lib/qa_howto.cc37
-rw-r--r--gr-utils/python/modtool/gr-newmod/lib/qa_howto.h39
-rw-r--r--gr-utils/python/modtool/gr-newmod/lib/test_howto.cc49
7 files changed, 48 insertions, 196 deletions
diff --git a/gr-utils/python/modtool/gr-newmod/CMakeLists.txt b/gr-utils/python/modtool/gr-newmod/CMakeLists.txt
index 30540c124e..637611d4ac 100644
--- a/gr-utils/python/modtool/gr-newmod/CMakeLists.txt
+++ b/gr-utils/python/modtool/gr-newmod/CMakeLists.txt
@@ -87,7 +87,7 @@ set(Boost_ADDITIONAL_VERSIONS
"1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
"1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
)
-find_package(Boost "1.35" COMPONENTS filesystem system)
+find_package(Boost "1.35" COMPONENTS filesystem system unit_test_framework)
if(NOT Boost_FOUND)
message(FATAL_ERROR "Boost required to compile howto")
@@ -133,7 +133,6 @@ endif(APPLE)
########################################################################
# Find gnuradio build dependencies
########################################################################
-find_package(CppUnit)
find_package(Doxygen)
# Search for GNU Radio and its components and versions. Add any
@@ -145,10 +144,6 @@ find_package(Gnuradio "3.7.2" REQUIRED)
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
include(GrVersion)
-if(NOT CPPUNIT_FOUND)
- message(FATAL_ERROR "CppUnit required to compile howto")
-endif()
-
########################################################################
# Setup doxygen option
########################################################################
@@ -167,13 +162,11 @@ include_directories(
${CMAKE_BINARY_DIR}/lib
${CMAKE_BINARY_DIR}/include
${Boost_INCLUDE_DIRS}
- ${CPPUNIT_INCLUDE_DIRS}
${GNURADIO_ALL_INCLUDE_DIRS}
)
link_directories(
${Boost_LIBRARY_DIRS}
- ${CPPUNIT_LIBRARY_DIRS}
${GNURADIO_RUNTIME_LIBRARY_DIRS}
)
diff --git a/gr-utils/python/modtool/gr-newmod/cmake/Modules/FindCppUnit.cmake b/gr-utils/python/modtool/gr-newmod/cmake/Modules/FindCppUnit.cmake
deleted file mode 100644
index f93ade3412..0000000000
--- a/gr-utils/python/modtool/gr-newmod/cmake/Modules/FindCppUnit.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-# http://www.cmake.org/pipermail/cmake/2006-October/011446.html
-# Modified to use pkg config and use standard var names
-
-#
-# Find the CppUnit includes and library
-#
-# This module defines
-# CPPUNIT_INCLUDE_DIR, where to find tiff.h, etc.
-# CPPUNIT_LIBRARIES, the libraries to link against to use CppUnit.
-# CPPUNIT_FOUND, If false, do not try to use CppUnit.
-
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(PC_CPPUNIT "cppunit")
-
-FIND_PATH(CPPUNIT_INCLUDE_DIRS
- NAMES cppunit/TestCase.h
- HINTS ${PC_CPPUNIT_INCLUDE_DIR}
- ${CMAKE_INSTALL_PREFIX}/include
- PATHS
- /usr/local/include
- /usr/include
-)
-
-FIND_LIBRARY(CPPUNIT_LIBRARIES
- NAMES cppunit
- HINTS ${PC_CPPUNIT_LIBDIR}
- ${CMAKE_INSTALL_PREFIX}/lib
- ${CMAKE_INSTALL_PREFIX}/lib64
- PATHS
- ${CPPUNIT_INCLUDE_DIRS}/../lib
- /usr/local/lib
- /usr/lib
-)
-
-LIST(APPEND CPPUNIT_LIBRARIES ${CMAKE_DL_LIBS})
-
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPPUNIT DEFAULT_MSG CPPUNIT_LIBRARIES CPPUNIT_INCLUDE_DIRS)
-MARK_AS_ADVANCED(CPPUNIT_LIBRARIES CPPUNIT_INCLUDE_DIRS)
diff --git a/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake b/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake
index 186e2d5333..9500fa0a4a 100644
--- a/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake
+++ b/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake
@@ -46,7 +46,7 @@ function(GR_ADD_TEST test_name)
get_target_property(location ${target} LOCATION)
if(location)
get_filename_component(path ${location} PATH)
- string(REGEX REPLACE "\\$\\(.*\\)" ${CMAKE_BUILD_TYPE} path ${path})
+ string(REGEX REPLACE "\\$\\(.*\\)" "${CMAKE_BUILD_TYPE}" path "${path}")
list(APPEND GR_TEST_LIBRARY_DIRS ${path})
endif(location)
endforeach(target)
@@ -113,7 +113,6 @@ function(GR_ADD_TEST test_name)
execute_process(COMMAND chmod +x ${sh_file})
add_test(${test_name} ${SHELL} ${sh_file})
-
endif(UNIX)
if(WIN32)
@@ -142,3 +141,26 @@ function(GR_ADD_TEST test_name)
endif(WIN32)
endfunction(GR_ADD_TEST)
+
+########################################################################
+# Add a C++ unit test and setup the environment for a unit test.
+# Takes the same arguments as the ADD_TEST function.
+#
+# test_name -- An identifier for your test, for usage with ctest -R
+# test_source -- Path to the .cc file
+#
+# Before calling set the following variables:
+# GR_TEST_TARGET_DEPS - built targets for the library path
+########################################################################
+function(GR_ADD_CPP_TEST test_name test_source)
+ add_executable(${test_name} ${test_source})
+ target_link_libraries(
+ ${test_name}
+ ${GR_TEST_TARGET_DEPS}
+ )
+ set_target_properties(${test_name}
+ PROPERTIES COMPILE_DEFINITIONS "BOOST_TEST_DYN_LINK;BOOST_TEST_MAIN"
+ )
+ GR_ADD_TEST(${test_name} ${test_name})
+endfunction(GR_ADD_CPP_TEST)
+
diff --git a/gr-utils/python/modtool/gr-newmod/lib/CMakeLists.txt b/gr-utils/python/modtool/gr-newmod/lib/CMakeLists.txt
index 64b7c1d4ab..2460b930f6 100644
--- a/gr-utils/python/modtool/gr-newmod/lib/CMakeLists.txt
+++ b/gr-utils/python/modtool/gr-newmod/lib/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2011,2012,2016 Free Software Foundation, Inc.
+# Copyright 2011,2012,2016,2018 Free Software Foundation, Inc.
#
# This file was generated by gr_modtool, a tool from the GNU Radio framework
# This file is a part of gr-howto
@@ -31,8 +31,8 @@ list(APPEND howto_sources
set(howto_sources "${howto_sources}" PARENT_SCOPE)
if(NOT howto_sources)
- MESSAGE(STATUS "No C++ sources... skipping lib/")
- return()
+ MESSAGE(STATUS "No C++ sources... skipping lib/")
+ return()
endif(NOT howto_sources)
add_library(gnuradio-howto SHARED ${howto_sources})
@@ -52,31 +52,32 @@ include(GrMiscUtils)
GR_LIBRARY_FOO(gnuradio-howto)
########################################################################
+# Print summary
+########################################################################
+message(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}")
+message(STATUS "Building for version: ${VERSION} / ${LIBVER}")
+
+########################################################################
# Build and register unit test
########################################################################
include(GrTest)
-include_directories(${CPPUNIT_INCLUDE_DIRS})
-
+# If your unit tests require special include paths, add them here
+#include_directories()
+# List all files that contain Boost.UTF unit tests here
list(APPEND test_howto_sources
- ${CMAKE_CURRENT_SOURCE_DIR}/test_howto.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_howto.cc
)
+# Anything we need to link to for the unit tests go here
+list(APPEND GR_TEST_TARGET_DEPS gnuradio-howto)
-add_executable(test-howto ${test_howto_sources})
+if(NOT test_howto_sources)
+ MESSAGE(STATUS "No C++ unit tests... skipping")
+ return()
+endif(NOT test_howto_sources)
-target_link_libraries(
- test-howto
- ${GNURADIO_RUNTIME_LIBRARIES}
- ${Boost_LIBRARIES}
- ${CPPUNIT_LIBRARIES}
- gnuradio-howto
-)
-
-GR_ADD_TEST(test_howto test-howto)
+foreach(qa_file ${test_howto_sources})
+ GR_ADD_CPP_TEST("howto_${qa_file}"
+ ${CMAKE_CURRENT_SOURCE_DIR}/${qa_file}
+ )
+endforeach(qa_file)
-########################################################################
-# Print summary
-########################################################################
-message(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}")
-message(STATUS "Building for version: ${VERSION} / ${LIBVER}")
diff --git a/gr-utils/python/modtool/gr-newmod/lib/qa_howto.cc b/gr-utils/python/modtool/gr-newmod/lib/qa_howto.cc
deleted file mode 100644
index 2f10a3a564..0000000000
--- a/gr-utils/python/modtool/gr-newmod/lib/qa_howto.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2012 Free Software Foundation, Inc.
- *
- * This file was generated by gr_modtool, a tool from the GNU Radio framework
- * This file is a part of gr-howto
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-/*
- * This class gathers together all the test cases for the gr-filter
- * directory into a single test suite. As you create new test cases,
- * add them here.
- */
-
-#include "qa_howto.h"
-
-CppUnit::TestSuite *
-qa_howto::suite()
-{
- CppUnit::TestSuite *s = new CppUnit::TestSuite("howto");
-
- return s;
-}
diff --git a/gr-utils/python/modtool/gr-newmod/lib/qa_howto.h b/gr-utils/python/modtool/gr-newmod/lib/qa_howto.h
deleted file mode 100644
index c50bde3ec7..0000000000
--- a/gr-utils/python/modtool/gr-newmod/lib/qa_howto.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2012 Free Software Foundation, Inc.
- *
- * This file was generated by gr_modtool, a tool from the GNU Radio framework
- * This file is a part of gr-howto
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _QA_HOWTO_H_
-#define _QA_HOWTO_H_
-
-#include <gnuradio/attributes.h>
-#include <cppunit/TestSuite.h>
-
-//! collect all the tests for the gr-filter directory
-
-class __GR_ATTR_EXPORT qa_howto
-{
- public:
- //! return suite of tests for all of gr-filter directory
- static CppUnit::TestSuite *suite();
-};
-
-#endif /* _QA_HOWTO_H_ */
diff --git a/gr-utils/python/modtool/gr-newmod/lib/test_howto.cc b/gr-utils/python/modtool/gr-newmod/lib/test_howto.cc
deleted file mode 100644
index 699bb5b640..0000000000
--- a/gr-utils/python/modtool/gr-newmod/lib/test_howto.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2012 Free Software Foundation, Inc.
- *
- * This file was generated by gr_modtool, a tool from the GNU Radio framework
- * This file is a part of gr-howto
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <cppunit/TextTestRunner.h>
-#include <cppunit/XmlOutputter.h>
-
-#include <gnuradio/unittests.h>
-#include "qa_howto.h"
-#include <iostream>
-#include <fstream>
-
-int
-main (int argc, char **argv)
-{
- CppUnit::TextTestRunner runner;
- std::ofstream xmlfile(get_unittest_path("howto.xml").c_str());
- CppUnit::XmlOutputter *xmlout = new CppUnit::XmlOutputter(&runner.result(), xmlfile);
-
- runner.addTest(qa_howto::suite());
- runner.setOutputter(xmlout);
-
- bool was_successful = runner.run("", false);
-
- return was_successful ? 0 : 1;
-}