From a9eb793a5e8c36077b6b20da29d749c10f834221 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Tue, 22 Mar 2011 15:00:46 +0900 Subject: [PATCH] Yay, even more tests :P --- tools/qfcc/test/float-int.r | 7 +++++++ tools/qfcc/test/ivar.r | 40 +++++++++++++++++++++++++++++++++++++ tools/qfcc/test/move.r | 18 +++++++++++++++-- tools/qfcc/test/value.r | 9 +++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 tools/qfcc/test/float-int.r create mode 100644 tools/qfcc/test/ivar.r create mode 100644 tools/qfcc/test/value.r diff --git a/tools/qfcc/test/float-int.r b/tools/qfcc/test/float-int.r new file mode 100644 index 000000000..9516a7dc7 --- /dev/null +++ b/tools/qfcc/test/float-int.r @@ -0,0 +1,7 @@ +float (integer i) foo = #0; +integer (integer a) bar = #0; + +integer func (integer size) +{ + return bar (foo (size) * 8); +} diff --git a/tools/qfcc/test/ivar.r b/tools/qfcc/test/ivar.r new file mode 100644 index 000000000..3f122ed14 --- /dev/null +++ b/tools/qfcc/test/ivar.r @@ -0,0 +1,40 @@ +@interface foo +{ + Class isa; + unsigned retainCount; +} ++(id) alloc; +-(id) init; +@end + +@interface baz: foo +{ + integer xpos, ypos; + integer xlen, ylen; + integer xabs, yabs; + baz *parent; + integer flags; +} +@end + +@class baz; +@class foo; + +@interface bar: baz +{ + integer blah; +} +-(id) init; +@end + +@implementation bar +{ + integer blah; +} + +-(id) init +{ + blah = 0xdeadbeaf; + return self; +} +@end diff --git a/tools/qfcc/test/move.r b/tools/qfcc/test/move.r index 2719766bb..ced753dbb 100644 --- a/tools/qfcc/test/move.r +++ b/tools/qfcc/test/move.r @@ -6,7 +6,21 @@ typedef struct foo_s { plitem_t i; } foo_t; -void bar (foo_t *foo, plitem_t item) +foo_t snafu (foo_t x) = #0; +foo_t zap (void) = #0; + +foo_t aa[5]; +foo_t x; + +foo_t bar (foo_t *foo, plitem_t item) { - foo.i = item; +// x = aa[foo.x]; +// aa[foo.x + 1] = aa[foo.x - 1]; +// aa[foo.x] = x; +// snafu (aa[foo.x]); +// aa[foo.x] = snafu (aa[foo.x]); + aa[foo.x] = zap (); +// foo.i = item; +// return aa[foo.x]; + return zap (); } diff --git a/tools/qfcc/test/value.r b/tools/qfcc/test/value.r new file mode 100644 index 000000000..816b3ff51 --- /dev/null +++ b/tools/qfcc/test/value.r @@ -0,0 +1,9 @@ +float VAL1 = 4; +float VAL2 = 6; + +void send (float to, ...) = #0; + +void do_something () +{ + send (VAL1, VAL2); +}