123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- %description:
- Test shutdown and startup operations on EtherAppCli/EtherAppSrv/EtherLLC modules.
- The EtherSwitch, EtherMAC modules tested, too.
- sender[0] and recip start at down
- %#--------------------------------------------------------------------------------------------------------------
- %inifile: omnetpp.ini
- [General]
- network = Test
- tkenv-plugin-path = ../../../etc/plugins
- ned-path = .;../../../../src;../../lib
- cmdenv-express-mode = false
- #omnetpp 5.0 - 5.1 compatibility:
- eventlog-file = "${resultdir}/${configname}-${runnumber}.elog"
- output-scalar-file = "${resultdir}/${configname}-${runnumber}.sca"
- output-vector-file = "${resultdir}/${configname}-${runnumber}.vec"
- snapshot-file = "${resultdir}/${configname}-${runnumber}.sna"
- **.hasStatus = true
- *.sender[0].*.initialStatus = "down"
- *.recip.*.initialStatus = "down"
- **.scenarioManager.script = xmldoc("scenario.xml")
- # app config
- **.sender[0].cli.startTime = 1.0s
- **.sender[1].cli.startTime = 1.1s
- **.sender[*].cli.sendInterval = 0.5s
- **.sender[*].cli.stopTime = 10s
- **.sender[*].cli.reqLength = 800B
- **.sender[*].cli.respLength = 100B
- **.sender[*].cli.destAddress = "recip"
- %#--------------------------------------------------------------------------------------------------------------
- %file: test.ned
- import inet.common.lifecycle.LifecycleController;
- import inet.node.ethernet.EtherHost;
- import inet.node.ethernet.EtherSwitch;
- import inet.common.scenario.ScenarioManager;
- network Test
- {
- submodules:
- scenarioManager: ScenarioManager {
- @display("p=450,50");
- }
- lifecycleController: LifecycleController {
- @display("p=150,50");
- }
- sender[2]: EtherHost {
- @display("p=100,350,r,150");
- }
- recip: EtherHost {
- @display("p=500,350");
- }
- switch: EtherSwitch {
- @display("p=300,180");
- }
- connections:
- sender[0].ethg <--> { datarate = 10Mbps; delay = 10us; } <--> switch.ethg++;
- sender[1].ethg <--> { datarate = 10Mbps; delay = 10us; } <--> switch.ethg++;
- recip.ethg <--> { datarate = 10Mbps; delay = 10us; } <--> switch.ethg++;
- }
- %#--------------------------------------------------------------------------------------------------------------
- %file: scenario.xml
- <scenario>
- <tell t="1.7" module="lifecycleController" target="recip" operation="NodeStartOperation"/>
- <tell t="2.0" module="lifecycleController" target="sender[0]" operation="NodeStartOperation"/>
- <tell t="3.2" module="lifecycleController" target="recip" operation="NodeShutdownOperation"/>
- <tell t="4.2" module="lifecycleController" target="recip" operation="NodeStartOperation"/>
- <tell t="5.1" module="lifecycleController" target="sender[1]" operation="NodeShutdownOperation"/>
- <tell t="6.1" module="lifecycleController" target="sender[1]" operation="NodeStartOperation"/>
- <tell t="7.3" module="lifecycleController" target="switch" operation="NodeShutdownOperation"/>
- <tell t="8.3" module="lifecycleController" target="switch" operation="NodeStartOperation"/>
- <tell t="9.0" module="lifecycleController" target="sender[0]" operation="NodeShutdownOperation"/>
- <tell t="9.1" module="lifecycleController" target="sender[1]" operation="NodeShutdownOperation"/>
- </scenario>
- %#--------------------------------------------------------------------------------------------------------------
- %subst: /DEBUG: //
- %#--------------------------------------------------------------------------------------------------------------
- %#--------------------------------------------------------------------------------------------------------------
- %# sender[0]
- %#--------------------------------------------------------------------------------------------------------------
- %not-contains-regex: stdout
- \*\* Event \#\d+ t=[01](\.d+)? Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-\d+'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=2 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Test\.sender\[0\] starting up
- Doing stage 1/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Doing stage 2/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Doing stage 3/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Doing stage 4/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Doing stage 5/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Doing stage 6/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Starting application
- Test\.sender\[0\]\.srv registering DSAP 241
- Doing stage 7/8 of operation inet::NodeStartOperation on Test\.sender\[0\]
- Test\.sender\[0\] started
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=2 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Test\.sender\[0\]\.cli registering DSAP 240
- Generating packet `req-\d+-1'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=2\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-2'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=3 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-3'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=3\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-4'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=4 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-5'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=4\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-6'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-7'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=5\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-8'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=6 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-9'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=6\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-10'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=7 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-11'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=7\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-12'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=8 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-13'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=8\.5 Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-14'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=9 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeShutdownOperation on Test.sender\[0\]
- Test\.sender\[0\] shutting down
- Doing stage 1/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Stop the application
- Doing stage 2/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Doing stage 3/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Doing stage 4/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Doing stage 5/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Doing stage 6/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Doing stage 7/8 of operation inet::NodeShutdownOperation on Test\.sender\[0\]
- Test\.sender\[0\] shut down
- %#--------------------------------------------------------------------------------------------------------------
- %not-contains-regex: stdout
- \*\* Event \#\d+ t=9(\.d+)? Test\.sender\[0\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-\d+'
- %#--------------------------------------------------------------------------------------------------------------
- %#--------------------------------------------------------------------------------------------------------------
- %# sender[1]
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=1.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Test\.sender\[1\]\.cli registering DSAP 240
- Generating packet `req-\d+-1'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=1\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-2'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=2\.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-3'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=2\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-4'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=3\.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-5'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=3\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-6'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=4\.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-7'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=4\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-8'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=5\.1 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeShutdownOperation on Test.sender\[1\]
- Test\.sender\[1\] shutting down
- Doing stage 1/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Stop the application
- Doing stage 2/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 3/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 4/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 5/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 6/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 7/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Test\.sender\[1\] shut down
- %#--------------------------------------------------------------------------------------------------------------
- %not-contains-regex: stdout
- \*\* Event \#\d+ t=5(\.d+)? Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-\d+'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=6\.1 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Test\.sender\[1\] starting up
- Doing stage 1/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Doing stage 2/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Doing stage 3/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Doing stage 4/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Doing stage 5/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Doing stage 6/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Starting application
- Test\.sender\[1\]\.srv registering DSAP 241
- Doing stage 7/8 of operation inet::NodeStartOperation on Test\.sender\[1\]
- Test.sender\[1\] started
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=6\.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Test\.sender\[1\]\.cli registering DSAP 240
- Generating packet `req-\d+-9'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=6\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-10'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=7\.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-11'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=7\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-12'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=8\.1 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-13'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event \#\d+ t=8\.6 Test\.sender\[1\]\.cli \(EtherAppCli, id=\d+\)
- Generating packet `req-\d+-14'
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=9\.1 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeShutdownOperation on Test.sender\[1\]
- Test\.sender\[1\] shutting down
- Doing stage 1/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Stop the application
- Doing stage 2/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 3/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 4/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 5/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 6/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Doing stage 7/8 of operation inet::NodeShutdownOperation on Test\.sender\[1\]
- Test\.sender\[1\] shut down
- %#--------------------------------------------------------------------------------------------------------------
- %#--------------------------------------------------------------------------------------------------------------
- %# recip
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=1\.7 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeStartOperation on Test\.recip
- Test\.recip starting up
- Doing stage 1/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 2/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 3/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 4/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 5/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 6/8 of operation inet::NodeStartOperation on Test\.recip
- Starting application
- Test\.recip\.srv registering DSAP 241
- Doing stage 7/8 of operation inet::NodeStartOperation on Test\.recip
- Test\.recip started
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=3\.2 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeShutdownOperation on Test.recip
- Test\.recip shutting down
- Doing stage 1/8 of operation inet::NodeShutdownOperation on Test\.recip
- Stop the application
- Doing stage 2/8 of operation inet::NodeShutdownOperation on Test\.recip
- Doing stage 3/8 of operation inet::NodeShutdownOperation on Test\.recip
- Doing stage 4/8 of operation inet::NodeShutdownOperation on Test\.recip
- Doing stage 5/8 of operation inet::NodeShutdownOperation on Test\.recip
- Doing stage 6/8 of operation inet::NodeShutdownOperation on Test\.recip
- Doing stage 7/8 of operation inet::NodeShutdownOperation on Test\.recip
- Test\.recip shut down
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=4\.2 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeStartOperation on Test\.recip
- Test\.recip starting up
- Doing stage 1/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 2/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 3/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 4/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 5/8 of operation inet::NodeStartOperation on Test\.recip
- Doing stage 6/8 of operation inet::NodeStartOperation on Test\.recip
- Starting application
- Test\.recip\.srv registering DSAP 241
- Doing stage 7/8 of operation inet::NodeStartOperation on Test\.recip
- Test\.recip started
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %#--------------------------------------------------------------------------------------------------------------
- %# switch
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=7\.3 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeShutdownOperation on Test.switch
- Test\.switch shutting down
- Doing stage 1/8 of operation inet::NodeShutdownOperation on Test\.switch
- Doing stage 2/8 of operation inet::NodeShutdownOperation on Test\.switch
- Doing stage 3/8 of operation inet::NodeShutdownOperation on Test\.switch
- Doing stage 4/8 of operation inet::NodeShutdownOperation on Test\.switch
- Doing stage 5/8 of operation inet::NodeShutdownOperation on Test\.switch
- Doing stage 6/8 of operation inet::NodeShutdownOperation on Test\.switch
- Doing stage 7/8 of operation inet::NodeShutdownOperation on Test\.switch
- Test\.switch shut down
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %contains-regex: stdout
- \*\* Event #\d+ t=8\.3 Test\.scenarioManager \(ScenarioManager, id=\d+\)
- processing <tell> command\.\.\.
- Doing stage 0/8 of operation inet::NodeStartOperation on Test\.switch
- Test\.switch starting up
- Doing stage 1/8 of operation inet::NodeStartOperation on Test\.switch
- Doing stage 2/8 of operation inet::NodeStartOperation on Test\.switch
- Doing stage 3/8 of operation inet::NodeStartOperation on Test\.switch
- Doing stage 4/8 of operation inet::NodeStartOperation on Test\.switch
- Doing stage 5/8 of operation inet::NodeStartOperation on Test\.switch
- Doing stage 6/8 of operation inet::NodeStartOperation on Test\.switch
- Doing stage 7/8 of operation inet::NodeStartOperation on Test\.switch
- Test\.switch started
- \*\* Event #\d+ t=
- %#--------------------------------------------------------------------------------------------------------------
- %#--------------------------------------------------------------------------------------------------------------
- %# result.sca
- %#--------------------------------------------------------------------------------------------------------------
- %contains: results/General-0.sca
- scalar Test.sender[0].cli sentPk:count 14
- attr
- %#--------------------------------------------------------------------------------------------------------------
- %contains: results/General-0.sca
- scalar Test.sender[0].cli rcvdPk:count 10
- attr
- %#--------------------------------------------------------------------------------------------------------------
- %contains: results/General-0.sca
- scalar Test.sender[1].cli sentPk:count 14
- attr
- %#--------------------------------------------------------------------------------------------------------------
- %contains: results/General-0.sca
- scalar Test.sender[1].cli rcvdPk:count 8
- attr
- %#--------------------------------------------------------------------------------------------------------------
- %contains: results/General-0.sca
- scalar Test.recip.srv rcvdPk:count 18
- attr
- %#--------------------------------------------------------------------------------------------------------------
- %contains: results/General-0.sca
- scalar Test.recip.srv sentPk:count 18
- attr
- %#--------------------------------------------------------------------------------------------------------------
- %not-contains: stdout
- undisposed object:
- %not-contains: stdout
- -- check module destructor
- %#--------------------------------------------------------------------------------------------------------------
|