summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/runtime
diff options
context:
space:
mode:
authorTom Rondeau2010-11-11 20:04:44 -0500
committerTom Rondeau2010-11-11 20:04:44 -0500
commit4a63bc91ddceaa8ce9d14a3f714bd0cdc3e85128 (patch)
treeab9a2623a8e8374557a70096cb7b3dfdc802a555 /gnuradio-core/src/lib/runtime
parent54b396764a9fad91cbfd10f618e4faed1c8bafa2 (diff)
downloadgnuradio-4a63bc91ddceaa8ce9d14a3f714bd0cdc3e85128.tar.gz
gnuradio-4a63bc91ddceaa8ce9d14a3f714bd0cdc3e85128.tar.bz2
gnuradio-4a63bc91ddceaa8ce9d14a3f714bd0cdc3e85128.zip
Reworked 1-to-1 annotator block to better testing purposes.
Diffstat (limited to 'gnuradio-core/src/lib/runtime')
-rw-r--r--gnuradio-core/src/lib/runtime/qa_block_tags.cc58
-rw-r--r--gnuradio-core/src/lib/runtime/qa_block_tags.h2
2 files changed, 54 insertions, 6 deletions
diff --git a/gnuradio-core/src/lib/runtime/qa_block_tags.cc b/gnuradio-core/src/lib/runtime/qa_block_tags.cc
index 4dc096f27..ee16ec108 100644
--- a/gnuradio-core/src/lib/runtime/qa_block_tags.cc
+++ b/gnuradio-core/src/lib/runtime/qa_block_tags.cc
@@ -137,6 +137,7 @@ qa_block_tags::t1 ()
}
// For annotator 4, we know it gets tags from ann0 and ann2, test this
+ std::cout << std::endl;
for(size_t i = 0; i < tags4.size(); i++) {
std::cout << "tags4[" << i << "] = " << tags4[i] << "\t\t" << expected_tags4[i] << std::endl;
CPPUNIT_ASSERT_EQUAL(pmt_write_string(tags4[i]), pmt_write_string(expected_tags4[i]));
@@ -153,11 +154,11 @@ qa_block_tags::t2 ()
gr_top_block_sptr tb = gr_make_top_block("top");
gr_block_sptr src (gr_make_null_source(sizeof(int)));
gr_block_sptr head (gr_make_head(sizeof(int), N));
- gr_block_sptr ann0 (gr_make_annotator_1to1(sizeof(int)));
- gr_block_sptr ann1 (gr_make_annotator_1toall(sizeof(int)));
- gr_block_sptr ann2 (gr_make_annotator_1toall(sizeof(int)));
- gr_block_sptr ann3 (gr_make_annotator_1toall(sizeof(int)));
- gr_block_sptr ann4 (gr_make_annotator_1toall(sizeof(int)));
+ gr_annotator_1to1_sptr ann0 (gr_make_annotator_1to1(sizeof(int)));
+ gr_annotator_1toall_sptr ann1 (gr_make_annotator_1toall(sizeof(int)));
+ gr_annotator_1toall_sptr ann2 (gr_make_annotator_1toall(sizeof(int)));
+ gr_annotator_1to1_sptr ann3 (gr_make_annotator_1to1(sizeof(int)));
+ gr_annotator_1to1_sptr ann4 (gr_make_annotator_1to1(sizeof(int)));
gr_block_sptr snk0 (gr_make_null_sink(sizeof(int)));
gr_block_sptr snk1 (gr_make_null_sink(sizeof(int)));
@@ -174,5 +175,52 @@ qa_block_tags::t2 ()
tb->connect(ann4, 0, snk1, 0);
tb->run();
+
+ // Kludge together the tags that we know should result from the above graph
+ std::stringstream str0, str1, str2;
+ str0 << ann0->name() << ann0->unique_id();
+ str1 << ann1->name() << ann1->unique_id();
+ str2 << ann2->name() << ann2->unique_id();
+
+ pmt_t expected_tags3[8];
+ expected_tags3[0] = mp(pmt_from_uint64(10000), mp(str1.str()), mp("seq"), mp(0));
+ expected_tags3[1] = mp(pmt_from_uint64(10000), mp(str0.str()), mp("seq"), mp(0));
+ expected_tags3[2] = mp(pmt_from_uint64(20000), mp(str1.str()), mp("seq"), mp(1));
+ expected_tags3[3] = mp(pmt_from_uint64(20000), mp(str0.str()), mp("seq"), mp(2));
+ expected_tags3[4] = mp(pmt_from_uint64(30000), mp(str1.str()), mp("seq"), mp(2));
+ expected_tags3[5] = mp(pmt_from_uint64(30000), mp(str0.str()), mp("seq"), mp(4));
+ expected_tags3[6] = mp(pmt_from_uint64(40000), mp(str1.str()), mp("seq"), mp(3));
+ expected_tags3[7] = mp(pmt_from_uint64(40000), mp(str0.str()), mp("seq"), mp(6));
+
+ pmt_t expected_tags4[8];
+ expected_tags4[0] = mp(pmt_from_uint64(10000), mp(str2.str()), mp("seq"), mp(0));
+ expected_tags4[1] = mp(pmt_from_uint64(10000), mp(str0.str()), mp("seq"), mp(1));
+ expected_tags4[2] = mp(pmt_from_uint64(20000), mp(str2.str()), mp("seq"), mp(1));
+ expected_tags4[3] = mp(pmt_from_uint64(20000), mp(str0.str()), mp("seq"), mp(3));
+ expected_tags4[4] = mp(pmt_from_uint64(30000), mp(str2.str()), mp("seq"), mp(2));
+ expected_tags4[5] = mp(pmt_from_uint64(30000), mp(str0.str()), mp("seq"), mp(5));
+ expected_tags4[6] = mp(pmt_from_uint64(40000), mp(str2.str()), mp("seq"), mp(3));
+ expected_tags4[7] = mp(pmt_from_uint64(40000), mp(str0.str()), mp("seq"), mp(7));
+
+ std::vector<pmt::pmt_t> tags0 = ann0->data();
+ std::vector<pmt::pmt_t> tags3 = ann3->data();
+ std::vector<pmt::pmt_t> tags4 = ann4->data();
+
+ // The first annotator does not receive any tags from the null sink upstream
+ CPPUNIT_ASSERT_EQUAL(tags0.size(), (size_t)0);
+
+ // For annotator 3, we know it gets tags from ann0 and ann1, test this
+ for(size_t i = 0; i < tags3.size(); i++) {
+ std::cout << "tags3[" << i << "] = " << tags3[i] << "\t\t" << expected_tags3[i] << std::endl;
+ //pmt_equal(tags3[i], expected_tags3[i])
+ CPPUNIT_ASSERT_EQUAL(pmt_write_string(tags3[i]), pmt_write_string(expected_tags3[i]));
+ }
+
+ // For annotator 4, we know it gets tags from ann0 and ann2, test this
+ std::cout << std::endl;
+ for(size_t i = 0; i < tags4.size(); i++) {
+ std::cout << "tags4[" << i << "] = " << tags4[i] << "\t\t" << expected_tags4[i] << std::endl;
+ CPPUNIT_ASSERT_EQUAL(pmt_write_string(tags4[i]), pmt_write_string(expected_tags4[i]));
+ }
}
diff --git a/gnuradio-core/src/lib/runtime/qa_block_tags.h b/gnuradio-core/src/lib/runtime/qa_block_tags.h
index 69bc0480c..44bef9fac 100644
--- a/gnuradio-core/src/lib/runtime/qa_block_tags.h
+++ b/gnuradio-core/src/lib/runtime/qa_block_tags.h
@@ -32,7 +32,7 @@ class qa_block_tags : public CppUnit::TestCase {
CPPUNIT_TEST_SUITE (qa_block_tags);
CPPUNIT_TEST (t0);
CPPUNIT_TEST (t1);
- //CPPUNIT_TEST (t2);
+ CPPUNIT_TEST (t2);
CPPUNIT_TEST_SUITE_END ();
private: