%description: Dynamic array out of bounds test for non-cOwnedObject rooted classes %file: test.msg namespace @TESTNAME@; class MyClass { int aa[]; }; %includes: #include "test_m.h" %activity: #define TRYPRINT(X) try { \ EV << #X << ":"; EV << X << endl; \ } catch (std::exception& e) { \ EV << "OOPS!" << endl; \ } #define TRY(X) try { \ EV << #X << ":"; X; EV << "OK" << endl; \ } catch (std::exception& e) { \ EV << "OOPS!" << endl; \ } MyClass x; // default array sizes should be zero TRYPRINT(x.getAaArraySize()); TRYPRINT(x.getAa(0)); x.setAaArraySize(3); TRYPRINT(x.getAaArraySize()); TRYPRINT(x.getAa(-1)); TRYPRINT(x.getAa(0)); TRYPRINT(x.getAa(1)); TRYPRINT(x.getAa(2)); TRYPRINT(x.getAa(3)); TRYPRINT(x.getAa(4)); TRY(x.setAa(-1,23)); TRY(x.setAa(0,12)); TRY(x.setAa(1,55)); TRY(x.setAa(2,83)); TRY(x.setAa(3,87)); TRY(x.setAa(4,26)); %contains: stdout x.getAaArraySize():0 x.getAa(0):OOPS! x.getAaArraySize():3 x.getAa(-1):OOPS! x.getAa(0):0 x.getAa(1):0 x.getAa(2):0 x.getAa(3):OOPS! x.getAa(4):OOPS! x.setAa(-1,23):OOPS! x.setAa(0,12):OK x.setAa(1,55):OK x.setAa(2,83):OK x.setAa(3,87):OOPS! x.setAa(4,26):OOPS!