diff options
author | Josh Blum | 2012-08-19 14:27:11 -0700 |
---|---|---|
committer | Josh Blum | 2012-08-26 16:03:51 -0700 |
commit | fa25d15ed1a7b85869229055ef32166ef1d8bef2 (patch) | |
tree | 0f39ab553dce30e9c8c11ab20f820d5753d5bf47 /lib | |
parent | 87be8242fd5855a8e8f6a76fddf40275b711c784 (diff) | |
download | sandhi-fa25d15ed1a7b85869229055ef32166ef1d8bef2.tar.gz sandhi-fa25d15ed1a7b85869229055ef32166ef1d8bef2.tar.bz2 sandhi-fa25d15ed1a7b85869229055ef32166ef1d8bef2.zip |
runtime: work on unit tests
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CMakeLists.txt | 20 | ||||
-rw-r--r-- | lib/block.cpp | 42 | ||||
-rw-r--r-- | lib/element.cpp | 42 | ||||
-rw-r--r-- | lib/gr_block.cpp | 26 | ||||
-rw-r--r-- | lib/gr_hier_block2.cpp | 15 | ||||
-rw-r--r-- | lib/gr_top_block.cpp | 34 | ||||
-rw-r--r-- | lib/hier_block.cpp | 5 | ||||
-rw-r--r-- | lib/top_block.cpp | 50 |
8 files changed, 162 insertions, 72 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 115b01d..3b0dc4a 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -3,6 +3,7 @@ ######################################################################## include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tests) ######################################################################## # Append gnuradio-core library sources @@ -16,9 +17,28 @@ list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_SOURCE_DIR}/block.cpp ${CMAKE_CURRENT_SOURCE_DIR}/block_handlers.cpp ${CMAKE_CURRENT_SOURCE_DIR}/hier_block.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/top_block.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gr_block.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gr_sync_block.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gr_hier_block2.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/gr_top_block.cpp +) + +######################################################################## +# Append gnuradio-core test sources +######################################################################## +list(APPEND test_gnuradio_core_sources + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_block.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_hier_block2.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_hier_block2_derived.cc + #${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_buffer.cc + #${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_flowgraph.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_top_block.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_io_signature.cc + #${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_gr_vmcircbuf.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_block_tags.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_runtime.cc + #${CMAKE_CURRENT_SOURCE_DIR}/../tests/qa_set_msg_handler.cc ) ######################################################################## diff --git a/lib/block.cpp b/lib/block.cpp index 2d5b4af..1bd1217 100644 --- a/lib/block.cpp +++ b/lib/block.cpp @@ -16,23 +16,18 @@ #include "element_impl.hpp" #include <gnuradio/block.hpp> -#include <boost/detail/atomic_count.hpp> #include <boost/bind.hpp> using namespace gnuradio; -static boost::detail::atomic_count unique_id_pool(0); - Block::Block(void) { //NOP } -Block::Block(const std::string &name) +Block::Block(const std::string &name): + Element(name) { - this->reset(new ElementImpl()); - (*this)->name = name; - (*this)->unique_id = ++unique_id_pool; this->set_history(0); this->set_output_multiple(1); this->set_fixed_rate(true); @@ -47,17 +42,6 @@ Block::Block(const std::string &name) } - -long Block::unique_id(void) const -{ - return (*this)->unique_id; -} - -std::string Block::name(void) const -{ - return (*this)->name; -} - template <typename V, typename T> void vector_set(V &v, const T &t, const size_t index) { @@ -78,28 +62,6 @@ typename V::value_type vector_get(const V &v, const size_t index) return v[index]; } -size_t Block::input_size(const size_t which_input) const -{ - return vector_get((*this)->input_items_sizes, which_input); -} - -size_t Block::output_size(const size_t which_output) const -{ - return vector_get((*this)->output_items_sizes, which_output); -} - -void Block::set_input_size(const size_t size, const size_t which_input) -{ - vector_set((*this)->input_items_sizes, size, which_input); - (*this)->input_signature = gr_make_io_signaturev(-1, -1, (*this)->input_items_sizes); -} - -void Block::set_output_size(const size_t size, const size_t which_output) -{ - vector_set((*this)->output_items_sizes, size, which_output); - (*this)->output_signature = gr_make_io_signaturev(-1, -1, (*this)->output_items_sizes); -} - size_t Block::history(const size_t which_input) const { return vector_get((*this)->input_history_items, which_input); diff --git a/lib/element.cpp b/lib/element.cpp index 3c97675..d73d68b 100644 --- a/lib/element.cpp +++ b/lib/element.cpp @@ -14,7 +14,11 @@ // You should have received a copy of the GNU Lesser General Public License // along with io_sig program. If not, see <http://www.gnu.org/licenses/>. +#include "element_impl.hpp" #include <gnuradio/element.hpp> +#include <boost/detail/atomic_count.hpp> + +static boost::detail::atomic_count unique_id_pool(0); using namespace gnuradio; @@ -22,3 +26,41 @@ Element::Element(void) { //NOP } + +Element::Element(const std::string &name) +{ + this->reset(new ElementImpl()); + (*this)->name = name; + (*this)->unique_id = ++unique_id_pool; +} + +long Element::unique_id(void) const +{ + return (*this)->unique_id; +} + +std::string Element::name(void) const +{ + return (*this)->name; +} + + +void Element::set_output_signature(gr_io_signature_sptr sig) +{ + (*this)->output_signature= sig; +} + +void Element::set_input_signature(gr_io_signature_sptr sig) +{ + (*this)->input_signature = sig; +} + +gr_io_signature_sptr Element::input_signature(void) const +{ + return (*this)->input_signature; +} + +gr_io_signature_sptr Element::output_signature(void) const +{ + return (*this)->output_signature; +} diff --git a/lib/gr_block.cpp b/lib/gr_block.cpp index b5e00a0..2c51f75 100644 --- a/lib/gr_block.cpp +++ b/lib/gr_block.cpp @@ -34,32 +34,6 @@ gr_block::gr_block( this->set_output_signature(output_signature); } -void gr_block::set_output_signature(gr_io_signature_sptr sig) -{ - for (size_t i = 0; i < sig->sizeof_stream_items().size(); i++) - { - this->set_output_size(sig->sizeof_stream_items()[i], i); - } -} - -void gr_block::set_input_signature(gr_io_signature_sptr sig) -{ - for (size_t i = 0; i < sig->sizeof_stream_items().size(); i++) - { - this->set_input_size(sig->sizeof_stream_items()[i], i); - } -} - -gr_io_signature_sptr gr_block::input_signature(void) const -{ - return (*this)->input_signature; -} - -gr_io_signature_sptr gr_block::output_signature(void) const -{ - return (*this)->output_signature; -} - int gr_block::work( const InputItems &input_items, const OutputItems &output_items diff --git a/lib/gr_hier_block2.cpp b/lib/gr_hier_block2.cpp index 3756b9f..7b61d0f 100644 --- a/lib/gr_hier_block2.cpp +++ b/lib/gr_hier_block2.cpp @@ -23,10 +23,19 @@ gr_hier_block2::gr_hier_block2(void) gr_hier_block2::gr_hier_block2( const std::string &name, - gr_io_signature_sptr, - gr_io_signature_sptr + gr_io_signature_sptr input_signature, + gr_io_signature_sptr output_signature ): gnuradio::HierBlock(name) { - //NOP + this->set_input_signature(input_signature); + this->set_output_signature(output_signature); +} + +gr_hier_block2_sptr gr_make_hier_block2( + const std::string &name, + gr_io_signature_sptr input_signature, + gr_io_signature_sptr output_signature +){ + return gr_hier_block2_sptr(new gr_hier_block2(name, input_signature, output_signature)); } diff --git a/lib/gr_top_block.cpp b/lib/gr_top_block.cpp new file mode 100644 index 0000000..238a643 --- /dev/null +++ b/lib/gr_top_block.cpp @@ -0,0 +1,34 @@ +// +// Copyright 2012 Josh Blum +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with io_sig program. If not, see <http://www.gnu.org/licenses/>. + +#include <gr_top_block.h> + +gr_top_block::gr_top_block(void): + gnuradio::TopBlock() +{ + //NOP +} + +gr_top_block::gr_top_block(const std::string &name): + gnuradio::TopBlock(name) +{ + //NOP +} + +gr_top_block_sptr gr_make_top_block(const std::string &name) +{ + return gr_top_block_sptr(new gr_top_block(name)); +} diff --git a/lib/hier_block.cpp b/lib/hier_block.cpp index e915a23..c067ab6 100644 --- a/lib/hier_block.cpp +++ b/lib/hier_block.cpp @@ -24,10 +24,9 @@ HierBlock::HierBlock(void) //NOP } -HierBlock::HierBlock(const std::string &name) +HierBlock::HierBlock(const std::string &name): + Element(name) { - this->reset(new ElementImpl()); - (*this)->name = name; tsbe::TopologyConfig config; (*this)->topology = tsbe::Topology(config); } diff --git a/lib/top_block.cpp b/lib/top_block.cpp new file mode 100644 index 0000000..268064e --- /dev/null +++ b/lib/top_block.cpp @@ -0,0 +1,50 @@ +// +// Copyright 2012 Josh Blum +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with io_sig program. If not, see <http://www.gnu.org/licenses/>. + +#include <gnuradio/top_block.hpp> + +using namespace gnuradio; + +TopBlock::TopBlock(void) +{ + //NOP +} + +TopBlock::TopBlock(const std::string &name): + HierBlock(name) +{ + //TODO +} + +void TopBlock::update(void) +{ + +} + +void TopBlock::start(void) +{ + +} + +void TopBlock::stop(void) +{ + +} + +void TopBlock::wait(void) +{ + +} |