summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/qa_gr_block.cc
diff options
context:
space:
mode:
authorTom Rondeau <tom@trondeau.com>2015-02-13 16:14:19 -0500
committerTom Rondeau <tom@trondeau.com>2015-02-13 16:15:35 -0500
commitbab014a9f47f1d64f47317cec683a10c02ffa462 (patch)
treede1ccea23f63d278e82d0aa4fb56441f0bd38062 /gr-blocks/lib/qa_gr_block.cc
parentc990e8256dd580a72b28d138c030a112a33157f7 (diff)
runtime: added accessor to get base address of buffer. Addresses Issue #729.
Reintroduced qa_gr_block and added t2 tests to get input/output buffer size and base. Need to include buffer.h, block.h, and block_detail.h when calling these in a block's work function.
Diffstat (limited to 'gr-blocks/lib/qa_gr_block.cc')
-rw-r--r--gr-blocks/lib/qa_gr_block.cc47
1 files changed, 36 insertions, 11 deletions
diff --git a/gr-blocks/lib/qa_gr_block.cc b/gr-blocks/lib/qa_gr_block.cc
index 5df1b217d4..48683ddbc1 100644
--- a/gr-blocks/lib/qa_gr_block.cc
+++ b/gr-blocks/lib/qa_gr_block.cc
@@ -30,19 +30,18 @@
#include <gnuradio/blocks/null_sink.h>
#include <gnuradio/blocks/null_source.h>
-
// ----------------------------------------------------------------
void
-qa_block::t0 ()
+qa_gr_block::t0 ()
{
// test creation of sources
gr::block_sptr src1(gr::blocks::null_source::make(sizeof (int)));
CPPUNIT_ASSERT_EQUAL(std::string("null_source"), src1->name ());
CPPUNIT_ASSERT_EQUAL(0, src1->input_signature()->max_streams ());
CPPUNIT_ASSERT_EQUAL(1, src1->output_signature()->min_streams ());
- CPPUNIT_ASSERT_EQUAL(1, src1->output_signature()->max_streams ());
+ CPPUNIT_ASSERT_EQUAL(-1, src1->output_signature()->max_streams ());
CPPUNIT_ASSERT_EQUAL((int) sizeof(int),
src1->output_signature()->sizeof_stream_item (0));
@@ -50,40 +49,66 @@ qa_block::t0 ()
CPPUNIT_ASSERT_EQUAL(std::string ("null_source"), src2->name ());
CPPUNIT_ASSERT_EQUAL(0, src2->input_signature()->max_streams ());
CPPUNIT_ASSERT_EQUAL(1, src2->output_signature()->min_streams ());
- CPPUNIT_ASSERT_EQUAL(1, src2->output_signature()->max_streams ());
+ CPPUNIT_ASSERT_EQUAL(-1, src2->output_signature()->max_streams ());
CPPUNIT_ASSERT_EQUAL((int)sizeof (short),
src2->output_signature()->sizeof_stream_item (0));
}
void
-qa_block::t1 ()
+qa_gr_block::t1 ()
{
// test creation of sinks
gr::block_sptr dst1 (gr::blocks::null_sink::make (sizeof (int)));
CPPUNIT_ASSERT_EQUAL (std::string ("null_sink"), dst1->name ());
CPPUNIT_ASSERT_EQUAL (1, dst1->input_signature()->min_streams ());
- CPPUNIT_ASSERT_EQUAL (1, dst1->input_signature()->max_streams ());
+ CPPUNIT_ASSERT_EQUAL (-1, dst1->input_signature()->max_streams ());
CPPUNIT_ASSERT_EQUAL ((int) sizeof (int),
- dst1->input_signature()->sizeof_stream_item (0));
+ dst1->input_signature()->sizeof_stream_item (0));
CPPUNIT_ASSERT_EQUAL (0, dst1->output_signature()->max_streams ());
gr::block_sptr dst2 (gr::blocks::null_sink::make (sizeof (short)));
CPPUNIT_ASSERT_EQUAL (std::string ("null_sink"), dst2->name ());
CPPUNIT_ASSERT_EQUAL (1, dst2->input_signature()->min_streams ());
- CPPUNIT_ASSERT_EQUAL (1, dst2->input_signature()->max_streams ());
+ CPPUNIT_ASSERT_EQUAL (-1, dst2->input_signature()->max_streams ());
CPPUNIT_ASSERT_EQUAL ((int) sizeof (short),
- dst2->input_signature()->sizeof_stream_item (0));
+ dst2->input_signature()->sizeof_stream_item (0));
CPPUNIT_ASSERT_EQUAL (0, dst2->output_signature()->max_streams ());
}
+#include <gnuradio/top_block.h>
+#include <gnuradio/buffer.h>
+#include <gnuradio/block_detail.h>
+#include <gnuradio/blocks/nop.h>
+
void
-qa_block::t2 ()
+qa_gr_block::t2 ()
{
+ gr::block_sptr src1(gr::blocks::null_source::make(sizeof (int)));
+ gr::block_sptr nop(gr::blocks::nop::make(sizeof (int)));
+ gr::block_sptr dst1 (gr::blocks::null_sink::make (sizeof (int)));
+
+ gr::top_block_sptr tb(gr::make_top_block("t2"));
+ tb->connect(src1, 0, nop, 0);
+ tb->connect(nop, 0, dst1, 0);
+ tb->start();
+
+ char *obuf = nop->detail()->output(0)->base();
+ int obsize = nop->detail()->output(0)->bufsize();
+ char *ibuf = nop->detail()->input(0)->buffer()->base();
+ int ibsize = nop->detail()->input(0)->buffer()->bufsize();
+
+ CPPUNIT_ASSERT(obuf != NULL);
+ CPPUNIT_ASSERT(ibuf != NULL);
+ CPPUNIT_ASSERT(obsize > 0);
+ CPPUNIT_ASSERT(ibsize > 0);
+
+ tb->stop();
+ tb->wait();
}
void
-qa_block::t3 ()
+qa_gr_block::t3 ()
{
}