%description: Tests deletion of a compound module when deleting module is not part of the compound module. FIXME test that messages sent between modules of the deleted compund module do not cause errors (they're removed too). %file: test.ned simple Node { } module Compound { submodules: node1: Node; node2: Node; } simple Deleter { } network Test { submodules: compound: Compound; deleter: Deleter; } %file: test.cc #include using namespace omnetpp; namespace @TESTNAME@ { class Node : public cSimpleModule { public: Node() : cSimpleModule(16384) { } virtual void activity() override; }; Define_Module(Node); void Node::activity() { for (int i=0; i<10; i++) { EV << "Node " << getFullPath() << " at t=" << simTime() << endl; wait(1); } } class Deleter : public cSimpleModule { public: Deleter() : cSimpleModule(16384) { } virtual void activity() override; }; Define_Module(Deleter); void Deleter::activity() { wait(3); EV << "Deleting compound t=" << simTime() << endl; cModule *node = getParentModule()->getSubmodule("compound"); node->deleteModule(); EV << "Deleted" << endl; wait(2); EV << "Still here at t=" << simTime() << endl; } }; //namespace %inifile: test.ini [General] network = Test cmdenv-express-mode = false cmdenv-event-banners = false %contains: stdout Node Test.compound.node1 at t=0 Node Test.compound.node2 at t=0 Node Test.compound.node1 at t=1 Node Test.compound.node2 at t=1 Node Test.compound.node1 at t=2 Node Test.compound.node2 at t=2 Deleting compound t=3 Deleted Still here at t=5