Add test for long long

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26575 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2008-05-27 09:23:27 +00:00
parent f8c2a083f7
commit a4316b8ddd

View file

@ -32,6 +32,7 @@ typedef struct {
- (int) loopInt: (int)v;
- (large) loopLarge: (large)v;
- (long) loopLong: (long)v;
- (long long) loopLongLong: (long long)v;
- (large) loopLargePtr: (large*)v;
- (id) loopObject: (id)v;
- (short) loopShort: (short)v;
@ -47,6 +48,7 @@ typedef struct {
- (int) retInt;
- (large) retLarge;
- (long) retLong;
- (long long) retLongLong;
- (id) retObject;
- (short) retShort;
- (small) retSmall;
@ -78,6 +80,10 @@ typedef struct {
{
return v+1;
}
- (long long) loopLongLong: (long long)v
{
return v+1;
}
- (large) loopLargePtr: (large*)v
{
return *v;
@ -135,6 +141,10 @@ typedef struct {
{
return 123456;
}
- (long long) retLongLong
{
return 123456;
}
- (id) retObject
{
return self;
@ -208,6 +218,7 @@ main ()
char c;
short s;
long l;
long long q;
float f;
double d;
id o;
@ -287,6 +298,14 @@ printf("Calling proxy\n");
l = [p retLong];
printf("forward: %ld\n", l);
SETUP(retLongLong);
[inv invokeWithTarget: t];
printf("Expect: 123456, ");
[inv getReturnValue: &q];
printf("invoke: %lld ", q);
q = [p retLong];
printf("forward: %lld\n", q);
SETUP(retFloat);
[inv invokeWithTarget: t];
printf("Expect: 123.456, ");
@ -319,22 +338,6 @@ printf("Calling proxy\n");
str = [p retString];
printf("forward: '%s'\n", str);
SETUP(retSmall);
[inv invokeWithTarget: t];
printf("Expect: {11,22}, ");
[inv getReturnValue: &sm];
printf("invoke: {%d,%d} ", sm.c, sm.i);
sm = [p retSmall];
printf("forward: {%d,%d}\n", sm.c, sm.i);
SETUP(retLarge);
[inv invokeWithTarget: t];
printf("Expect: {99,large,99.99}, ");
[inv getReturnValue: &la];
printf("invoke: {%d,%s,%.2f} ", la.i, la.s, la.f);
la = [p retLarge];
printf("forward: {%d,%s,%.2f}\n", la.i, la.s, la.f);
@ -378,6 +381,16 @@ printf("Calling proxy\n");
l = [p loopLong: 3];
printf("forward: %ld\n", l);
SETUP(loopLongLong:);
q = 3;
[inv setArgument: &q atIndex: 2];
[inv invokeWithTarget: t];
printf("Expect: 4, ");
[inv getReturnValue: &q];
printf("invoke: %lld ", q);
q = [p loopLong: 3];
printf("forward: %lld\n", q);
SETUP(loopFloat:);
f = 4.0;
[inv setArgument: &f atIndex: 2];
@ -422,6 +435,25 @@ printf("Calling proxy\n");
str = [p loopString: str];
printf("forward: '%s'\n", str);
SETUP(retSmall);
[inv invokeWithTarget: t];
printf("Expect: {11,22}, ");
[inv getReturnValue: &sm];
printf("invoke: {%d,%d} ", sm.c, sm.i);
sm = [p retSmall];
printf("forward: {%d,%d}\n", sm.c, sm.i);
SETUP(retLarge);
[inv invokeWithTarget: t];
printf("Expect: {99,large,99.99}, ");
[inv getReturnValue: &la];
printf("invoke: {%d,%s,%.2f} ", la.i, la.s, la.f);
la = [p retLarge];
printf("forward: {%d,%s,%.2f}\n", la.i, la.s, la.f);
SETUP(loopSmall:);
printf("Expect: {8,9}, ");
[inv setArgument: &tmpsm atIndex: 2];