diff -r 2a9601315dfc -r 98ccebc37403 javacommons/utils/functionserver/tsrc/src/testfunctionserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javacommons/utils/functionserver/tsrc/src/testfunctionserver.cpp Fri May 14 15:47:24 2010 +0300 @@ -0,0 +1,2186 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Tests for function server +* +*/ + +#include "functionserver.h" +#include "fs_methodcall.h" + +#include "TestHarness.h" +#include "exceptionbase.h" +#include "logger.h" +using namespace java::util; + +int sIvokedMethod = -1; +int sA = -1; +int sB = -1; +int sC = -1; +int sD = -1; +int sE = -1; +int sF = -1; +int sG = -1; +int sH = -1; +int sI = -1; +int sIndex = 0; +int sServerSideInitCalled = false; +int sServerSideCleanCalled = false; +int sStartServerCalled = false; + +void localMethod() +{sIvokedMethod = 1;} +void localMethod1(int a) + {sIvokedMethod = 2; sA = a;} +void localMethod2(int a, int b) + {sIvokedMethod = 3; sA = a; sB = b;} +void localMethod3(int a, int b, int c) + {sIvokedMethod = 4; sA = a; sB = b; sC = c;} +void localMethod4(int a, int b, int c, int d) + {sIvokedMethod = 5; sA = a; sB = b; sC = c; sD = d;} +void localMethod5(int a, int b, int c, int d, int e) + {sIvokedMethod = 6; sA = a; sB = b; sC = c; sD = d; sE = e;} +void localMethod6(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 7; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;} +void localMethod7(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 8; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;} +void localMethod8(int a, int b, int c, int d, int e, int f, int g, int h) + {sIvokedMethod = 9; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h;} +void localMethod9(int a, int b, int c, int d, int e, int f, int g, int h, int i) + {sIvokedMethod = 10; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h; sI = i;} + +int localMethodR() + {sIvokedMethod = 11;return sIvokedMethod;} +int localMethodR1(int a) + {sIvokedMethod = 12; sA = a;return sIvokedMethod;} +int localMethodR2(int a, int b) + {sIvokedMethod = 13; sA = a; sB = b;return sIvokedMethod;} +int localMethodR3(int a, int b, int c) + {sIvokedMethod = 14; sA = a; sB = b; sC = c;return sIvokedMethod;} +int localMethodR4(int a, int b, int c, int d) + {sIvokedMethod = 15; sA = a; sB = b; sC = c; sD = d;return sIvokedMethod;} +int localMethodR5(int a, int b, int c, int d, int e) + {sIvokedMethod = 16; sA = a; sB = b; sC = c; sD = d; sE = e;return sIvokedMethod;} +int localMethodR6(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 17; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;return sIvokedMethod;} +int localMethodR7(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 18; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;return sIvokedMethod;} +int localMethodR8(int a, int b, int c, int d, int e, int f, int g, int h) + {sIvokedMethod = 19; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h;return sIvokedMethod;} +int localMethodR9(int a, int b, int c, int d, int e, int f, int g, int h, int i) + {sIvokedMethod = 20; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h; sI = i;return sIvokedMethod;} + +void localMethodTL() + {sIvokedMethod = 21; } +void localMethodT1L(int a) + {sIvokedMethod = 22; sA = a;} +void localMethodT2L(int a, int b) + {sIvokedMethod = 23; sA = a; sB = b;} +void localMethodT3L(int a, int b, int c) + {sIvokedMethod = 24; sA = a; sB = b; sC = c;} +void localMethodT4L(int a, int b, int c, int d) + {sIvokedMethod = 25; sA = a; sB = b; sC = c; sD = d;} +void localMethodT5L(int a, int b, int c, int d, int e) + {sIvokedMethod = 26; sA = a; sB = b; sC = c; sD = d; sE = e;} +void localMethodT6L(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 27; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;} +void localMethodT7L(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 28; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;} +void localMethodT8L(int a, int b, int c, int d, int e, int f, int g, int h) + {sIvokedMethod = 29; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h;} +void localMethodT9L(int a, int b, int c, int d, int e, int f, int g, int h, int i) + {sIvokedMethod = 30; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h; sI = i;} + +void localLeavingMethodTL() + {sIvokedMethod = 31; User::Leave(-sIvokedMethod);} +void localLeavingMethodT1L(int a) + {sIvokedMethod = 32; sA = a;User::Leave(-sIvokedMethod);} +void localLeavingMethodT2L(int a, int b) + {sIvokedMethod = 33; sA = a; sB = b;User::Leave(-sIvokedMethod);} +void localLeavingMethodT3L(int a, int b, int c) + {sIvokedMethod = 34; sA = a; sB = b; sC = c;User::Leave(-sIvokedMethod);} +void localLeavingMethodT4L(int a, int b, int c, int d) + {sIvokedMethod = 35; sA = a; sB = b; sC = c; sD = d;User::Leave(-sIvokedMethod);} +void localLeavingMethodT5L(int a, int b, int c, int d, int e) + {sIvokedMethod = 36; sA = a; sB = b; sC = c; sD = d; sE = e;User::Leave(-sIvokedMethod);} +void localLeavingMethodT6L(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 37; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;User::Leave(-sIvokedMethod);} +void localLeavingMethodT7L(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 38; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;User::Leave(-sIvokedMethod);} +void localLeavingMethodT8L(int a, int b, int c, int d, int e, int f, int g, int h) + {sIvokedMethod = 39; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h;User::Leave(-sIvokedMethod);} +void localLeavingMethodT9L(int a, int b, int c, int d, int e, int f, int g, int h, int i) + {sIvokedMethod = 40; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g; sH = h; sI = i;User::Leave(-sIvokedMethod);} + + +class TestClass +{ +public: + void classMethod() + {sIvokedMethod = 41;} + void classMethod1(int a) + {sIvokedMethod = 42; sA = a;} + void classMethod2(int a, int b) + {sIvokedMethod = 43; sA = a; sB = b;} + void classMethod3(int a, int b, int c) + {sIvokedMethod = 44; sA = a; sB = b; sC = c;} + void classMethod4(int a, int b, int c, int d) + {sIvokedMethod = 45; sA = a; sB = b; sC = c; sD = d;} + void classMethod5(int a, int b, int c, int d, int e) + {sIvokedMethod = 46; sA = a; sB = b; sC = c; sD = d; sE = e;} + void classMethod6(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 47; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;} + void classMethod7(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 48; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;} + + int classMethodR() + {sIvokedMethod = 51;return sIvokedMethod;} + int classMethodR1(int a) + {sIvokedMethod = 52; sA = a;return sIvokedMethod;} + int classMethodR2(int a, int b) + {sIvokedMethod = 53; sA = a; sB = b;return sIvokedMethod;} + int classMethodR3(int a, int b, int c) + {sIvokedMethod = 54; sA = a; sB = b; sC = c;return sIvokedMethod;} + int classMethodR4(int a, int b, int c, int d) + {sIvokedMethod = 55; sA = a; sB = b; sC = c; sD = d;return sIvokedMethod;} + int classMethodR5(int a, int b, int c, int d, int e) + {sIvokedMethod = 56; sA = a; sB = b; sC = c; sD = d; sE = e;return sIvokedMethod;} + int classMethodR6(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 57; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;return sIvokedMethod;} + int classMethodR7(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 58; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;return sIvokedMethod;} + + void classMethodL() + {sIvokedMethod = 61;} + void classMethodL1(int a) + {sIvokedMethod = 62; sA = a;} + void classMethodL2(int a, int b) + {sIvokedMethod = 63; sA = a; sB = b;} + void classMethodL3(int a, int b, int c) + {sIvokedMethod = 64; sA = a; sB = b; sC = c;} + void classMethodL4(int a, int b, int c, int d) + {sIvokedMethod = 65; sA = a; sB = b; sC = c; sD = d;} + void classMethodL5(int a, int b, int c, int d, int e) + {sIvokedMethod = 66; sA = a; sB = b; sC = c; sD = d; sE = e;} + void classMethodL6(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 67; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;} + void classMethodL7(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 68; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;} + + void classMethodWithLeaveL() + {sIvokedMethod = 71;User::Leave(-sIvokedMethod);} + void classMethodWithLeave1L(int a) + {sIvokedMethod = 72; sA = a;User::Leave(-sIvokedMethod);} + void classMethodWithLeave2L(int a, int b) + {sIvokedMethod = 73; sA = a; sB = b;User::Leave(-sIvokedMethod);} + void classMethodWithLeave3L(int a, int b, int c) + {sIvokedMethod = 74; sA = a; sB = b; sC = c;User::Leave(-sIvokedMethod);} + void classMethodWithLeave4L(int a, int b, int c, int d) + {sIvokedMethod = 75; sA = a; sB = b; sC = c; sD = d;User::Leave(-sIvokedMethod);} + void classMethodWithLeave5L(int a, int b, int c, int d, int e) + {sIvokedMethod = 76; sA = a; sB = b; sC = c; sD = d; sE = e;User::Leave(-sIvokedMethod);} + void classMethodWithLeave6L(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 77; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;User::Leave(-sIvokedMethod);} + void classMethodWithLeave7L(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 78; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;User::Leave(-sIvokedMethod);} + + int classMethodRL() + {sIvokedMethod = 81;return sIvokedMethod;} + int classMethodR1L(int a) + {sIvokedMethod = 82; sA = a;return sIvokedMethod;} + int classMethodR2L(int a, int b) + {sIvokedMethod = 83; sA = a; sB = b;return sIvokedMethod;} + int classMethodR3L(int a, int b, int c) + {sIvokedMethod = 84; sA = a; sB = b; sC = c;return sIvokedMethod;} + int classMethodR4L(int a, int b, int c, int d) + {sIvokedMethod = 85; sA = a; sB = b; sC = c; sD = d;return sIvokedMethod;} + int classMethodR5L(int a, int b, int c, int d, int e) + {sIvokedMethod = 86; sA = a; sB = b; sC = c; sD = d; sE = e;return sIvokedMethod;} + int classMethodR6L(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 87; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;return sIvokedMethod;} + int classMethodR7L(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 88; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;return sIvokedMethod;} + + int classMethodWithLeaveRL() + {sIvokedMethod = 91;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR1L(int a) + {sIvokedMethod = 92; sA = a;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR2L(int a, int b) + {sIvokedMethod = 93; sA = a; sB = b;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR3L(int a, int b, int c) + {sIvokedMethod = 94; sA = a; sB = b; sC = c;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR4L(int a, int b, int c, int d) + {sIvokedMethod = 95; sA = a; sB = b; sC = c; sD = d;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR5L(int a, int b, int c, int d, int e) + {sIvokedMethod = 96; sA = a; sB = b; sC = c; sD = d; sE = e;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR6L(int a, int b, int c, int d, int e, int f) + {sIvokedMethod = 97; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveR7L(int a, int b, int c, int d, int e, int f, int g) + {sIvokedMethod = 98; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;User::Leave(-sIvokedMethod);return 0;} + + + + void classMethodC() const + {sIvokedMethod = 101;} + void classMethodC1(int a) const + {sIvokedMethod = 102; sA = a;} + void classMethodC2(int a, int b) const + {sIvokedMethod = 103; sA = a; sB = b;} + void classMethodC3(int a, int b, int c) const + {sIvokedMethod = 104; sA = a; sB = b; sC = c;} + void classMethodC4(int a, int b, int c, int d) const + {sIvokedMethod = 105; sA = a; sB = b; sC = c; sD = d;} + void classMethodC5(int a, int b, int c, int d, int e) const + {sIvokedMethod = 106; sA = a; sB = b; sC = c; sD = d; sE = e;} + void classMethodC6(int a, int b, int c, int d, int e, int f) const + {sIvokedMethod = 107; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;} + void classMethodC7(int a, int b, int c, int d, int e, int f, int g) const + {sIvokedMethod = 108; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;} + + int classMethodRC() const + {sIvokedMethod = 111;return sIvokedMethod;} + int classMethodRC1(int a) const + {sIvokedMethod = 112; sA = a;return sIvokedMethod;} + int classMethodRC2(int a, int b) const + {sIvokedMethod = 113; sA = a; sB = b;return sIvokedMethod;} + int classMethodRC3(int a, int b, int c) const + {sIvokedMethod = 114; sA = a; sB = b; sC = c;return sIvokedMethod;} + int classMethodRC4(int a, int b, int c, int d) const + {sIvokedMethod = 115; sA = a; sB = b; sC = c; sD = d;return sIvokedMethod;} + int classMethodRC5(int a, int b, int c, int d, int e) const + {sIvokedMethod = 116; sA = a; sB = b; sC = c; sD = d; sE = e;return sIvokedMethod;} + int classMethodRC6(int a, int b, int c, int d, int e, int f) const + {sIvokedMethod = 117; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;return sIvokedMethod;} + int classMethodRC7(int a, int b, int c, int d, int e, int f, int g) const + {sIvokedMethod = 118; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;return sIvokedMethod;} + + void classMethodCL() const + {sIvokedMethod = 121;} + void classMethodC1L(int a) const + {sIvokedMethod = 122; sA = a;} + void classMethodC2L(int a, int b) const + {sIvokedMethod = 123; sA = a; sB = b;} + void classMethodC3L(int a, int b, int c) const + {sIvokedMethod = 124; sA = a; sB = b; sC = c;} + void classMethodC4L(int a, int b, int c, int d) const + {sIvokedMethod = 125; sA = a; sB = b; sC = c; sD = d;} + void classMethodC5L(int a, int b, int c, int d, int e) const + {sIvokedMethod = 126; sA = a; sB = b; sC = c; sD = d; sE = e;} + void classMethodC6L(int a, int b, int c, int d, int e, int f) const + {sIvokedMethod = 127; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;} + void classMethodC7L(int a, int b, int c, int d, int e, int f, int g) const + {sIvokedMethod = 128; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;} + + void classMethodWithLeaveCL() const + {sIvokedMethod = 131;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC1L(int a) const + {sIvokedMethod = 132; sA = a;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC2L(int a, int b) const + {sIvokedMethod = 133; sA = a; sB = b;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC3L(int a, int b, int c) const + {sIvokedMethod = 134; sA = a; sB = b; sC = c;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC4L(int a, int b, int c, int d) const + {sIvokedMethod = 135; sA = a; sB = b; sC = c; sD = d;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC5L(int a, int b, int c, int d, int e) const + {sIvokedMethod = 136; sA = a; sB = b; sC = c; sD = d; sE = e;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC6L(int a, int b, int c, int d, int e, int f) const + {sIvokedMethod = 137; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;User::Leave(-sIvokedMethod);} + void classMethodWithLeaveC7L(int a, int b, int c, int d, int e, int f, int g) const + {sIvokedMethod = 138; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;User::Leave(-sIvokedMethod);} + + int classMethodRCL() const + {sIvokedMethod = 141;return sIvokedMethod;} + int classMethodRC1L(int a) const + {sIvokedMethod = 142; sA = a;return sIvokedMethod;} + int classMethodRC2L(int a, int b) const + {sIvokedMethod = 143; sA = a; sB = b;return sIvokedMethod;} + int classMethodRC3L(int a, int b, int c) const + {sIvokedMethod = 144; sA = a; sB = b; sC = c;return sIvokedMethod;} + int classMethodRC4L(int a, int b, int c, int d) const + {sIvokedMethod = 145; sA = a; sB = b; sC = c; sD = d;return sIvokedMethod;} + int classMethodRC5L(int a, int b, int c, int d, int e) const + {sIvokedMethod = 146; sA = a; sB = b; sC = c; sD = d; sE = e;return sIvokedMethod;} + int classMethodRC6L(int a, int b, int c, int d, int e, int f) const + {sIvokedMethod = 147; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;return sIvokedMethod;} + int classMethodRC7L(int a, int b, int c, int d, int e, int f, int g) const + {sIvokedMethod = 148; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;return sIvokedMethod;} + + int classMethodWithLeaveRCL() const + {sIvokedMethod = 151;User::Leave(-sIvokedMethod); return 0;} + int classMethodWithLeaveRC1L(int a) const + {sIvokedMethod = 152; sA = a;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveRC2L(int a, int b) const + {sIvokedMethod = 153; sA = a; sB = b;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveRC3L(int a, int b, int c) const + {sIvokedMethod = 154; sA = a; sB = b; sC = c;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveRC4L(int a, int b, int c, int d) const + {sIvokedMethod = 155; sA = a; sB = b; sC = c; sD = d;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveRC5L(int a, int b, int c, int d, int e) const + {sIvokedMethod = 156; sA = a; sB = b; sC = c; sD = d; sE = e;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveRC6L(int a, int b, int c, int d, int e, int f) const + {sIvokedMethod = 157; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f;User::Leave(-sIvokedMethod);return 0;} + int classMethodWithLeaveRC7L(int a, int b, int c, int d, int e, int f, int g) const + {sIvokedMethod = 158; sA = a; sB = b; sC = c; sD = d; sE = e; sF = f; sG = g;User::Leave(-sIvokedMethod);return 0;} +}; + + +class MyFunctionServer: public java::util::FunctionServer +{ +public: + + MyFunctionServer() : + java::util::FunctionServer("JavaTestFunctionServer") + { + } + + virtual void doServerSideInit() + { + java::util::FunctionServer::doServerSideInit(); + sServerSideInitCalled = ++sIndex; + } + virtual void doServerSideClean() + { + sServerSideCleanCalled = ++sIndex; + } + virtual void startServer() + { + sStartServerCalled = ++sIndex; + java::util::FunctionServer::startServer(); + } +}; +class MyFunctionServer2 +{ + int a; +}; + +TEST_GROUP(TestFuncServerInit) +{ + TEST_SETUP() + { + sIvokedMethod = -1; + sA = -1; + sB = -1; + sC = -1; + sD = -1; + sE = -1; + sF = -1; + sG = -1; + sH = -1; + sI = -1; + sServerSideInitCalled = 0; + sServerSideCleanCalled = 0; + sStartServerCalled = 0; + sIndex = 0; + } + + TEST_TEARDOWN() + { + } +}; + + +TEST(TestFuncServerInit, startAndStop) +{ + MyFunctionServer* fserver = new MyFunctionServer(); + try + { + fserver->createServerToNewThread(); + fserver->stopServer(); + delete fserver; + fserver = 0; + } + catch(...) + { + FAIL("Unexpected exp in startAndStop\n"); + } + + CHECK(sServerSideInitCalled == 1); + CHECK(sStartServerCalled == 2); + CHECK(sServerSideCleanCalled == 3); +} + + + + + + + +TEST_GROUP(TestFuncServerNotOpened) +{ + MyFunctionServer* fserver; + TestClass* clazz; + int a; + int b; + int c; + int d; + int e; + int f; + int g; + int h; + int i; + + TEST_SETUP() + { + fserver = new MyFunctionServer(); + + sServerSideInitCalled = 0; + sServerSideCleanCalled = 0; + sStartServerCalled = 0; + sIndex = 0; + sIvokedMethod = -1; + sA = -1; + sB = -1; + sC = -1; + sD = -1; + sE = -1; + sF = -1; + sG = -1; + sH = -1; + sI = -1; + a = -1; + b = -1; + c = -1; + d = -1; + e = -1; + f = -1; + g = -1; + h = -1; + i = -1; + } + + TEST_TEARDOWN() + { + CHECK(sA == a); + CHECK(sB == b); + CHECK(sC == c); + CHECK(sD == d); + CHECK(sE == e); + CHECK(sF == f); + CHECK(sG == g); + CHECK(sH == h); + CHECK(sI == i); + delete fserver; + fserver = 0; + } +}; + + +TEST(TestFuncServerNotOpened, closeWithoutOpen) +{ + try + { + fserver->stopServer(); + + } + catch(...) + { + FAIL("UNexpected exp in closeWithoutOpen\n"); + } + CHECK(sServerSideInitCalled == 0); + CHECK(sStartServerCalled == 0); + CHECK(sServerSideCleanCalled == 0); +} + + +TEST(TestFuncServerNotOpened, sendWithoutOpen) +{ + try + { + CallMethod(localMethod, fserver); + } + catch (ExceptionBase& e) + { + CHECK(e.toString().find("Trying to execute code in non-existing FS: ") != std::string::npos) + CHECK(e.toString().find(" server not created.") != std::string::npos) + } + catch(...) + { + FAIL("UNexpected exp in closeWithoutOpen\n"); + } + CHECK(sIvokedMethod == -1); + CHECK(sServerSideInitCalled == 0); + CHECK(sStartServerCalled == 0); + CHECK(sServerSideCleanCalled == 0); +} + + +TEST(TestFuncServerNotOpened, sendWithoutOpenL) +{ + try + { + TRAPD(err, CallMethodL(localLeavingMethodTL, fserver)); + CHECK(err == KErrServerTerminated); + } + catch(...) + { + FAIL("UNexpected exp in closeWithoutOpen\n"); + } + CHECK(sIvokedMethod == -1); + CHECK(sServerSideInitCalled == 0); + CHECK(sStartServerCalled == 0); + CHECK(sServerSideCleanCalled == 0); +} + + +TEST(TestFuncServerNotOpened, sendAfterClose) +{ + try + { + fserver->createServerToNewThread(); + fserver->stopServer(); + CallMethod(localMethod, fserver); + } + catch (ExceptionBase& e) + { + CHECK(e.toString().find("Trying to execute code in non-existing FS: ") != std::string::npos) + CHECK(e.toString().find(" server closing.") != std::string::npos) + } + catch(...) + { + FAIL("UNexpected exp in closeWithoutOpen\n"); + } + CHECK(sIvokedMethod == -1); +} + +TEST(TestFuncServerNotOpened, sendAfterCloseL) +{ + try + { + fserver->createServerToNewThread(); + fserver->stopServer(); + TRAPD(err, CallMethodL(localLeavingMethodTL, fserver)); + CHECK(err == KErrServerTerminated); + } + catch(...) + { + FAIL("UNexpected exp in closeWithoutOpen\n"); + } + CHECK(sIvokedMethod == -1); +} + + + + + + + + + + + +TEST_GROUP(TestFuncServer) +{ + MyFunctionServer* fserver; + TestClass* clazz; + int a; + int b; + int c; + int d; + int e; + int f; + int g; + int h; + int i; + + TEST_SETUP() + { + fserver = new MyFunctionServer(); + clazz = new TestClass(); + + sServerSideInitCalled = 0; + sServerSideCleanCalled = 0; + sStartServerCalled = 0; + sIndex = 0; + fserver->createServerToNewThread(); + sIvokedMethod = -1; + sA = -1; + sB = -1; + sC = -1; + sD = -1; + sE = -1; + sF = -1; + sG = -1; + sH = -1; + sI = -1; + a = -1; + b = -1; + c = -1; + d = -1; + e = -1; + f = -1; + g = -1; + h = -1; + i = -1; + } + + TEST_TEARDOWN() + { + CHECK(sA == a); + CHECK(sB == b); + CHECK(sC == c); + CHECK(sD == d); + CHECK(sE == e); + CHECK(sF == f); + CHECK(sG == g); + CHECK(sH == h); + CHECK(sI == i); + delete clazz; + fserver->stopServer(); + delete fserver; + fserver = 0; + CHECK(sServerSideInitCalled == 1); + CHECK(sStartServerCalled == 2); + CHECK(sServerSideCleanCalled == 3); + } +}; + +// Calling local void methods. +TEST(TestFuncServer, localVoid0) +{ + CallMethod(localMethod, fserver); + CHECK(sIvokedMethod == 1); +} + +TEST(TestFuncServer, localVoid1) +{ + a = 1; + CallMethod(localMethod1, a, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid2) +{ + a = 2; + b = a + 1; + CallMethod(localMethod2, a, b, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid3) +{ + a = 3; + b = a + 1; + c = b + 1; + CallMethod(localMethod3, a, b, c, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid4) +{ + a = 4; + b = a + 1; + c = b + 1; + d = c + 1; + CallMethod(localMethod4, a, b, c, d, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid5) +{ + a = 5; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + CallMethod(localMethod5, a, b, c, d, e, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid6) +{ + a = 6; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + CallMethod(localMethod6, a, b, c, d, e, f, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid7) +{ + a = 7; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + CallMethod(localMethod7, a, b, c, d, e, f, g, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid8) +{ + a = 8; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + CallMethod(localMethod8, a, b, c, d, e, f, g, h, fserver); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localVoid9) +{ + a = 9; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + i = h + 1; + CallMethod(localMethod9, a, b, c, d, e, f, g, h, i, fserver); + CHECK(sIvokedMethod == a + 1); +} + + +// Calling methods that returns something. + +TEST(TestFuncServer, localReturn) +{ + int res = CallMethod(localMethodR, fserver); + CHECK(res == 11); + CHECK(sIvokedMethod == 11); +} + +TEST(TestFuncServer, localReturn1) +{ + a = 11; + int res = CallMethod(localMethodR1, a, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn2) +{ + a = 12; + b = a + 1; + int res = CallMethod(localMethodR2, a, b, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn3) +{ + a = 13; + b = a + 1; + c = b + 1; + int res = CallMethod(localMethodR3, a, b, c, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn4) +{ + a = 14; + b = a + 1; + c = b + 1; + d = c + 1; + int res = CallMethod(localMethodR4, a, b, c, d, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn5) +{ + a = 15; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res = CallMethod(localMethodR5, a, b, c, d, e, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn6) +{ + a = 16; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res = CallMethod(localMethodR6, a, b, c, d, e, f, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn7) +{ + a = 17; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res = CallMethod(localMethodR7, a, b, c, d, e, f, g, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn8) +{ + a = 18; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + int res = CallMethod(localMethodR8, a, b, c, d, e, f, g, h, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localReturn9) +{ + a = 19; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + i = h + 1; + int res = CallMethod(localMethodR9, a, b, c, d, e, f, g, h, i, fserver); + CHECK(res == a + 1); + CHECK(sIvokedMethod == a + 1); +} + + +// Calling methods through TRAP. + +TEST(TestFuncServer, localTrap0) +{ + int res = CallMethodTrap(localMethodTL, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == 21); +} + +TEST(TestFuncServer, localTrap1) +{ + a = 21; + int res = CallMethodTrap(localMethodT1L, a, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap2) +{ + a = 22; + b = a + 1; + int res = CallMethodTrap(localMethodT2L, a, b, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap3) +{ + a = 23; + b = a + 1; + c = b + 1; + int res = CallMethodTrap(localMethodT3L, a, b, c, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap4) +{ + a = 24; + b = a + 1; + c = b + 1; + d = c + 1; + int res = CallMethodTrap(localMethodT4L, a, b, c, d, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap5) +{ + a = 25; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res = CallMethodTrap(localMethodT5L, a, b, c, d, e, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap6) +{ + a = 26; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res = CallMethodTrap(localMethodT6L, a, b, c, d, e, f, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap7) +{ + a = 27; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res = CallMethodTrap(localMethodT7L, a, b, c, d, e, f, g, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap8) +{ + a = 28; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + int res = CallMethodTrap(localMethodT8L, a, b, c, d, e, f, g, h, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrap9) +{ + a = 29; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + i = h + 1; + int res = CallMethodTrap(localMethodT9L, a, b, c, d, e, f, g, h, i, fserver); + CHECK(res == 0); + CHECK(sIvokedMethod == a + 1); +} + +// Calling methods through TRAP. The method will leave. +TEST(TestFuncServer, localTrapWithLeave) +{ + int res = CallMethodTrap(localLeavingMethodTL, fserver); + CHECK(res == -31); + CHECK(sIvokedMethod == 31); +} + +TEST(TestFuncServer, localTrapWithLeave1) +{ + a = 31; + int res = CallMethodTrap(localLeavingMethodT1L, a, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave2) +{ + a = 32; + b = a + 1; + int res = CallMethodTrap(localLeavingMethodT2L, a, b, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave3) +{ + a = 33; + b = a + 1; + c = b + 1; + int res = CallMethodTrap(localLeavingMethodT3L, a, b, c, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave4) +{ + a = 34; + b = a + 1; + c = b + 1; + d = c + 1; + int res = CallMethodTrap(localLeavingMethodT4L, a, b, c, d, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave5) +{ + a = 35; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res = CallMethodTrap(localLeavingMethodT5L, a, b, c, d, e, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + + +TEST(TestFuncServer, localTrapWithLeave6) +{ + a = 36; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res = CallMethodTrap(localLeavingMethodT6L, a, b, c, d, e, f, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave7) +{ + a = 37; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res = CallMethodTrap(localLeavingMethodT7L, a, b, c, d, e, f, g, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave8) +{ + a = 38; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + int res = CallMethodTrap(localLeavingMethodT8L, a, b, c, d, e, f, g, h, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, localTrapWithLeave9) +{ + a = 39; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + h = g + 1; + i = h + 1; + int res = CallMethodTrap(localLeavingMethodT9L, a, b, c, d, e, f, g, h, i, fserver); + CHECK(res == -(a + 1)); + CHECK(sIvokedMethod == a + 1); +} + + +// Testing non-const void methods from a class. + +TEST(TestFuncServer, classVoid0) +{ + CallMethod( clazz, TestClass::classMethod, fserver ); + CHECK(sIvokedMethod == 41); +} + +TEST(TestFuncServer, classVoid1) +{ + a = 41; + CallMethod( clazz, TestClass::classMethod1, a, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, classVoid2) +{ + a = 42; + b = a + 1; + CallMethod( clazz, TestClass::classMethod2, a, b, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, classVoid3) +{ + a = 43; + b = a + 1; + c = b + 1; + CallMethod( clazz, TestClass::classMethod3, a, b, c, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, classVoid4) +{ + a = 44; + b = a + 1; + c = b + 1; + d = c + 1; + CallMethod( clazz, TestClass::classMethod4, a, b, c, d, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, classVoid5) +{ + a = 45; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + CallMethod( clazz, TestClass::classMethod5, a, b, c, d, e, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, classVoid6) +{ + a = 46; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + CallMethod( clazz, TestClass::classMethod6, a, b, c, d, e, f, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +TEST(TestFuncServer, classVoid7) +{ + a = 47; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + CallMethod( clazz, TestClass::classMethod7, a, b, c, d, e, f, g, fserver ); + CHECK(sIvokedMethod == a + 1); +} + +// Testing non-const methods from a class that returns a value. + +TEST(TestFuncServer, classReturn0) +{ + int res; + CallMethod(res, clazz, TestClass::classMethodR, fserver ); + CHECK(sIvokedMethod == 51); + CHECK(res == 51); + +} +TEST(TestFuncServer, classReturn1) +{ + a = 51; + int res; + CallMethod(res, clazz, TestClass::classMethodR1, a, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturn2) +{ + a = 52; + b = a + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodR2, a, b, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturn3) +{ + a = 53; + b = a + 1; + c = b + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodR3, a, b, c, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturn4) +{ + a = 54; + b = a + 1; + c = b + 1; + d = c + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodR4, a, b, c, d, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturn5) +{ + a = 55; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodR5, a, b, c, d, e, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturn6) +{ + a = 56; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodR6, a, b, c, d, e, f, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturn7) +{ + a = 57; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodR7, a, b, c, d, e, f, g, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} + +// Testing non-const void leaving methods from a class. Leave is not happening. + +TEST(TestFuncServer, classVoidL0) +{ + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL, fserver )); + CHECK(sIvokedMethod == 61); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL1) +{ + a = 61; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL1, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL2) +{ + a = 62; + b = a + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL2, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL3) +{ + a = 63; + b = a + 1; + c = b + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL3, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL4) +{ + a = 64; + b = a + 1; + c = b + 1; + d = c + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL4, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL5) +{ + a = 65; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL5, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL6) +{ + a = 66; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL6, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidL7) +{ + a = 67; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodL7, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} + +// Testing non-const void leaving methods from a class. Leave is happening. +TEST(TestFuncServer, classVoidLeavingL0) +{ + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveL, fserver )); + CHECK(sIvokedMethod == 71); + CHECK(res == -71); + +} +TEST(TestFuncServer, classVoidLeavingL1) +{ + a = 71; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingL2) +{ + a = 72; + b = a + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingL3) +{ + a = 73; + b = a + 1; + c = b + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingL4) +{ + a = 74; + b = a + 1; + c = b + 1; + d = c + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingL5) +{ + a = 75; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingL6) +{ + a = 76; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingL7) +{ + a = 77; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeave7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} + +// Testing non-const value returning leaving methods from a class. Leave is not happening. + +TEST(TestFuncServer, classReturnL0) +{ + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRL, fserver )); + CHECK(sIvokedMethod == 81); + CHECK(res == 81); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL1) +{ + a = 81; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL2) +{ + a = 82; + b = a + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL3) +{ + a = 83; + b = a + 1; + c = b + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL4) +{ + a = 84; + b = a + 1; + c = b + 1; + d = c + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL5) +{ + a = 85; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL6) +{ + a = 86; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnL7) +{ + a = 87; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodR7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} + +// Testing non-const value returning leaving methods from a class. Leave is happening. + + +TEST(TestFuncServer, classReturnLeaveL0) +{ + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRL, fserver )); + CHECK(sIvokedMethod == 91); + CHECK(leaveRes == -91); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL1) +{ + a = 91; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL2) +{ + a = 92; + b = a + 1; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL3) +{ + a = 93; + b = a + 1; + c = b + 1; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL4) +{ + a = 94; + b = a + 1; + c = b + 1; + d = c + 1; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL5) +{ + a = 95; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL6) +{ + a = 96; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} +TEST(TestFuncServer, classReturnLeaveL7) +{ + a = 97; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res=123; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveR7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 123); +} + +// Testing const void methods from a class. + +TEST(TestFuncServer, classVoidC0) +{ + CallMethod( clazz, TestClass::classMethodC, fserver ); + CHECK(sIvokedMethod == 101); + +} +TEST(TestFuncServer, classVoidC1) +{ + a = 101; + CallMethod( clazz, TestClass::classMethodC1, a, fserver ); + CHECK(sIvokedMethod == a + 1); + +} +TEST(TestFuncServer, classVoidC2) +{ + a = 102; + b = a + 1; + CallMethod( clazz, TestClass::classMethodC2, a, b, fserver ); + CHECK(sIvokedMethod == a + 1); + +} +TEST(TestFuncServer, classVoidC3) +{ + a = 103; + b = a + 1; + c = b + 1; + CallMethod( clazz, TestClass::classMethodC3, a, b, c, fserver ); + CHECK(sIvokedMethod == a + 1); + +} +TEST(TestFuncServer, classVoidC4) +{ + a = 104; + b = a + 1; + c = b + 1; + d = c + 1; + CallMethod( clazz, TestClass::classMethodC4, a, b, c, d, fserver ); + CHECK(sIvokedMethod == a + 1); + +} +TEST(TestFuncServer, classVoidC5) +{ + a = 105; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + CallMethod( clazz, TestClass::classMethodC5, a, b, c, d, e, fserver ); + CHECK(sIvokedMethod == a + 1); + +} +TEST(TestFuncServer, classVoidC6) +{ + a = 106; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + CallMethod( clazz, TestClass::classMethodC6, a, b, c, d, e, f, fserver ); + CHECK(sIvokedMethod == a + 1); + +} +TEST(TestFuncServer, classVoidC7) +{ + a = 107; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + CallMethod( clazz, TestClass::classMethodC7, a, b, c, d, e, f, g, fserver ); + CHECK(sIvokedMethod == a + 1); + +} + +// Testing const methods from a class retruning a value. + +TEST(TestFuncServer, classReturnC0) +{ + int res; + CallMethod(res, clazz, TestClass::classMethodRC, fserver ); + CHECK(sIvokedMethod == 111); + CHECK(res == 111); + +} +TEST(TestFuncServer, classReturnC1) +{ + a = 111; + int res; + CallMethod(res, clazz, TestClass::classMethodRC1, a, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturnC2) +{ + a = 112; + b = a + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodRC2, a, b, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturnC3) +{ + a = 113; + b = a + 1; + c = b + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodRC3, a, b, c, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturnC4) +{ + a = 114; + b = a + 1; + c = b + 1; + d = c + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodRC4, a, b, c, d, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturnC5) +{ + a = 115; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodRC5, a, b, c, d, e, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturnC6) +{ + a = 116; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodRC6, a, b, c, d, e, f, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} +TEST(TestFuncServer, classReturnC7) +{ + a = 117; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res; + CallMethod(res, clazz, TestClass::classMethodRC7, a, b, c, d, e, f, g, fserver ); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + +} + +// Testing const leaving void methods from a class. No leave. + + +TEST(TestFuncServer, classVoidCL0) +{ + TRAPD(res, CallMethodL(clazz, TestClass::classMethodCL, fserver )); + CHECK(sIvokedMethod == 121); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL1) +{ + a = 121; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL2) +{ + a = 122; + b = a + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL3) +{ + a = 123; + b = a + 1; + c = b + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL4) +{ + a = 124; + b = a + 1; + c = b + 1; + d = c + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL5) +{ + a = 125; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL6) +{ + a = 126; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} +TEST(TestFuncServer, classVoidCL7) +{ + a = 127; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodC7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == 0); + +} + + + +// Testing const leaving void methods from a class. Leaving. + + +TEST(TestFuncServer, classVoidLeavingCL0) +{ + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveCL, fserver )); + CHECK(sIvokedMethod == 131); + CHECK(res == -131); + +} +TEST(TestFuncServer, classVoidLeavingCL1) +{ + a = 131; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingCL2) +{ + a = 132; + b = a + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingCL3) +{ + a = 133; + b = a + 1; + c = b + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingCL4) +{ + a = 134; + b = a + 1; + c = b + 1; + d = c + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingCL5) +{ + a = 135; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingCL6) +{ + a = 136; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} +TEST(TestFuncServer, classVoidLeavingCL7) +{ + a = 137; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + TRAPD(res, CallMethodL(clazz, TestClass::classMethodWithLeaveC7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == -(a + 1)); + +} + + + +// Testing const leaving value returning methods from a class. Not leaving. +TEST(TestFuncServer, classReturnLC0) +{ + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRCL, fserver )); + CHECK(sIvokedMethod == 141); + CHECK(res == 141); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC1) +{ + a = 141; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC2) +{ + a = 142; + b = a + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC3) +{ + a = 143; + b = a + 1; + c = b + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC4) +{ + a = 144; + b = a + 1; + c = b + 1; + d = c + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC5) +{ + a = 145; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC6) +{ + a = 146; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} +TEST(TestFuncServer, classReturnLC7) +{ + a = 147; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodRC7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(res == a + 1); + CHECK(leaveRes == 0); +} + +// Testing const leaving value returning methods from a class. Leaving. + +TEST(TestFuncServer, classReturnLeaveCL0) +{ + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRCL, fserver )); + CHECK(sIvokedMethod == 151); + CHECK(leaveRes == -151); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL1) +{ + a = 151; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC1L, a, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL2) +{ + a = 152; + b = a + 1; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC2L, a, b, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL3) +{ + a = 153; + b = a + 1; + c = b + 1; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC3L, a, b, c, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL4) +{ + a = 154; + b = a + 1; + c = b + 1; + d = c + 1; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC4L, a, b, c, d, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL5) +{ + a = 155; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC5L, a, b, c, d, e, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL6) +{ + a = 156; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC6L, a, b, c, d, e, f, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +TEST(TestFuncServer, classReturnLeaveCL7) +{ + a = 157; + b = a + 1; + c = b + 1; + d = c + 1; + e = d + 1; + f = e + 1; + g = f + 1; + int res=456; + TRAPD(leaveRes, CallMethodL(res, clazz, TestClass::classMethodWithLeaveRC7L, a, b, c, d, e, f, g, fserver )); + CHECK(sIvokedMethod == a + 1); + CHECK(leaveRes == -(a + 1)); + CHECK(res == 456); +} +