%description: Negative test: trying to produce all error messages currently in the code, like: - Undeclared signal "%s" emitted (@signal missing from NED file?) - Wrong type "%s" in the @signal[%s] property in the "%s" NED type, should be one of: long, unsigned long, double, simtime_t, string, or a registered class name - Signal "%s" emitted with wrong class (%s does not subclass from %s as declared) - Signal "%s" emitted as timestamped value with wrong type (%s, but object expected) - Signal "%s" emitted as timestamped value with nullptr pointer in it (should be a %s as declared) - Signal "%s" emitted as timestamped value with wrong class in it (%s does not subclass from %s as declared) - Signal "%s" emitted with wrong data type (expected=%s, actual=%s) - Signal "%s" emitted as a timestamped value with wrong data type (expected=%s, actual=%s) - Signal "%s" emitted with wrong data type (expected=%s, actual=%s) [same a 2nd above, but issued on different condition] %file: test.msg namespace @TESTNAME@; class Foo extends cObject {} class Bar extends cObject {} %file: test.ned simple Test extends testlib.SignalSource { @isNetwork(true); @signal[untypedSignal](); @signal[bogusSignal](type="foo"); @signal[longSignal](type="long"); @signal[stringSignal](type="string"); @signal[objectSignal](type="@TESTNAME@::Foo"); @signal[nullableSignal](type="@TESTNAME@::Foo?"); script = xml("\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "); } %inifile: omnetpp.ini network = Test cmdenv-express-mode = false check-signals = true %contains: stdout t=0s: emit "foo" type=long value=99 ERROR: Undeclared signal "foo" emitted (@signal missing from NED file?) t=0s: emit "bogusSignal" type=long value=99 ERROR: Wrong type "foo" in the @signal[bogusSignal] property in the "Test" NED type, should be one of: long, unsigned long, double, simtime_t, string, or a registered class name optionally followed by a question mark t=0s: emit "longSignal" type=unsigned long value=153 ERROR: Signal "longSignal" emitted with wrong data type (expected=long, actual=unsigned long) t=0s: emit "longSignal" type=unsigned long value=153 timestamp=1s ERROR: Signal "longSignal" emitted as timestamped value with wrong data type (expected=long, actual=unsigned long) t=0s: emit "longSignal" type=@TESTNAME@::Foo value= ERROR: Signal "longSignal" emitted with wrong data type (expected=long, actual=@TESTNAME@::Foo) t=0s: emit "longSignal" type=@TESTNAME@::Foo value= timestamp=1s ERROR: Signal "longSignal" emitted as timestamped value with wrong data type (expected=long, actual=object) t=0s: emit "longSignal" type=nullptr value= ERROR: Signal "longSignal" emitted with wrong data type (expected=long, actual=nullptr) t=0s: emit "longSignal" type=nullptr value= timestamp=1s ERROR: Signal "longSignal" emitted as timestamped value with wrong data type (expected=long, actual=object) t=0s: emit "objectSignal" type=long value=99 ERROR: Signal "objectSignal" emitted with wrong data type (expected=object, actual=long) t=0s: emit "objectSignal" type=long value=99 timestamp=1s ERROR: Signal "objectSignal" emitted as timestamped value with wrong type (long, but object expected) t=0s: emit "objectSignal" type=nullptr value= ERROR: Signal "objectSignal" emitted a nullptr (specify 'type=@TESTNAME@::Foo?' in @signal to allow nullptr) t=0s: emit "objectSignal" type=nullptr value= timestamp=1s ERROR: Signal "objectSignal" emitted as timestamped value with nullptr in it (specify 'type=@TESTNAME@::Foo?' in @signal to allow nullptr) t=0s: emit "objectSignal" type=@TESTNAME@::Bar value= ERROR: Signal "objectSignal" emitted with wrong class (@TESTNAME@::Bar does not subclass from @TESTNAME@::Foo as declared) t=0s: emit "objectSignal" type=@TESTNAME@::Bar value= timestamp=1s ERROR: Signal "objectSignal" emitted as timestamped value with wrong class in it (@TESTNAME@::Bar does not subclass from @TESTNAME@::Foo as declared) t=0s: emit "nullableSignal" type=@TESTNAME@::Bar value= ERROR: Signal "nullableSignal" emitted with wrong class (@TESTNAME@::Bar does not subclass from @TESTNAME@::Foo as declared) t=0s: emit "nullableSignal" type=@TESTNAME@::Bar value= timestamp=1s ERROR: Signal "nullableSignal" emitted as timestamped value with wrong class in it (@TESTNAME@::Bar does not subclass from @TESTNAME@::Foo as declared)