%description:
test scheduleAt(): what if message is currently scheduled by another module

%file: test.ned

simple Sender
{
    gates:
        input in;
        output out;
}

simple Receiver
{
    gates:
        input in;
        output out;
}

network Test
{
    submodules:
        theSender : Sender;
        theReceiver : Receiver;
    connections:
        theSender.out --> theReceiver.in;
        theSender.in  <-- theReceiver.out;
}

%file: test.cc

#include <omnetpp.h>

using namespace omnetpp;

namespace @TESTNAME@ {

class Sender : public cSimpleModule
{
  public:
    Sender() : cSimpleModule(32768) { }
    virtual void activity() override;
};

Define_Module(Sender);

void Sender::activity()
{
    wait(1);

    cMessage *msg = new cMessage("one");
    send(msg,"out");
    wait(1);  // give it some time to arrive
    scheduleAt(3,msg);
}

class Receiver : public cSimpleModule
{
  public:
    virtual void handleMessage(cMessage *msg) override {scheduleAt(1000,msg);}
};

Define_Module(Receiver);

}; //namespace

%exitcode: 1

%subst: /omnetpp:://
%contains-regex: stderr
scheduleAt\(\): Cannot schedule message \(cMessage\)one, it is currently scheduled as self-message for ANOTHER module