diff --git a/tests/40components.tests b/tests/40components.tests index 7b3bdd31d..51b9c54bc 100644 --- a/tests/40components.tests +++ b/tests/40components.tests @@ -505,6 +505,11 @@ out: can_IterForEach : Yes END +TEST "Polymorphic value objects" PolymorphicValue_test < >(); + CHECK (prevSum+111 == _checkSum); // We got one primary ctor call + CHECK (prevCnt+1 <= _created); // Note: usually, the compiler optimises + CHECK (prevCnt+2 >= _created); // and skips the spurious copy-operation + CHECK (sizeof(PolyVal) > sizeof(Imp<111>)); + Interface& embedded = val; + CHECK (isSameObject(embedded,val)); + CHECK (INSTANCEOF(Imp<111>, &embedded)); + } + + void verifyOverrunProtection() {