%description: check that rng mapping in omnetpp.ini works properly %file: test.ned simple Simple { } network Test { submodules: a[5]: Simple; } %file: test.cc #include using namespace omnetpp; namespace @TESTNAME@ { class Simple : public cSimpleModule { public: Simple() : cSimpleModule(16384) { } virtual void activity() override; virtual int getRngId(cRNG *rng); }; Define_Module(Simple); void Simple::activity() { for (int i=0; i<=2; i++) EV << getFullName() << ".rng-" << i << " --> ev.rng-" << getRngId(getRNG(i)) << "\n"; } int Simple::getRngId(cRNG *rng) { for (int i=0; igetNumRNGs(); i++) if (getEnvir()->getRNG(i)==rng) return i; error("getRngId(): RNG not found"); return -1; // avoid warning } }; //namespace %inifile: test.ini [General] network = Test cmdenv-express-mode = false num-rngs = 3 *.a[0].rng-0 = 1 *.a[*].rng-0 = 2 *.a[1].rng-0 = 0 # should not affect anything *.a[2].rng-1 = 1 *.a[*].rng-1 = 0 *.a[1].rng-1 = 2 # should not affect anything %contains: stdout a[0].rng-0 --> ev.rng-1 a[0].rng-1 --> ev.rng-0 a[0].rng-2 --> ev.rng-2 %contains: stdout a[1].rng-0 --> ev.rng-2 a[1].rng-1 --> ev.rng-0 a[1].rng-2 --> ev.rng-2 %contains: stdout a[2].rng-0 --> ev.rng-2 a[2].rng-1 --> ev.rng-1 a[2].rng-2 --> ev.rng-2 %contains: stdout a[3].rng-0 --> ev.rng-2 a[3].rng-1 --> ev.rng-0 a[3].rng-2 --> ev.rng-2 %contains: stdout a[4].rng-0 --> ev.rng-2 a[4].rng-1 --> ev.rng-0 a[4].rng-2 --> ev.rng-2