[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3413 - gnuradio/branches/developers/eb/mb/mblock/src/
From: |
eb |
Subject: |
[Commit-gnuradio] r3413 - gnuradio/branches/developers/eb/mb/mblock/src/lib |
Date: |
Fri, 25 Aug 2006 13:58:23 -0600 (MDT) |
Author: eb
Date: 2006-08-25 13:58:23 -0600 (Fri, 25 Aug 2006)
New Revision: 3413
Modified:
gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc
gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h
gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc
Log:
work-in-progress: QA code for define_port
Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc
2006-08-25 19:56:23 UTC (rev 3412)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_mblock_impl.cc
2006-08-25 19:58:23 UTC (rev 3413)
@@ -80,7 +80,7 @@
mb_port_sptr
mb_mblock_impl::lookup_port(pmt_t port_name)
{
- for (std::vector<mb_port_sptr>::iterator p = d_ports.begin();
+ for (std::vector<mb_port_sptr>::const_iterator p = d_ports.begin();
p != d_ports.end(); p++){
if (pmt_eq(port_name, (*p)->port_name()))
return *p;
@@ -94,10 +94,12 @@
const std::vector<mb_port_class_sptr>
mb_mblock_impl::peer_interface() const
{
- // FIXME
std::vector<mb_port_class_sptr> r;
+
+ for (std::vector<mb_port_sptr>::const_iterator p = d_ports.begin();
+ p != d_ports.end(); p++){
+ r.push_back((*p)->port_class());
+ }
+
return r;
}
-
-
-
Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h 2006-08-25
19:56:23 UTC (rev 3412)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/mb_port.h 2006-08-25
19:58:23 UTC (rev 3413)
@@ -41,6 +41,8 @@
~mb_port();
+ mb_port_class_sptr port_class() const { return d_port_class; }
+
// delegations to d_port_class
pmt_t port_name() const { return
d_port_class->port_name(); }
Modified: gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc
2006-08-25 19:56:23 UTC (rev 3412)
+++ gnuradio/branches/developers/eb/mb/mblock/src/lib/qa_mblock_prims.cc
2006-08-25 19:58:23 UTC (rev 3413)
@@ -30,6 +30,8 @@
static pmt_t s_cs = pmt_intern("cs");
static pmt_t s_debug = pmt_intern("debug");
+// ----------------------------------------------------------------
+
class dp_1 : public mb_mblock
{
public:
@@ -44,6 +46,8 @@
dp_1::~dp_1(){}
+// ----------------------------------------------------------------
+
class dp_2 : public mb_mblock
{
public:
@@ -54,11 +58,31 @@
dp_2::dp_2(mb_runtime_sptr runtime)
: mb_mblock(runtime)
{
- define_port(s_cs, "cs_protocol", false, mb_port_class::EXTERNAL);
+ define_port(s_cs, "cs-protocol", false, mb_port_class::EXTERNAL);
}
dp_2::~dp_2(){}
+// ----------------------------------------------------------------
+
+class dp_3 : public mb_mblock
+{
+public:
+ dp_3(mb_runtime_sptr runtime);
+ ~dp_3();
+};
+
+dp_3::dp_3(mb_runtime_sptr runtime)
+ : mb_mblock(runtime)
+{
+ define_port(s_cs, "cs-protocol", false, mb_port_class::EXTERNAL);
+ define_port(s_cs, "cs-protocol", false, mb_port_class::EXTERNAL); //
duplicate def
+}
+
+dp_3::~dp_3(){}
+
+// ----------------------------------------------------------------
+
void
qa_mblock_prims::test_define_ports()
{
@@ -66,27 +90,38 @@
std::vector<mb_port_class_sptr> intf;
mb_mblock_sptr mb1 = mb_mblock_sptr(new dp_1(rt));
-
intf = mb1->peer_interface();
CPPUNIT_ASSERT_EQUAL(size_t(0), intf.size());
- // raises runtime_error because of unknown protocol "cs_protocol"
+ // raises runtime_error because of unknown protocol "cs-protocol"
CPPUNIT_ASSERT_THROW(mb_mblock_sptr(new dp_2(rt)), std::runtime_error);
// define the protocol class
- pmt_t pc = mb_make_protocol_class(pmt_intern("cs_protocol"),
+ pmt_t pc = mb_make_protocol_class(pmt_intern("cs-protocol"),
pmt_cons(pmt_intern("start"),
pmt_cons(pmt_intern("stop"),
PMT_NIL)),
PMT_NIL);
- std::cout << "pc = " << pc;
+ // std::cout << "pc = " << pc << '\n';
+ mb_mblock_sptr mb2 = mb_mblock_sptr(new dp_2(rt));
+
+ intf = mb2->peer_interface();
+ CPPUNIT_ASSERT_EQUAL(size_t(1), intf.size());
+ CPPUNIT_ASSERT(pmt_eq(s_cs, intf[0]->port_name()));
+
+
+ // raises pmt_exception because of duplicate port definition of "cs"
+ CPPUNIT_ASSERT_THROW(mb_mblock_sptr(new dp_3(rt)), pmt_exception);
+
+#if 0
try {
mb_mblock_sptr mb2 = mb_mblock_sptr(new dp_2(rt));
}
catch (pmt_exception &e){
- std::cerr << e.msg() << '\n';
+ std::cerr << e.msg() << ' ' << e.obj() << '\n';
}
+#endif
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3413 - gnuradio/branches/developers/eb/mb/mblock/src/lib,
eb <=