Mercurial > projects > ldc
changeset 341:1bb99290e03a trunk
[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
line wrap: on
line diff
--- a/runalltests.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -module runalltests; - -import std.file; -import std.path; -import std.process; -import std.stdio; - -int main(string[] args) { - string[] bad; - string[] badrun; - - chdir("test"); - - auto contents = listdir(".", "*.d"); - foreach(c; contents) { - string cmd = "llvmdc -quiet "~c; - foreach(v; args[1..$]) { - cmd ~= ' '; - cmd ~= v; - } - writefln(cmd); - if (system(cmd) != 0) { - bad ~= c; - } - else if (system(getName(c)) != 0) { - badrun ~= c; - } - } - - int ret = 0; - if (bad.length > 0 || badrun.length > 0) { - writefln(bad.length, '/', contents.length, " of the tests failed to compile:"); - foreach(b; bad) { - writefln(" ",b); - } - writefln(badrun.length, '/', contents.length - bad.length, " of the compiled tests failed to run:"); - foreach(b; badrun) { - writefln(" ",b); - } - ret = 1; - } - - writefln(contents.length - bad.length - badrun.length, '/', contents.length, " of the tests passed"); - return ret; -}
--- a/tangotests/a.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -class Foo -{ - this(int j) - { - i = pi = j; - } - - int i; - -private: - - int pi; -} - -class Bar : Foo -{ - this(int j) - { - super(j); - baz = 42; - } - - int baz; -} - -void func() -{ - auto bar = new Bar(12); -} - -void main() -{ - func(); -}
--- a/tangotests/aa1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module tangotests.aa1; - -extern(C) int printf(char*,...); - -void main() -{ - int[int] map; - map[1] = 1; - map[10] = 1; - map[11] = 11; - map[14] = 41; - map[21] = 12; - map[23] = 32; - map[32] = 23; - map[201] = 102; - foreach(k,v; map) - { - printf("%d:%d ", k,v); - } - printf("\n"); -}
--- a/tangotests/arrays2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -module tangotests.arrays2; - -void main() -{ - intarrays!(byte)(); - intarrays!(ubyte)(); - intarrays!(short)(); - intarrays!(ushort)(); - intarrays!(int)(); - intarrays!(uint)(); - intarrays!(long)(); - intarrays!(ulong)(); -} - -void intarrays(T)() -{ - T[] ia = [cast(T)1,2,3,4]; - T[] ib = [cast(T)1,2,3,4]; - T[] ic = [cast(T)1,2,3]; - T[] id = [cast(T)1,2,3,4,5]; - - assert(ia == ia); - assert(ia == ib); - assert(ia != ic); - assert(ia != id); - assert(ia > ic); - assert(ia !< ic); - assert(ia < id); - assert(ia !> id); -}
--- a/tangotests/arrays4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module tangotests.arrays4; - -struct Str { int a,b; } -void main() { - Str[] arr = new Str[64]; - - auto tmp = Str(1,2); - arr[] = tmp; - assert(arr[0].a == 1); - assert(arr[0].b == 2); - assert(arr[13].a == 1); - assert(arr[13].b == 2); - assert(arr[42].a == 1); - assert(arr[42].b == 2); - assert(arr[63].a == 1); - assert(arr[63].b == 2); - - arr[] = Str(3,4); - assert(arr[0].a == 3); - assert(arr[0].b == 4); - assert(arr[13].a == 3); - assert(arr[13].b == 4); - assert(arr[42].a == 3); - assert(arr[42].b == 4); - assert(arr[63].a == 3); - assert(arr[63].b == 4); -}
--- a/tangotests/asm1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module tangotests.asm1; - -extern(C) int printf(char*, ...); - -int main() -{ - int i = 12; - int* ip = &i; - printf("%d\n", i); - asm - { - mov EBX, ip; - mov EAX, [EBX]; - add EAX, 8; - mul EAX, EAX; - mov [EBX], EAX; - } - printf("%d\n", i); - assert(i == 400); - return 0; -}
--- a/tangotests/asm2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module tangotests.asm2; - -extern(C) int printf(char*, ...); - -int main() -{ - int i = 40; - int j = 2; - asm - { - mov EAX, i; - mov EBX, j; - add EAX, EBX; - mov i, EAX; - } - printf("42 = %d\n", i); - assert(i == 42); - return 0; -}
--- a/tangotests/asm3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module tangotests.asm3; - -extern(C) int printf(char*, ...); - -void main() -{ - char* fmt = "Hello D World\n"; - printf(fmt); - asm - { - push fmt; - call printf; - pop EAX; - } -}
--- a/tangotests/asm4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -module tangotests.asm4; - -extern(C) int printf(char*,...); - -void main() -{ - char* fmt = "yay!\n"; - asm - { - jmp L2; - L1:; - jmp L3; - L2:; - jmp L1; - L3:; - push fmt; - call printf; - pop EAX; - } -}
--- a/tangotests/asm7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -module tangotests.asm7; - -// test massive label collisions (runtime uses Loverflow too) - -void main() -{ - int a = add(1,2); - int s = sub(1,2); - assert(a == 3); - assert(s == -1); -} - -int add(int a, int b) -{ - int res; - asm - { - mov EAX, a; - add EAX, b; - jo Loverflow; - mov res, EAX; - } - return res; -Loverflow: - assert(0, "add overflow"); -} - -int sub(int a, int b) -{ - int res; - asm - { - mov EAX, a; - sub EAX, b; - jo Loverflow; - mov res, EAX; - } - return res; -Loverflow: - assert(0, "sub overflow"); -}
--- a/tangotests/b.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -class C -{ - int a; - union - { - int i; - double d; - } - int z; -} - -void func() -{ - scope c = new C; - access1(c); - assert(c.i == 42); - access2(c); - assert(c.d == 2.5); -} - -void access1(C c) -{ - c.i = 42; -} - -void access2(C c) -{ - c.d = 2.5; -} - -void main() -{ - func(); -}
--- a/tangotests/c.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -class Foo -{ - int i; -} - -class Bar : Foo -{ - int j; -} - -void func() -{ - scope c = new Bar; - func2(c); -} - -void func2(Bar c) -{ - c.i = 123; -} - -void main() -{ - func(); -} \ No newline at end of file
--- a/tangotests/classes1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -module tangotests.classes1; - -class Outer -{ - int data; - - class Inner - { - long data; - - this(long d) - { - data = d*2; - } - } - - void func() - { - auto i = new Inner(data); - data += (i.data/4); - } - - this(int d) - { - data = d; - } -} - -void main() -{ - scope c = new Outer(100); - c.func(); - int d = c.data; - printf("150 = %d\n", d); -} - -extern(C) int printf(char*, ...);
--- a/tangotests/compile/d.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -char* toStringz (char[] s) -{ - if (s.ptr) - if (! (s.length && s[$-1] is 0)) - s = s ~ '\0'; - return s.ptr; -} -
--- a/tangotests/compile/g.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -extern(C) -{ - private extern int integer; -} - -void func() -{ - integer++; -} \ No newline at end of file
--- a/tangotests/constructors.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -import tango.io.Console; - -class C -{ - this() - { - Cout("C()").newline; - } - this(char[] str) - { - Cout("C(")(str)(")").newline; - } -} - -class D : C -{ - this() - { - super("D"); - Cout("D()").newline; - } -} - -void main() -{ - auto c1 = new C(); - auto c2 = new C("C"); - auto d = new D(); -}
--- a/tangotests/debug1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module tangotests.debug1; - -void main() -{ - int* ptr; - - // all these should be inspectable - int i = 1; - int j = 2; - long k = 3; - float l = 4.521; - ubyte m = 5; - - *ptr = 0;//cast(int)(i+j+k+l+m); -} - -extern(C) int printf(char*, ...);
--- a/tangotests/debug10.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module tangotests.debug10; - -struct Vec2 -{ - float x,y; -} - -void main() -{ - Vec2 v2; - char[] str = "hello"; - int i = void; - float f = 3.14; - func(v2, v2, str, i, f); -} - -void func(Vec2 v2, ref Vec2 rv2, char[] str, out int i, ref float f) -{ - int* fail; - *fail = 0; -}
--- a/tangotests/debug11.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -module tangotests.debug11; - -class C -{ -} - -class D : C -{ - int i = 42; -} - -class E : D -{ - float fp = 3.14f; -} - -class F : E -{ - F f; -} - -void main() -{ - auto c = new C; - auto d = new D; - auto e = new E; - auto f = new F; - - auto ci = c.classinfo; - - int* fail; - *fail = 0; -}
--- a/tangotests/debug2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module tangotests.debug2; - -import tango.stdc.stdlib : rand; - -void main() -{ - size_t iter; - while (iter < 25) - { - if (rand() % 20 == 10) - *cast(int*)null = 0; - ++iter; - } - assert(0); -}
--- a/tangotests/debug3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module tangotests.debug3; - -void main() -{ - int i = 42; - int* ip = &i; - - int* fail; - *fail = 0; -}
--- a/tangotests/debug4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module tangotests.debug4; - -void main() -{ - char c = 'c'; - wchar wc = 'w'; - dchar dc = 'd'; - - int* fail; - *fail = 32; -}
--- a/tangotests/debug5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module tangotests.debug5; - -void main() -{ - int i = 32; - real r = 3.1415; - real* p = &r; - func(i,r,p); -} - -void func(int i, real r, real* p) -{ - int* fail; - *fail = 666; -}
--- a/tangotests/debug6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module tangotests.debug6; - -void main() -{ - char[] str = "hello world :)"; - - int* fail; - *fail = 32; -}
--- a/tangotests/debug7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module tangotests.debug7; - -int gi; - -void main() -{ - int* fail; - *fail = 0; -}
--- a/tangotests/debug8.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -module tangotests.debug8; - -struct Str -{ - size_t len; - void* ptr; -} - -struct Foo -{ - long l; - Bar bar; -} - -struct Bar -{ - float x,y,z; - Foo* foo; -} - -void main() -{ - Str str; - Foo foo; - foo.l = 42; - foo.bar.y = 3.1415; - foo.bar.foo = &foo; - - int* fail; - *fail = 0; -}
--- a/tangotests/debug9.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module tangotests.debug9; - -struct Foo -{ - int a,b,c; - - void func() - { - int* fail; - *fail = 0; - } -} - -void main() -{ - Foo foo = Foo(1,10,73); - foo.func(); -}
--- a/tangotests/e.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -extern(C) int printf(char*,...); - -class MyClass -{ - this(int i = 4) - { - inner = this.new InnerClass; - } - - class InnerClass : Object.Monitor - { - void lock() {} - void unlock() {} - } - - InnerClass inner; -} - -void func() -{ - scope c = new MyClass(42); -} - -void main() -{ - func(); -} \ No newline at end of file
--- a/tangotests/f.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -extern(C) int printf(char*,...); - -void main() -{ - printf("Hello World!\n"); -}
--- a/tangotests/fail/p.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -extern(C) int printf(char*, ...); - -int main(char[][] args) -{ - printf("getint\n"); - int i = getint(); - printf("assert true\n"); - assert(i == 1234); - printf("assert false\n"); - assert(i != 1234); - printf("return\n"); - return 0; -} - -int getint() -{ - return 1234; -}
--- a/tangotests/fail/q.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -class E : Exception -{ - this(char[] msg) - { - super(msg); - } - - char[] toString() - { - return super.toString(); - } -} - -extern(C) int printf(char*, ...); - -void main() -{ - auto e = new E("hello world"); - auto msg = e.toString(); - printf("message should be: '%.*s'\n", msg.length, msg.ptr); - throw e; -}
--- a/tangotests/files1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module tangotests.files1; - -//import tango.io.Stdout; -import tango.io.File; - -void main() -{ - auto file = new File("files1.output"); - char[] str = "hello world from files1 test\n"; - void[] data = cast(void[])str; - file.write(str); -}
--- a/tangotests/h.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -interface Iin -{ - void[] read(size_t n); -} - -interface Iout -{ - size_t write(void[] d); -} - -class C : Iin -{ - void[] read(size_t n) - { - return null; - } - - size_t write(void[] d) - { - return 0; - } -} - -void main() -{ - scope c = new C; -}
--- a/tangotests/i.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -interface IN -{ - void func(); -} -abstract class AC -{ - abstract void func(); - long ll; -} -class C : AC -{ - void func() - { - } -} - -void main() -{ - scope c = new C; -}
--- a/tangotests/j.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -module j; - -interface Inter1 -{ - int func1(); -} - -interface Inter2 -{ - int func2(); -} - -class C12 : Inter1, Inter2 -{ - int func1() - { - return 1; - } - int func2() - { - return 2; - } -} - -void func(Object c) -{ - auto i1 = cast(Inter1)c; - assert(i1.func1() == 1); - auto i2 = cast(Inter2)c; - assert(i2.func2() == 2); - auto j1 = cast(Inter1)i2; - assert(j1.func1() == 1); - auto j2 = cast(Inter2)i1; - assert(j2.func2() == 2); -} - -void main() -{ - scope c = new C12; - func(c); - printf("OK\n"); -} - -extern(C) int printf(char*,...);
--- a/tangotests/k.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -interface Inter -{ - int func(); -} - -extern(C) int printf(char*, ...); - -class InterClass : Inter -{ - int func() - { - return printf("InterClass.func()\n"); - } -} - -alias int delegate() dg_t; - -void main() -{ - scope c = new InterClass; - - { - Inter i = cast(Inter)c; - { - dg_t dg = &i.func; - { - int j = dg(); - } - } - } -}
--- a/tangotests/l.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -import tango.io.Console; - -void main() -{ - Cout("Hi, says LLVMDC + Tango").newline; -}
--- a/tangotests/lazy1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module tangotests.lazy1; - -extern(C) int printf(char*, ...); - -void main() -{ - lazystr("whee\n"); -} - -void lazystr(lazy char[] msg) -{ - printf("%.*s", msg.length, msg.ptr); -}
--- a/tangotests/lazy2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module tangotests.lazy2; - -extern(C) int printf(char*, ...); - -void main() -{ - lazy1("hello\n"); -} - -void lazy1(lazy char[] str) -{ - lazy2(str); -} - -void lazy2(lazy char[] msg) -{ - printf("%.*s", msg.length, msg.ptr); -}
--- a/tangotests/m.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -void main() -{ - int* e = __errno_location(); - printf("&errno = %p\n", e); - printf("errno = %d\n", *e); -} - -extern(C): -int* __errno_location(); -int printf(char*,...);
--- a/tangotests/marray1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module tangotest.marray1; - -void main() -{ - int[][] arr; - int[] a = [1,2]; - int[] b = [6,7,8,9]; - arr ~= a; - arr ~= b; - assert(a.length == 2); - assert(b.length == 4); - assert(arr.length == 2); - assert(arr[0][0] == 1); - assert(arr[0][1] == 2); - assert(arr[1][0] == 6); - assert(arr[1][1] == 7); - assert(arr[1][2] == 8); - assert(arr[1][3] == 9); -}
--- a/tangotests/marray2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module tangotests.marray2; - -void main() -{ - int[][] ma = new int[][](2,4); - assert(ma.length == 2); - assert(ma[0].length == 4); - assert(ma[1].length == 4); - ma[0][3] = 32; - ma[1][2] = 123; - ma[0][0] = 55; - assert(ma[0][3] == 32); - assert(ma[1][2] == 123); - assert(ma[0][0] == 55); -}
--- a/tangotests/marray3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -module tangotests.marray3; - -void main() -{ - int[][][] ma = new int[][][](2,4,3); - assert(ma.length == 2); - assert(ma[0].length == 4); - assert(ma[0][0].length == 3); - assert(ma[0][1].length == 3); - assert(ma[0][2].length == 3); - assert(ma[0][3].length == 3); - assert(ma[1].length == 4); - assert(ma[1][0].length == 3); - assert(ma[1][1].length == 3); - assert(ma[1][2].length == 3); - assert(ma[1][3].length == 3); - ma[0][3][1] = 32; - ma[1][2][2] = 123; - ma[0][0][3] = 55; - assert(ma[0][3][1] == 32); - assert(ma[1][2][2] == 123); - assert(ma[0][0][3] == 55); -}
--- a/tangotests/mem1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -module tangotests.mem1; - -import tango.stdc.stdio; - -void main() -{ - printf("new int;\n"); - int* i = new int; - assert(*i == 0); - - printf("new int[3];\n"); - int[] ar = new int[3]; - ar[0] = 1; - ar[1] = 56; - assert(ar.length == 3); - assert(ar[0] == 1); - assert(ar[1] == 56); - assert(ar[2] == 0); - - printf("array ~= elem;\n"); - int[] ar2; - ar2 ~= 22; - assert(ar2.length == 1); - assert(ar2[0] == 22); - - printf("array ~= array;\n"); - ar2 ~= ar; - assert(ar2.length == 4); - assert(ar2[0] == 22); - assert(ar2[1] == 1); - printf("%d %d %d %d\n", ar2[0], ar2[1], ar2[2], ar2[3]); - assert(ar2[2] == 56); - assert(ar2[3] == 0); - - printf("array ~ array;\n"); - int[] ar5 = ar ~ ar2; - assert(ar5.length == 7); - assert(ar5[0] == 1); - assert(ar5[1] == 56); - assert(ar5[2] == 0); - assert(ar5[3] == 22); - assert(ar5[4] == 1); - assert(ar5[5] == 56); - assert(ar5[6] == 0); - - printf("array ~ elem;\n"); - int[] ar4 = ar2 ~ 123; - assert(ar4.length == 5); - assert(ar4[0] == 22); - assert(ar4[1] == 1); - assert(ar4[2] == 56); - assert(ar4[3] == 0); - assert(ar4[4] == 123); - - printf("elem ~ array;\n"); - int[] ar3 = 123 ~ ar2; - assert(ar3.length == 5); - assert(ar3[0] == 123); - assert(ar3[1] == 22); - assert(ar3[2] == 1); - assert(ar3[3] == 56); - assert(ar3[4] == 0); -}
--- a/tangotests/mem2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module tangotests.mem2; - -void main() -{ - int* ip = new int; - assert(*ip == 0); - *ip = 4; - assert(*ip == 4); - delete ip; - assert(ip is null); -}
--- a/tangotests/mem3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module tangotests.mem3; - -void main() -{ - int[] arr; - arr ~= [1,2,3]; - assert(arr[0] == 1); - assert(arr[1] == 2); - assert(arr[2] == 3); - delete arr; - assert(arr is null); -}
--- a/tangotests/mem4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -module tangotests.mem4; - -import tango.stdc.stdio; - -class C { - int* ptr; - this() { - printf("this()\n"); - ptr = new int; - } - ~this() { - printf("~this()\n"); - delete ptr; - assert(ptr is null); - } - final void check() - { - printf("check()\n"); - assert(ptr !is null); - } -} - -void main() -{ - C c = new C(); - c.check(); - delete c; - assert(c is null); -} \ No newline at end of file
--- a/tangotests/mem5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -module tangotests.mem5; - -class SC -{ - int* ip; - this() - { - ip = new int; - } - ~this() - { - delete ip; - } - void check() - { - assert(ip !is null); - } -} - -void main() -{ - scope sc = new SC; - sc.check(); -}
--- a/tangotests/mem6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module tangotests.mem6; - -extern(C) int printf(char*,...); - -int main(){ - int[] index; - char[] value; - - foreach(int i, char c; "_\U00012345-"){ - printf("str[%d] = %d\n", i , cast(int)c); - index ~= i; - //value ~= c; - } - printf("done\n"); - - return 0; -}
--- a/tangotests/n.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -struct Structure -{ - static void static_method() - { - } - - void method() - { - } -} - -void main() -{ - //Structure.static_method(); - - Structure s; - s.method(); -}
--- a/tangotests/nested1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module tangotests.nested1; - -void main() -{ - int i = 42; - assert(i == 42); - void func() - { - assert(i == 42); - } - func(); -}
--- a/tangotests/nested2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -module tangotests.nested2; - -extern(C) int printf(char*, ...); - -void main() -{ - int var = 2; - - void exec(void delegate() dg) - { - printf("var = %d\n", var); - dg(); - } - - void foo() - { - printf("var = %d\n", var); - assert(var == 5); - } - - void bar() - { - printf("var = %d\n", var); - var += 3; - exec(&foo); - } - - printf("var = %d\n", var); - exec(&bar); - - return 0; -}
--- a/tangotests/o.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -extern(C) int printf(char*, ...); - -void func() -{ - try - { - printf("try\n"); - return 0; - } - catch - { - printf("catch\n"); - } - finally - { - printf("finally\n"); - } - return 0; -} - -void main() -{ - func(); -}
--- a/tangotests/r.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -extern(C) int printf(char*, ...); - -class C -{ - void dump() - { - printf("C dumped\n"); - } -} - -void heap() -{ - auto c = new C; - c.dump(); -} - -void stack() -{ - scope c = new C; - c.dump(); -} - -void main() -{ - heap(); - stack(); -}
--- a/tangotests/s.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -module s; - -interface Inter -{ - void inter(); -} - -interface Inter2 -{ - void inter2(); -} - -interface InterOne : Inter -{ - void interOne(); -} - -abstract class ClassAbstract : InterOne -{ - abstract void inter(); - abstract void interOne(); -} - -class TheClassOne : ClassAbstract -{ - void inter() - { - } - void interOne() - { - } -} - -class TheClassTwo : TheClassOne, Inter2 -{ - long l; - double d; - - void inter2() - { - } -} - -extern(C) int printf(char*, ...); - -void main() -{ - printf("classinfo test\n"); - { - auto c = new TheClassOne; - { - auto ci = c.classinfo; - printf("ci = %.*s\n", ci.name.length, ci.name.ptr); - printf("ci.interfaces.length = %lu\n", ci.interfaces.length); - printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr); - printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr); - } - } - { - auto c = new TheClassTwo; - { - auto ci = c.classinfo; - printf("ci = %.*s\n", ci.name.length, ci.name.ptr); - printf("ci.interfaces.length = %lu\n", ci.interfaces.length); - printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr); - printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr); - printf("i[2] = %.*s\n", ci.interfaces[2].classinfo.name.length, ci.interfaces[2].classinfo.name.ptr); - } - auto i = cast(InterOne)c; - { - auto ci = i.classinfo; - printf("ci = %.*s\n", ci.name.length, ci.name.ptr); - } - auto i2 = cast(Inter2)i; - { - auto ci = i2.classinfo; - printf("ci = %.*s\n", ci.name.length, ci.name.ptr); - } - auto o = cast(Object)i2; - { - auto ci = o.classinfo; - printf("ci = %.*s\n", ci.name.length, ci.name.ptr); - } - } -}
--- a/tangotests/stdout1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -import tango.io.Stdout; - -void main() -{ - Stdout("Hello World").newline; - Stdout.formatln("{} {}", "Hello", "World"); -}
--- a/tangotests/stdout2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module tangotests.stdout2; - -import tango.io.Stdout; - -void main() -{ - Stdout.formatln("{} {} {}", "a", "b", 1.0); -}
--- a/tangotests/t.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -interface MyInterface -{ - int func(); -} - -class MyClass : MyInterface -{ - int var; - int func() - { - return var; - } -} - -void func1(MyInterface i) -{ - int delegate() dg = &i.func; - func2(dg); -} - -extern(C) int printf(char*, ...); - -void func2(int delegate() dg) -{ - int i = dg(); - printf("%d\n", i); -} - -void main() -{ - auto c = new MyClass; - c.var = 42; - func1(c); -}
--- a/tangotests/templ1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module tangotests.templ1; - -import Util = tango.text.Util; - -extern(C) int printf(char*, ...); - -void main() -{ - foreach (line; Util.lines("a\nb\nc")) - { - printf("%.*s\n", line.length, line.ptr); - } -}
--- a/tangotests/u.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -import tango.io.Console; -void main() -{ - Cout("getting name std").newline; - Cerr("getting name err").newline; - auto s = Cin.get(); - Cout("putting name").newline; - Cout (s).newline; -}
--- a/tangotests/vararg1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module tangotests.vararg1; - -import tango.stdc.stdio; - -void func(int[] arr...) -{ - printf("1,2,4,5,6 == %d,%d,%d,%d,%d\n", arr[0],arr[1],arr[2],arr[3],arr[4]); -} - -void main() -{ - func(1,2,4,5,6); -}
--- a/tangotests/vararg2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -module tangotests.vararg2; - -extern(C) int printf(char*, ...); - -import tango.core.Vararg; - -void main() -{ - func(0xf00, 1, " ", 2, " ", 3, "\n", 0.3, "\n"); -} - -void func(int foo, ...) -{ - foreach(t; _arguments) - { - if (t == typeid(char[])) - { - char[] str = va_arg!(char[])(_argptr); - printf("%.*s", str.length, str.ptr); - } - else if (t == typeid(int)) - { - printf("%d", va_arg!(int)(_argptr)); - } - else if (t == typeid(float)) - { - printf("%f", va_arg!(float)(_argptr)); - } - else if (t == typeid(double)) - { - printf("%f", va_arg!(double)(_argptr)); - } - else if (t == typeid(real)) - { - printf("%f", va_arg!(real)(_argptr)); - } - else - { - assert(0, "not int"); - } - } -}
--- a/tangotests/vararg3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,249 +0,0 @@ -// tries to implement a fairly complete variadic print function -module tangotests.vararg3; - -extern(C) int printf(char*, ...); - -struct User -{ - char[] name; - char[] nick; - uint age; - - char[] toString() - { - return nick ~ "(" ~ name ~ ")"; - } -} - -struct Infidel -{ - char[] whocares; -} - -class Obj -{ - private char[] ty; - - this(char[] t) - { - ty = t; - } - - char[] toString() - { - return "Obj(" ~ ty ~ ")"; - } -} - - struct TLA - { - char[3] acronym; - - char[] toString() - { - return acronym; - } -} - -void main() -{ - User user = User("Bob Doe", "bd", 47); - char[] str = user.toString(); - printf("Direct call:\n%.*s\nBy typeinfo:\n", str.length, str.ptr); - print(user, '\n'); - - print("Without toString:\n"); - Infidel inf = Infidel("not me"); - print(inf, '\n'); - - print("Character arrays:\n"); - print("hello world\n"); - - print("Signed integers:\n"); - print(cast(byte)byte.max,' ',cast(short)short.max,' ',cast(int)int.max,' ',cast(long)long.max,'\n'); - - print("Unsigned integers:\n"); - print(cast(ubyte)ubyte.max,' ',cast(ushort)ushort.max,' ',cast(uint)uint.max,' ',cast(ulong)ulong.max,'\n'); - - print("Floating point:\n"); - print(cast(float)1.273f, ' ', cast(double)3.412367, ' ', cast(real)142.96731112, '\n'); - - print("Arrays:\n"); - int[] ia1 = [1,2,3,4,5,6,7,8,9]; - print(ia1, '\n'); - float[] fa1 = [0.1f, 0.15f, 0.2f, 0.25f, 0.3f]; - print(fa1, '\n'); - - print("Pointers:\n"); - print(&user,'\n'); - print(&inf,'\n'); - print(&ia1,'\n'); - print(&fa1,'\n'); - - print("Static arrays:\n"); - int[5] isa1 = [1,2,4,8,16]; - print(isa1,'\n'); - - print("Classes:\n"); - Obj o = new Obj("foo"); - print(o, '\n'); - - print("Mixed:\n"); - print(123, ' ', 42.536f, " foobar ", ia1, ' ', user, '\n'); - print(42, ' ', cast(byte)12, ' ', user, ' ', cast(short)1445, " foo\n"); - - print("International:\n"); - print('æ','ø','å','\n'); - print('Æ','Ø','Å','\n'); - print("rød grød med fløde\n"); - print("Heiße\n"); - - print("TLAs:\n"); - TLA tla1 = TLA("FBI"); - TLA tla2 = TLA("CIA"); - TLA tla3 = TLA("TLA"); - print(tla1); - print(tla2); - print(tla3, '\n'); - print(tla1, tla2, tla3, '\n'); - print(TLA("FBI"), TLA("CIA"), TLA("TLA"), '\n'); - - print("Done!\n"); -} - -private void* get_va_arg(TypeInfo ti, ref void* vp) -{ - void* arg = vp; - vp = vp + ( ( ti.tsize + size_t.sizeof - 1 ) & ~( size_t.sizeof - 1 ) ); - return arg; -} - -void print(TypeInfo ti, void* arg) -{ - if (ti == typeid(byte)) - printf("%d", *cast(byte*)arg); - else if (ti == typeid(short)) - printf("%d", *cast(short*)arg); - else if (ti == typeid(int)) - printf("%d", *cast(int*)arg); - else if (ti == typeid(long)) - printf("%lld", *cast(long*)arg); - - else if (ti == typeid(ubyte)) - printf("%u", *cast(ubyte*)arg); - else if (ti == typeid(ushort)) - printf("%u", *cast(ushort*)arg); - else if (ti == typeid(uint)) - printf("%u", *cast(uint*)arg); - else if (ti == typeid(ulong)) - printf("%llu", *cast(ulong*)arg); - - else if (ti == typeid(float)) - printf("%f", *cast(float*)arg); - else if (ti == typeid(double)) - printf("%f", *cast(double*)arg); - else if (ti == typeid(real)) // FIXME: 80bit? - { - version(LLVM_X86_FP80) - printf("%llf", *cast(real*)arg); - else - printf("%f", *cast(real*)arg); - } - - else if (ti == typeid(char)) - printf("%.*s", 1, arg); - else if (ti == typeid(wchar)) - printf("%.*s", 2, arg); - else if (ti == typeid(dchar)) - printf("%.*s", 4, arg); - - else if (ti == typeid(char[])) - { - char[] str = *cast(char[]*)arg; - printf("%.*s", str.length, str.ptr); - } - else if (ti == typeid(wchar[])) - { - wchar[] str = *cast(wchar[]*)arg; - printf("%.*s", str.length*2, str.ptr); - } - else if (ti == typeid(dchar[])) - { - dchar[] str = *cast(dchar[]*)arg; - printf("%.*s", str.length*4, str.ptr); - } - - else if (auto pti = cast(TypeInfo_Pointer)ti) - { - printf("%p", *cast(void**)arg); - } - - else if (auto sti = cast(TypeInfo_Struct)ti) - { - if (sti.xtoString !is null) - { - char[] str = sti.xtoString(arg); - printf("%.*s", str.length, str.ptr); - } - else - { - char[] str = sti.toString(); - printf("%.*s", str.length, str.ptr); - } - } - - else if (auto ati = cast(TypeInfo_Array)ti) - { - auto tnext = ati.next; - size_t len = *cast(size_t*)arg; - void* ptr = *(cast(void**)arg + 1); - printf("["); - for(auto i=0; i<len; ++i) - { - print(tnext, get_va_arg(tnext, ptr)); - if (i < len-1) - printf(","); - } - printf("]"); - } - - else if (auto cti = cast(TypeInfo_Class)ti) - { - auto o = *cast(Object*)arg; - char[] str = o.toString(); - printf("%.*s", str.length, str.ptr); - } - - // static arrays are converted to dynamic arrays when passed to variadic functions - else if (auto sati = cast(TypeInfo_StaticArray)ti) - { - assert(0, "static arrays not supported"); - } - - else if (auto aati = cast(TypeInfo_AssociativeArray)ti) - { - assert(0, "associative array not supported"); - } - - else - { - char[] str = ti.toString(); - printf("typeinfo: %.*s\n", str.length, str.ptr); - str = ti.classinfo.name; - printf("typeinfo.classinfo: %.*s\n", str.length, str.ptr); - assert(0, "unsupported type ^"); - } -} - -void print(...) -{ - void* argptr = _argptr; - assert(argptr); - - foreach(i,ti; _arguments) - { - void* arg = get_va_arg(ti, argptr); - assert(arg); - print(ti, arg); - } -}
--- a/tangotests/vararg4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -module tangotests.vararg4; - -extern(C) int printf(char*, ...); - -struct S -{ - int i; -} - -void func(...) -{ - S* sp = cast(S*)_argptr; - assert(sp.i == 42); -} - -void main() -{ - printf("1st:\n"); - { - S s = S(42); - func(s); - } - printf("ok\n"); - - printf("2nd:\n"); - { - func(S(42)); - } - printf("ok\n"); -}
--- a/tangotests/volatile1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module tangotests.volatile1; - -import tango.stdc.stdlib; - -void main() -{ - int var = rand(); - { - int i = var; - volatile; - int j = i; - } -}
--- a/test/a.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -module a; - -extern(C) int printf(char*, ...); - -int i = 42; - -void main() -{ - int j; - j = i; - int* p; - p = &j; - int k = *p; - assert(k == 42); - - byte b = -1; - int i = b; - assert(i == -1); - - int* p2 = p; - - printf("Done\n"); -}
--- a/test/aa1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module aa1; - -void main() -{ - int[int] aai; - assert(aai is null); - aai[0] = 52; - assert(aai !is null); - int i = aai[0]; - assert(i == 52); - aai[32] = 123; - int j = aai[32]; - assert(i == 52); - assert(j == 123); -}
--- a/test/aa2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module aa2; - -void main() -{ - long[float] aa; - long* p = 2.0f in aa; - assert(!p); - aa[4f] = 23; - p = 4f in aa; - assert(p); - assert(*p == 23); -}
--- a/test/aa3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module aa3; - -extern(C) int printf(char*, ...); -alias char[] string; - -void main() -{ - int[string] aa; - {aa["hello"] = 1;} - {int* p = "" in aa;} - aa[" worl"] = 2; - aa["d"] = 3; - aa["thisisgreat"] = 10; - int sum; - string cat; - { - foreach(k,v;aa) - { - printf("int[%.*s] = %d\n", k.length, k.ptr, v); - sum += v; - cat ~= k; - } - } - assert(sum == 16); - printf("cat = %.*s\n", cat.length, cat.ptr); - assert(cat.length == 22); -}
--- a/test/aa4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -module aa4; - -void main() -{ - int[int] aa; - aa = addkey(aa,42,12); - int* p = haskey(aa,42); - assert(p && *p == 12); -} - -int[int] addkey(int[int] aa, int key, int val) -{ - aa[key] = val; - return aa; -} - -int* haskey(int[int] aa, int key) -{ - return key in aa; -}
--- a/test/aa5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module aa5; - -void main() -{ - int[int] aa; - aa[42] = 1; - int i = aa[42]; - assert(i == 1); -}
--- a/test/aa6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module aa6; - -extern(C) int printf(char*, ...); - -void main() -{ - int[int] aa; - aa = [1:1, 2:4, 3:9, 4:16]; - printf("---\n"); - foreach(int k, int v; aa) - printf("aa[%d] = %d\n", k, v); - aa.rehash; - printf("---\n"); - foreach(int k, int v; aa) - printf("aa[%d] = %d\n", k, v); - size_t n = aa.length; - assert(n == 4); - int[] keys = aa.keys; - assert(keys[] == [1,2,3,4][]); - int[] vals = aa.values; - assert(vals[] == [1,4,9,16][]); - aa.remove(3); - printf("---\n"); - foreach(int k, int v; aa) - printf("aa[%d] = %d\n", k, v); - assert(aa.length == 3); -}
--- a/test/alignment.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module alignment; - -align(1) struct S -{ - ubyte b; - int i; - ubyte[2] b2; - long l; - real r; -} - -void main() -{ - byte b; - short s; - int i; - long l; - float f; - double d; - real r; -}
--- a/test/alloca1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module alloca1; - -pragma(LLVM_internal, "alloca") -void* alloca(uint); - -extern(C) int printf(char*, ...); - -void main() -{ - int n = 16; - int* p = cast(int*)alloca(n*int.sizeof); - int[] a = p[0..n]; - a[] = 0; - foreach(i,v; a) { - printf("a[%2d] = %d\n", i, v); - } -}
--- a/test/arrayinit.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module arrayinit; -float[4] ftable = [1,2,3,4]; -int[8] itable = [3:42,6:123]; - -private uint[7] crc32_table = [0x00000000,0x77073096,0xee0e612c,0x990951ba,0x076dc419,0x706af48f,0xe963a535]; - -void main() -{ - assert(crc32_table[3] == 0x990951ba); -}
--- a/test/arrays10.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module arrays10; - -void main() -{ - int[] a = new int[10]; - a[] = 3; -} \ No newline at end of file
--- a/test/arrays11.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -module arrays11; - -void ints() -{ - int[] a = [1,2,3,4,5,6]; - {assert(a == a);} - - int[] b = [4,5,6,7,8,9]; - {assert(a != b);} - {assert(a[3..$] == b[0..3]);} -} - -void floats() -{ - float[] a = [1.0f, 2.0f, 3.0f, 4.0f]; - {assert(a == a);} - - float[] b = [2.0f, 3.0f, 5.0f]; - {assert(a != b);} - {assert(a[1..3] == b[0..2]);} -} - -struct S -{ - int i; - int j; - - int opEquals(S s) - { - return (i == s.i) && (j == s.j); - } -} - -void structs() -{ - S[] a = [S(0,0), S(1,0), S(2,0), S(3,0)]; - {assert(a == a);} - S[] b = [S(0,1), S(1,0), S(2,0), S(3,1)]; - {assert(a != b);} - {assert(a[1..3] == b[1..3]);} - - S[2] c = [S(2,0), S(3,1)]; - {assert(c == b[2..$]);} -} - -void main() -{ - ints(); - floats(); - structs(); -}
--- a/test/arrays12.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module arrays12; - -void ints() -{ - int[3] a = [1,2,3]; - int[3] b = [2,3,4]; - int[3] c = [2,5,0]; - {assert(a < b);} - {assert(b > a);} - {assert(a < c);} - {assert(c > a);} - {assert(b < c);} - {assert(c > b);} -} - -void main() -{ - ints(); -}
--- a/test/arrays13.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module arrays13; - -extern(C) int printf(char*, ...); - -void main() -{ - char[] a = "hello"; - - assert(a > "hel"); - assert(a >= "hel"); - assert(a < "helloo"); - assert(a <= "helloo"); - assert(a > "betty"); - assert(a >= "betty"); - assert(a == "hello"); - assert(a <= "hello"); - assert(a >= "hello"); -}
--- a/test/arrays14.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module arrays14; - -void main() -{ - auto s = "hello world"; - auto d = s.dup; -}
--- a/test/arrays15.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -module arrays15; - -extern(C) int printf(char*, ...); - -void integer() -{ - auto arr = new int[16]; - arr[1] = 42; - arr[6] = 555; - print_int(arr); - delete arr; -} - -void floating() -{ - auto arr = new float[6]; - arr[1] = 3.14159265; - arr[3] = 1.61803399; - print_float(arr); - delete arr; -} - -void print_int(int[] arr) -{ - printf("arr[%lu] = [", arr.length); - for (auto i=0; i<arr.length; i++) - printf("%d,", arr[i]); - printf("\b]\n"); -} - -void print_float(float[] arr) -{ - printf("arr[%lu] = [", arr.length); - for (auto i=0; i<arr.length; i++) - printf("%f,", arr[i]); - printf("\b]\n"); -} - -void main() -{ - integer(); - floating(); -}
--- a/test/arrays2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -char[] get() -{ - return "hello"; -} - -void param(char[] s) -{ -} - -void refparam(ref char[] s) -{ -} - -void main() -{ - char[] dstr = get(); - param(dstr); - refparam(dstr); -}
--- a/test/arrays3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module arrays3; - -void main() -{ - int[] arr; - {arr = new int[25];} - {assert(arr.length == 25);} - {arr.length = arr.length + 5;} - {assert(arr.length == 30);} -}
--- a/test/arrays4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module arrays4; - -void main() -{ - int[] arr; - arr ~= 3; - assert(arr.length == 1); - assert(arr[0] == 3); - arr ~= 5; - assert(arr.length == 2); - assert(arr[0] == 3); - assert(arr[1] == 5); -}
--- a/test/arrays5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module arrays5; -void main() -{ - auto arr = new float[5]; - {arr[4] = 1f;} - {assert(arr[0] !<>= 0f);} - {assert(arr[1] !<>= 0f);} - {assert(arr[2] !<>= 0f);} - {assert(arr[3] !<>= 0f);} - {assert(arr[4] == 1f);} -}
--- a/test/arrays6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -module arrays6; - -void main() -{ - int[4] a = [1,2,3,4]; -}
--- a/test/arrays7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -module arrays7; - -extern(C) int printf(char*, ...); - -pragma(LLVM_internal, "notypeinfo") -struct S -{ - int i; - float f; - long l; - - void print() - { - printf("%d %f %lx\n", i, f, l); - } -} - -void main() -{ - S[] arr; - S s; - assert(arr.length == 0); - arr ~= s; - assert(arr.length == 1); - arr ~= S(1,2.64,0xFFFF_FFFF_FFFF); - assert(arr.length == 2); - arr[0].print(); - arr[1].print(); - assert(arr[1].i == 1); - assert(arr[1].f > 2.63 && arr[1].f < 2.65); - assert(arr[1].l == 0xFFFF_FFFF_FFFF); -}
--- a/test/arrays8.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module arrays8; - -extern(C) int printf(char*, ...); - -void main() -{ - char[] a = "hello "; - printf(" \"%s\".length = %u\n", a.ptr, a.length); - char[] b = "world"; - printf(" \"%s\".length = %u\n", b.ptr, b.length); - char[] c = a ~ b; - printf("After 'a ~ b':\n"); - printf(" \"%.*s\".length = %u\n", a.length, a.ptr, a.length); - printf(" \"%.*s\".length = %u\n", b.length, b.ptr, b.length); - printf(" \"%.*s\".length = %u\n", c.length, c.ptr, c.length); - assert(c.length == a.length + b.length); - assert(c !is a); - assert(c !is b); -}
--- a/test/arrays9.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module arrays9; - -const int[] g = [1,2,3,4]; - -void main() -{ - -}
--- a/test/asm1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -module asm1; - -extern(C) int printf(char*, ...); - -void main() -{ - version(D_InlineAsm_X86) - { - int x; - asm - { - mov EAX, 42; - mov x, EAX; - } - printf("x = %d\n", x); - } - else version(D_InlineAsm_X86_64) - { - long x; - asm - { - mov RAX, 42L; - mov x, RAX; - } - printf("x = %ld\n", x); - } - else - { - static assert(0, "no inline asm for this platform yet"); - } -}
--- a/test/assign.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -module assign; - -// this is taken from std.intrinsic from gdc - -int mybtc(uint *p, uint bitnum) -{ - uint * q = p + (bitnum / (uint.sizeof*8)); - uint mask = 1 << (bitnum & ((uint.sizeof*8) - 1)); - int result = *q & mask; - *q ^= mask; - return result ? -1 : 0; -} - -void main() -{ - uint i = 0xFFFF_FFFF; - int r = mybtc(&i, 31); - assert(r); - assert(i == 0x7FFF_FFFF); - r = mybtc(&i, 31); - assert(!r); - assert(i == 0xFFFF_FFFF); -}
--- a/test/b.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -module b; - -extern(C) int printf(char*, ...); - -struct S -{ - int i; - float[4] f; -} - -void main() -{ - S s; - int i = s.i; - int* p = &s.i; - *p = 42; - printf("%d == %d\n", *p, s.i); - - float* f = &s.f[0]; - printf("%f == %f\n", *f, s.f[0]); - *f = 3.1415; - printf("%f == %f\n", *f, s.f[0]); - s.f[0] = 123.456; - printf("%f == %f\n", *f, s.f[0]); -}
--- a/test/bitops.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ - -extern(C) int printf(char*, ...); - -void main() -{ - printf("Bitwise operations test\n"); - { ushort a = 0xFFF0; - ushort b = 0x0FFF; - assert((a&b) == 0x0FF0); - assert((a|b) == 0xFFFF); - assert((a^b) == 0xF00F); - } - { ubyte a = 0xFF; - ulong b = 0xFFFF_FFFF_FFFF_FFF0; - assert((a&b) == 0xF0); - } - { ushort s = 0xFF; - assert((s<<1) == s*2); - assert((s>>>1) == s/2); - } - { int s = -10; - assert((s>>1) == -5); - assert((s>>>1) != -5); - } - - { ushort a = 0xFFF0; - ushort b = 0x0FFF; - auto t = a; - t &= b; - assert(t == 0x0FF0); - t = a; - t |= b; - assert(t == 0xFFFF); - t = a; - t ^= b; - assert(t == 0xF00F); - } - { ubyte a = 0xFF; - ulong b = 0xFFFF_FFFF_FFFF_FFF0; - a &= b; - assert(a == 0xF0); - } - { ushort s = 0xFF; - auto t = s; - t <<= 1; - assert(t == (s*2)); - t = s; - t >>>= 1; - assert(t == s/2); - } - { int s = -10; - auto t = s; - t >>= 1; - assert(t == -5); - t = s; - t >>>= 1; - assert(t != -5); - } - { struct S - { - uint i; - ulong l; - }; - S s = S(1,4); - auto a = s.i | s.l; - assert(a == 5); - s.i = 0xFFFF_00FF; - s.l = 0xFFFF_FFFF_0000_FF00; - s.l ^= s.i; - assert(s.l == ulong.max); - s.i = 0x__FFFF_FF00; - s.l = 0xFF00FF_FF00; - s.i &= s.l; - assert(s.i == 0x00FF_FF00); - } - - printf(" SUCCESS\n"); -}
--- a/test/bug1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -module bug1; -struct Foo { Foo opSub(ref Foo b) { return Foo(); } } -struct Bar { Foo whee; } -void test(ref Bar moo) { Foo nngh; auto plonk = nngh - moo.whee; } -void main() { Bar bar; test(bar); }
--- a/test/bug10.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -module bug10; -extern(C) int printf(char*, ...); - -class C -{ - char[] msg; - - this() - { - } - this(char[] msg) - { - this.msg = msg; - } -} - -void main() -{ - auto c = new C(); - c.msg = "world"; - auto b = new C("hello"); - printf("%.*s\n", b.msg.length, b.msg.ptr); - printf("%.*s\n", c.msg.length, c.msg.ptr); -}
--- a/test/bug11.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module bug11; - -struct S -{ - int[4] arr; -} - -S s=S([1,2,3,4]); - -void main() -{ -}
--- a/test/bug12.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -module bug12; - -void main() -{ - const char[] name="y"; -}
--- a/test/bug13.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module bug13; - -void func1(ubyte[4]* arr) -{ - ubyte* b = &(*arr)[0]; - func2(&(*arr)[1]); -} - -void func2(ubyte* ptr) -{ - assert(*ptr == 2); -} - -void main() -{ - ubyte[4] arr = [cast(ubyte)1,2,3,4]; - func1(&arr); -}
--- a/test/bug14.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module bug14; - -void main() -{ - int[] arr = new int[12]; - int i = arr[0]; -}
--- a/test/bug15.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module bug15; - -bool bool1(bool b) { - if (b) return true; - else return false; -} - -bool bool2(bool b) { - if (b) {return true;} - else {return false;} -} - -void main() -{ - assert(bool1(true)); - assert(!bool2(false)); -}
--- a/test/bug16.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module bug16; - -void func(long val) -{ - val >>= 32; -} - -void main() -{ - func(64L); -}
--- a/test/bug17.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module bug17; - -struct Vec -{ - Vec opAdd(ref Vec b) { return Vec(); } - Vec opMul(double a) { return Vec(); } -} -void main() -{ - Vec foo; - Vec bar; - auto whee=foo+bar*1f; -}
--- a/test/bug18.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module bug18; - -struct S { - int[9] i; -} - -void main() -{ - int[9] i; - auto s = S(i); -}
--- a/test/bug19.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module bug19; - -void main() -{ - auto dg = (int i) { return i*2; }; - assert(dg(2) == 4); -}
--- a/test/bug2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -module bug2; -struct Vec { Vec barf() { return Vec(); } } -class test { this(Vec whee) { } } -void main() { Vec whee; new test(whee.barf()); }
--- a/test/bug20.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module bug20; -extern(C) int printf(char*, ...); - -void func(void delegate() dg) -{ - dg(); -} - -void main() -{ - int i = 42; - void delegate() dg = { - i++; - }; - printf("i = %d\n",i); - func(dg); - printf("i = %d\n",i); - assert(i == 43); -}
--- a/test/bug21.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module bug21; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 42; - auto a = { - int j = i*2; - auto b = { - return j; - }; - return b(); - }; - int i2 = a(); - printf("%d\n", i2); - assert(i2 == i*2); -}
--- a/test/bug22.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module bug22; -extern(C) int printf(char*, ...); - -void main() -{ - int i; - delegate { - i = 42; - }(); - printf("%d\n", i); - assert(i == 42); -}
--- a/test/bug23.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module bug23; -extern(C) int printf(char*, ...); - -void main() -{ - int i; - delegate { - i++; - delegate { - i++; - }(); - }(); - printf("%d\n", i); - assert(i == 2); -}
--- a/test/bug24.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module bug24; -extern(C) int printf(char*, ...); - -struct S -{ - long l; - float f; -} - -void main() -{ - S s = S(3L,2f); - delegate { - S t = S(4L, 1f); - delegate { - s.l += t.l; - s.f += t.f; - }(); - }(); - printf("%lu %f\n", s.l, s.f); - assert(s.l == 7 && s.f == 3); -}
--- a/test/bug25.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module bug25; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 2; - delegate { - i = i*i; - i += i*i; - }(); - printf("%d\n", i); - assert(i == 20); -}
--- a/test/bug26.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module bug26; - -extern int i; - -void main() -{ - int j = i; -}
--- a/test/bug27.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module bug27; - -int func(int a, int b) -{ - if (a == b) - return 0; - else if (a < b) - return -1; - else - return 1; -} - -void main() -{ - int i = func(3,4); - assert(i == -1); -}
--- a/test/bug28.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module bug28; - -void main() -{ - char[] a = "hello"; - char[] b = "hello"; - char[] c = "world"; - char[] d = "somethingelse"; - assert(a == a); - assert(a == b); - assert(a != c); - assert(b != c); - assert(a != d); - assert(b != d); - assert(c != d); - assert(d == d); -}
--- a/test/bug29.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module bug29; -extern(C) int printf(char*, ...); - -void main() -{ - int[] arr16 = new int[4]; - { - void[] arr = arr16; - { - printf("%lu\n", arr.length); - { - assert(arr.length == 16); - } - } - } -}
--- a/test/bug3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -module bug3; - -struct S -{ - int[] arr; - char[5] ch; -} - -class C -{ - int[] arr; - char[4] crs; -} - -void main() -{ - S s; - s.arr = new int[5]; - s.arr[1] = 32; - int i; - i = s.arr[0]; - //assert(s.arr[0] == 0); - //assert(s.arr[1] == 32); -}
--- a/test/bug30.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module bug30; - -void main() -{ - int[] a = new int[4]; - {a[0] = 1; - a[1] = 2; - a[2] = 3; - a[3] = 4;} - int[] b = new int[4]; - {b[0] = 1; - b[1] = 2; - b[2] = 3; - b[3] = 4;} - int[] c = new int[4]; - {c[0] = 1; - c[1] = 2; - c[2] = 4; - c[3] = 3;} - {assert(a == b);} - {assert(a != c);} -}
--- a/test/bug32.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module bug32; -extern(C) int printf(char*, ...); - -struct S -{ - char[] getName() { return name; } - char[] name; -} - -void main() -{ - S s = S("Kyle"); - char[] name = s.name; - printf("%.*s\n", name.length, name.ptr); -}
--- a/test/bug33.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -module bug33; - -extern(C) int memcmp(void*,void*,size_t); - -private int string_cmp(char[] s1, char[] s2) -{ - auto len = s1.length; - if (s2.length < len) - len = s2.length; - int result = memcmp(s1.ptr, s2.ptr, len); - if (result == 0) - result = cast(int)(cast(ptrdiff_t)s1.length - cast(ptrdiff_t)s2.length); - return result; -} - -struct S -{ - char[] toString() - { - return "S"; - } -} - -int func() -{ - S a,b; - return string_cmp(a.toString(),b.toString()); -} - -void main() -{ - assert(func() == 0); -}
--- a/test/bug34.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -module bug34; - -class MyTypeInfo_Pointer -{ - char[] toString() { return m_next.toString() ~ "*"; } - - int opEquals(Object o) - { TypeInfo_Pointer c; - - return this is o || - ((c = cast(TypeInfo_Pointer)o) !is null && - this.m_next == c.m_next); - } - - hash_t getHash(void *p) - { - return cast(uint)*cast(void* *)p; - } - - int equals(void *p1, void *p2) - { - return cast(int)(*cast(void* *)p1 == *cast(void* *)p2); - } - - int compare(void *p1, void *p2) - { - if (*cast(void* *)p1 < *cast(void* *)p2) - return -1; - else if (*cast(void* *)p1 > *cast(void* *)p2) - return 1; - else - return 0; - } - - size_t tsize() - { - return (void*).sizeof; - } - - void swap(void *p1, void *p2) - { void* tmp; - tmp = *cast(void**)p1; - *cast(void**)p1 = *cast(void**)p2; - *cast(void**)p2 = tmp; - } - - TypeInfo next() { return m_next; } - uint flags() { return 1; } - - TypeInfo m_next; -} - -void main() -{ -}
--- a/test/bug35.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module bug35; - -private const char[10] digits = "0123456789"; /// 0..9 - -void main() -{ -}
--- a/test/bug36.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module bug36; - -void main() -{ - int[] a; - void* cp = cast(void*)a; - -}
--- a/test/bug37.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module bug37; - -void main() -{ - char[] a = "hello"; - assert(a !is null); -}
--- a/test/bug38.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module bug38; - -void func(int* p) -{ - p++; -} - -void main() -{ - int i; - func(&i); -}
--- a/test/bug39.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module bug39; - -struct S -{ - long l; -} - -void main() -{ - S s; - s.l = 23; - void* p = &s; -}
--- a/test/bug4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module bug4; - -int func(int i) -{ - i += 2; - i -= 3; - return i; -} - -void main() -{ - assert(func(4) == 3); -}
--- a/test/bug40.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module bug40; - -char[] func(void* p) -{ - return null; -} - -void main() -{ - char[] function(void*) fp = &func; - assert(fp(null) is null); -}
--- a/test/bug41.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module bug41; - -void main() -{ - char[] a = "hello world"; - char* ap = a.ptr; - size_t i = 5; - char[] b = ap[0..i]; - assert(b == "hello"); -}
--- a/test/bug42.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module bug42; - -void main() { - int i = 2; - switch (i) { - case 0: - case 1: - default: - } -}
--- a/test/bug43.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module bug43; - -struct S -{ - ubyte[3] vals; -} - -void func(ubyte[3] v) -{ -} - -void main() -{ - S s; - func(s.vals); -}
--- a/test/bug44.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module bug44; - -pragma(LLVM_internal, "notypeinfo") -struct rgb -{ - long l; -} - -void foo() -{ -} - -rgb test() { - scope(exit) foo(); - return rgb(); -} - -void main() -{ - rgb r = test(); -}
--- a/test/bug45.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module bug45; - -void foo() { - int bar; - scope(exit) { bar++; } - if (bar) return; -} - -void main() { - foo(); -}
--- a/test/bug47.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module bug47; - -bool func(bool a, bool b) -{ - if (a) b = false; - return b; -} - -void main() -{ - assert(func(0,0) == 0); - assert(func(0,1) == 1); - assert(func(1,0) == 0); - assert(func(1,1) == 0); -}
--- a/test/bug48.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module bug48; - -size_t func(void *p) -{ - return cast(size_t)*cast(void* *)p; -} - -void main() -{ -}
--- a/test/bug49.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module bug49; - -pragma(LLVM_internal, "notypeinfo") -struct S -{ - int i; - long l; -} - -void main() -{ - S s; - s.i = 0x__FFFF_FF00; - s.l = 0xFF00FF_FF00; - s.i &= s.l; -}
--- a/test/bug5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module bug5; - -struct hah { - static hah f() - { - hah res; - return res; - } - hah g() - { - return hah.init; - } -} - -void main() -{ -}
--- a/test/bug50.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -module bug50; -extern(C) int printf(char*, ...); - -pragma(LLVM_internal, "notypeinfo") -struct S -{ - int i; - float f; - long l; - - void print() - { - printf("%d %f %lx\n", i, f, l); - } -} - -void main() -{ - S s; - s.print(); - s = S(1,2,3); - s.print(); - - S[] arr; - {arr ~= s;} - {arr[0].print();} - {arr ~= S(1,2,3);} - {arr[1].print();} -}
--- a/test/bug51.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module bug51; -const ubyte[3] arr1 = 1; -const ubyte[3] arr2 = [1]; -const ubyte[3] arr3 = [1:1]; -void main() -{ - assert(arr1 == [cast(ubyte)1,1,1][]); - assert(arr2 == [cast(ubyte)1,0,0][]); - assert(arr3 == [cast(ubyte)0,1,0][]); -}
--- a/test/bug52.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -module bug52; -struct Vec { double x,y,z; } -struct Pair(T, U) { T first; U second; } -typedef Pair!(double, Vec) Hit; -void main() {}
--- a/test/bug53.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -module bug53; -class Foo { - final void bar() {} - void test() { bar(); } -} -void main() {}
--- a/test/bug54.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module bug54; - -extern(C) size_t strlen(char*); - -// creating args for main -void d_main_args(size_t n, char** args, ref char[][] res) -{ - assert(res.length == n); - foreach(i,v; args[0..n]) - { - res[i] = v[0 .. strlen(v)]; - } -} - -void main() -{ -}
--- a/test/bug55.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module bug55; -extern(C) int printf(char*, ...); - -int atoi(char[] s) { - int i, fac=1; - bool neg = (s.length) && (s[0] == '-'); - char[] a = neg ? s[1..$] : s; - foreach_reverse(c; a) { - i += (c-'0') * fac; - fac *= 10; - } - return !neg ? i : -i; -} - -void main() -{ - printf("64213 = %d\n", atoi("64213")); - printf("-64213 = %d\n", atoi("-64213")); - assert(atoi("64213") == 64213); - assert(atoi("-64213") == -64213); -}
--- a/test/bug56.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module bug56; - -void main() -{ - int[] a; - a = [1,2,3]; - {int[] b = [4,5,6];} -} \ No newline at end of file
--- a/test/bug57.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -import std.stdio; -class Foo {} -void func3() -{ - Foo[1] test=[new Foo]; - writefln(test); -} -void main() { - func3(); -}
--- a/test/bug58.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module bug58; -import std.stdio; -void main() -{ - int[16] arr = [1,16,2,15,3,14,4,13,5,12,6,11,7,10,8,9]; - writefln("arr = ",arr); - arr.sort; - writefln("arr.sort = ",arr); - assert(arr == [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]); -}
--- a/test/bug59.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -module bug59; - -void main() -{ - int[2] a = 0; - //func(a); - a[0] = 1; - int i = a[0]; - int* p = &a[0]; -} - -void func(int[2] a) -{ - int* p = cast(int*)a; -} - -void func2(int[4] a) -{ - int* p = 3+cast(int*)a; -}
--- a/test/bug6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module bug6; -class wrong { } -void bark(ref wrong s) { s = new wrong; } -void foo(wrong tree) { - auto old = tree; - bark(tree); - assert(old !is tree); -} -void main() -{ - auto w = new wrong; - auto old = w; - foo(w); - assert(w is old); -}
--- a/test/bug60.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module bug60; -extern(C) int printf(char*, ...); - -void func(T...)(T t) -{ - foreach(v;t) { - if (v.length) { - foreach(i;v) { - printf("%d\n", i); - } - } - } -} -void main() -{ - auto a = [1,2,3]; - func(a); -}
--- a/test/bug61.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module bug61; -extern(C) int printf(char*, ...); - -void main() -{ - int[3] a = [42,4,141414]; - printf("empty:\n"); - foreach(v; a[3..$]) { - printf("int = %d\n", v); - } - printf("one element:\n"); - foreach(v; a[2..$]) { - printf("int = %d\n", v); - } - printf("all elements:\n"); - foreach(v; a) { - printf("int = %d\n", v); - } - printf("empty reversed:\n"); - foreach_reverse(v; a[3..$]) { - printf("int = %d\n", v); - } - printf("all elements reversed:\n"); - foreach_reverse(v; a) { - printf("int = %d\n", v); - } -}
--- a/test/bug62.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module bug62; -extern(C) int printf(char*, ...); - -void main() -{ - int[] arr = [1,2,5,7,9]; - int i = 0; - foreach(v; arr) { - i += v; - } - printf("sum = %d\n", i); - assert(i == 24); -} \ No newline at end of file
--- a/test/bug63.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module bug63; -extern(C) int printf(char*, ...); - -void main() -{ - static void notnested() - { - printf("hello world\n"); - } - notnested(); -}
--- a/test/bug64.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module bug64; - -void main() -{ - float f; - float* p = &f; - float* end1 = p+1; - float* end2 = 1+p; - assert(end1 is end2); -}
--- a/test/bug66.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -module bug66; -import std.stdio; -class Scene { string name() { return "Scene"; } } -class Group : Scene { this () { } } -void main() { writefln((new Group).name); }
--- a/test/bug7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module bug7; - -class love { } -void bug() { - love[] child; - child.length=1; - assert(child[0] is null); - child[0]=null; - assert(child[0] is null); -} -void main() -{ - bug(); -}
--- a/test/bug70.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module bug70; - -void main() -{ - for (;false;) - { - break; - } -}
--- a/test/bug71.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -module bug71; - -void main() -{ - static TypeInfo skipCI(TypeInfo valti) - { - while (1) - { - if (valti.classinfo.name.length == 18 && - valti.classinfo.name[9..18] == "Invariant") - valti = (cast(TypeInfo_Invariant)valti).next; - else if (valti.classinfo.name.length == 14 && - valti.classinfo.name[9..14] == "Const") - valti = (cast(TypeInfo_Const)valti).next; - else - break; - } - return valti; - } -} \ No newline at end of file
--- a/test/bug72.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module bug72; - -void main() -{ - char c = void; - int i = void; - c += i; -}
--- a/test/bug73.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -int find(char[] s, dchar c) -{ - // c is a universal character - foreach (int i, dchar c2; s) - { - if (c == c2) - return i; - } - return -1; -} - -void main() -{ - char[] hello = "hello world"; - int i = find(hello, 'w'); - assert(i == 6); - i = find(hello, 'z'); - assert(i == -1); -}
--- a/test/bug74.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module bug74; - -char[] sformat(char[] s, ...) -{ - TypeInfo[] ti = _arguments; - void* args = _argptr; - return ""; -} - -void main() -{ -}
--- a/test/bug75.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module bug75; - -void func(void delegate() dg) -{ -} - -void main() -{ - void nested() { - } - //func(&nested); - void delegate() dg = &nested; -}
--- a/test/bug76.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module bug76; -char[] fmt(...) -{ - return ""; -} -void main() -{ - char[] s = fmt(); -}
--- a/test/bug77.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module bug77; -import tango.stdc.string; -void main() -{ - size_t len; - void func2() - { - char* prefix = ""; - - void func() - { - len = strlen(prefix); - assert(len == 0); - } - - func(); - } - func2(); -}
--- a/test/bug78.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module bug78; - -void main() -{ - typedef int int_t = 42; - int_t i; - assert(i == int_t.init); -} \ No newline at end of file
--- a/test/bug79.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module bug79; -import std.c.linux.linux; -void main() -{ - timespec ts; - ts.tv_nsec -= 1; - //auto t = ts.tv_nsec - 1; - //t -= 1; -}
--- a/test/bug8.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module bug8; - -void main() -{ - s = newS(); -} - -S* s; - -struct S -{ - int i; -} - -S* newS() -{ - auto tmp = new S; - tmp.i = 4; - return tmp; -} -
--- a/test/bug80.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module bug80; -extern(C) int printf(char*, ...); - -void main() -{ - byte b = 10; - int i = b += 2; - printf("byte=%d int=%d\n", b, i); - assert(b == 12); - assert(i == 12); -}
--- a/test/bug9.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -module bug9; -extern(C) int printf(char*, ...); - -struct rgb -{ - ubyte[3] values; - rgb average(rgb other) - { - rgb res; - foreach (id, ref v; res.values) v=(values[id]+other.values[id])/2; - return res; - } - void print() - { - printf("[%d,%d,%d]\n", values[0], values[1], values[2]); - } -} - -void main() -{ - rgb a,b; - a.values[0] = 10; - a.values[1] = 20; - a.values[2] = 30; - b.values[0] = 30; - b.values[1] = 20; - b.values[2] = 10; - rgb avg = a.average(b); - avg.print(); - assert(avg.values[0] == 20); - assert(avg.values[1] == 20); - assert(avg.values[2] == 20); -} -
--- a/test/c.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module c; - -void main() -{ - ushort a = 0xFFF0; - ushort b = 0x0FFF; - auto t = a & b; - a &= b; - assert(t == a); -}
--- a/test/calls1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -module calls1; -import tango.core.Vararg; -extern(C) int printf(char*, ...); -void main() -{ - {int a = byVal1(3);} - {int a = void; byRef1(a);} - {char[] c = void; refType(c);} - {char[] c = void; refTypeByRef(c);} - {S s = void; structByVal(s);} - {S s = void; structByRef(s);} - {S s = void; structByPtr(&s);} - {printf("c-varargs %d %d %d\n", 1,2,3);} - {int i=3; float f=24.7; dvararg(i,f);} - {char[] s = "hello"; dvarargRefTy(s);} - {char[] ss = "hello world!"; dvarargRefTy(ss);} -} - -int byVal1(int a) -{ - return a; -} - -void byRef1(ref int a) -{ - a = 3; -} - -void refType(char[] s) -{ -} - -void refTypeByRef(ref char[] s) -{ -} - -struct S -{ - float f; - double d; - long l; - byte b; -} - -void structByVal(S s) -{ -} - -void structByRef(ref S s) -{ -} - -void structByPtr(S* s) -{ -} - -void dvararg(...) -{ - printf("%d %.1f\n", va_arg!(int)(_argptr), va_arg!(float)(_argptr)); -} - -void dvarargRefTy(...) -{ - char[] s = va_arg!(char[])(_argptr); - printf("%.*s\n", s.length, s.ptr); -}
--- a/test/classes.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -extern(C) int printf(char*, ...); - -class C -{ - int i; - void p() - { - printf("%d\n", i); - } -} - -void main() -{ - printf("should print 4\n"); - C c = new C; - c.i = 4; - c.p(); - //delete c; -}
--- a/test/classes10.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module classes10; - -class C -{ - int i; - override char[] toString() - { - return "foobar"; - } -} - -void main() -{ - Object o = new C; - char[] s = o.toString(); - assert(s == "foobar"); -}
--- a/test/classes11.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module classes11; -extern(C) int printf(char*, ...); - -void main() -{ - static class C - { - void func() - { - printf("Hello world\n"); - } - } - - scope c = new C; - c.func(); -}
--- a/test/classes2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -extern(C) int printf(char*, ...); - -class A -{ - int i; - void f() - { - printf("A.f\n"); - } -} - -class B : A -{ - long l; - void f() - { - printf("B.f\n"); - } -} - -void main() -{ - A a = new B; - a.f(); -}
--- a/test/classes3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -class C -{ - int c; - long f(long l) - { - return l; - } -} - -class D : C -{ - int d; - override long f(long l) - { - return l*2; - } -} - -void main() -{ - scope c = new C; - assert(c.f(25L) == 25); - scope d = new D; - assert(d.f(25L) == 50); - C cd = d; - assert(cd.f(25L) == 50); - assert(func(d,25L) == 50); -} - -long func(C c, long l) -{ - return c.f(l); -}
--- a/test/classes4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -extern(C) int printf(char*, ...); - -class A -{ - int i = 42; - double df = 3.1415; - this() - { - } - char[] toString() - { - return "A:Object"; - } -} - -class B : A -{ - ubyte b; - char[] toString() - { - return "B:A"; - } -} - -void main() -{ - scope a = new A; - char[] as = a.toString; - {printf("a.toString = '%.*s'\n", as.length, as.ptr);} - - Object o = a; - char[] os = o.toString; - {printf("o.toString = '%.*s'\n", os.length, os.ptr);} - - scope b = new B; - char[] bs = b.toString; - {printf("b.toString = '%.*s'\n", bs.length, bs.ptr);} -}
--- a/test/classes5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -module classes5; -extern(C) int printf(char*, ...); - -struct S -{ - long l; -} - -class C -{ - C c; - S s; -} - -void main() -{ - C c = new C; - long* lp = void; - {c.s.l = 64;} - {assert(c.s.l == 64);} - {lp = &c.s.l;} - {assert(*lp == 64);} - printf("classes5 success\n"); -}
--- a/test/classes6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -module classes6; -extern(C) int printf(char*, ...); - -class C -{ - void f() - { - printf("world\n"); - } -} - -class D : C -{ - void f() - { - printf("moon\n"); - } -} - - -extern(C) -{ - void srand(uint seed); - int rand(); -} - -import llvm.intrinsic; - -void main() -{ - C c; - srand(readcyclecounter()); - if (rand() % 2) - c = new C; - else - c = new D; - c.f(); -}
--- a/test/classes7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module classes7; - -class C -{ - int i=0; - void f() - { - i=42; - } - void g() - { - f(); - } -} - -void main() -{ - scope c = new C; - c.g(); - assert(c.i == 42); -}
--- a/test/classes8.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -class A { - int i; - int l; - this(bool b,bool b2=false) { - if (b) this = new B; - i = 4; - if (b2) this = new C; - l = 64; - } -} -class B : A{ - this() { - super(false); - } -} -class C : A{ - this() { - super(false); - } -} -void main() { -}
--- a/test/classes9.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -module classes9; - -class C -{ -} - -class D : C -{ -} - -class E -{ -} - -class F : E -{ -} - -void main() -{ - { - D d = new D; - { - C c = d; - assert(c !is null); - D d2 = cast(D)c; - assert(d2 !is null); - E e = cast(E)d; - assert(e is null); - F f = cast(F)d; - assert(f is null); - } - } - { - F f = new F; - { - E e = f; - assert(e !is null); - F f2 = cast(F)e; - assert(f2 !is null); - C c = cast(C)f; - assert(c is null); - D d2 = cast(D)f; - assert(d2 is null); - } - } -}
--- a/test/classinfo1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -module classinfo1; - -extern(C) int printf(char*, ...); - -class NoPtrs -{ -} - -class HasPtrs -{ - void* p; -} - -void main() -{ - { - ClassInfo ci = NoPtrs.classinfo; - char[] name = ci.name; - printf("%.*s\n", name.length, name.ptr); - assert(ci.name == "classinfo1.NoPtrs"); - assert(ci.flags & 2); - } - { - ClassInfo ci = HasPtrs.classinfo; - char[] name = ci.name; - printf("%.*s\n", name.length, name.ptr); - assert(ci.name == "classinfo1.HasPtrs"); - assert(!(ci.flags & 2)); - } -}
--- a/test/classinfo2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module classinfo2; - -class C -{ -} - -class D : C -{ -} - -void main() -{ - D d; - d = new D; - ClassInfo ci = d.classinfo; - assert(ci is D.classinfo); -}
--- a/test/classinfo3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module classinfo3; - -class C -{ - int i; - float f; - long l; - int j; -} - -void main() -{ - auto c = C.classinfo; - assert(c.offTi !is null); - assert(c.offTi.length == 4); - - size_t base = 2*size_t.sizeof; - - assert(c.offTi[0].offset == base); - assert(c.offTi[0].ti == typeid(int)); - assert(c.offTi[1].offset == base+4); - assert(c.offTi[1].ti == typeid(float)); - assert(c.offTi[2].offset == base+8); - assert(c.offTi[2].ti == typeid(long)); - assert(c.offTi[3].offset == base+16); - assert(c.offTi[3].ti == typeid(int)); -}
--- a/test/classinfo4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -module classinfo4; - -class C -{ -} - -class D : C -{ - this() - { - } - ~this() - { - } -} - -template T() -{ - ~this() - { - } -} - -class E : D -{ - this() - { - } - ~this() - { - } - mixin T; -} - -void main() -{ - assert(C.classinfo.defaultConstructor is null); - assert(C.classinfo.destructor is null); - assert(D.classinfo.defaultConstructor !is null); - assert(D.classinfo.destructor !is null); - assert(E.classinfo.defaultConstructor !is null); - assert(E.classinfo.destructor !is null); -}
--- a/test/comma.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module comma; - -void main() -{ - int i=0,j=0; - for (; i<10; i++,j++) - { - } - assert(i == 10); - assert(j == 10); -}
--- a/test/complex1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module complex1; - -void main() -{ - cfloat cf1 = 3f + 0i; - cfloat cf2 = 4f + 1i; - cfloat cf3 = func(); - auto c1 = cf1 + cf2; - auto c2 = cf2 - cf3; - { - auto c3 = cf1 * cf3; - { - auto c4 = cf2 / cf3; - } - } -} - -cfloat func() -{ - return 3f + 1i; -}
--- a/test/complex2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module complex2; - -void main() -{ - cdouble c = 3.0 + 0i; - cdouble d = 2.0 + 0i; - { - cdouble c1 = c + 3.0; - cdouble c2 = c - 3.0i; - } - { - cdouble c1 = c / 2.0; - } -}
--- a/test/complex3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module complex3; - -void main() -{ - cfloat c1 = 1f + 0i; - cfloat c2 = 0f + 0i; - c2 += 1f + 0i; - //assert(c1 == c2); -}
--- a/test/cond.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -extern(C) int printf(char*, ...); - -version=AndAnd; -version=OrOr; - -version(AndAnd) -void andand1() -{ - int a,b; - a = 4; - b = 5; - assert(a == 4); - assert(b == 5); - assert(a+b == 9); - assert(a == 4 && b == 5); - assert(a != 3 && b == 5); - assert(a > 2); - assert(a < 54); - assert(a < b); - assert(a > b-2); - - int apb = a+b; - int amb = a*b; - assert(apb < amb && apb > a); -} - -version(OrOr) -void oror1() -{ - int a,b; - a = 10; - b = 1000; - assert(a); - assert(b); - assert(a || b); - assert(a > b || a < b); -} - -void main() -{ - printf("Conditionals test\n"); - version(AndAnd) andand1(); - version(OrOr) oror1(); - printf(" SUCCESS\n"); -}
--- a/test/cond1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module cond1; - -void main() -{ - double a = 2; - double b = 4; - double c = (a > 0) ? a : b; -}
--- a/test/condexp.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module condexp; - -int f() -{ - return 42; -} - -void main() -{ - int i = f() < 25 ? -1 : 1; - /*int j = f() > 25 ? 1 : -1; - assert(i); - assert(!j);*/ -}
--- a/test/condexp1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module condexp1; - -void main() -{ - char[] a = "hello"; - char[] b = "world"; - int i = 42; - { - char[] c = i > 50 ? b : a; - assert(c is a); - } -}
--- a/test/cyclic.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -void main() -{ - S t; -} - -struct T -{ - int i; - S* s; -} - -struct S -{ - long i; - T* t; -}
--- a/test/d.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -module d; - -void main() -{ - int delegate() dg; - - struct S - { - int i; - long l; - float f; - - int func() - { - return 42; - } - } - - S s; - auto dg2 = &s.func; - int i = dg2(); - assert(i == 42); - - i = f(dg2, 1); - assert(i == 43); -} - -int f(int delegate() dg, int i) -{ - return dg() + i; -} - -/* -struct S -{ - int i; - float f; - int square() - { - return i*i; - } -} - -S s; - -void main() -{ - auto dg = &s.square; -} -*/ \ No newline at end of file
--- a/test/dgs.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ - -extern(C) int printf(char*, ...); - -struct S -{ - int i; - int square() - { - return i*i; - } - int plus(int a) - { - return i + a; - } - int minus(int a) - { - return i - a; - } - int delegate(int) get(char op) - { - int delegate(int) rval; - if (op == '+') - rval = + - else if (op == '-') - rval = − - return rval; - } -} - -int calldg1(int delegate(int) dg, int i) -{ - return dg(i); -} - -void delegate() retdg() -{ - void delegate() dg; - return dg; -} - -void getretdg() -{ - void delegate() dg; - dg = retdg(); -} - -class C -{ - int i; - void m() - { - i = 42; - } -} - -void getclassdg() -{ - scope c = new C; - void delegate() dg = &c.m; - assert(c.i != 42); - dg(); - assert(c.i == 42); -} - -void main() -{ - printf("Delegate test\n"); - S s = S(4); - - auto dg = &s.square; - //assert(dg() == 16); - //dg(); - - /*auto dg1 = &s.plus; - assert(dg1(6) == 10); - - auto dg2 = &s.minus; - assert(calldg1(dg2,30) == -26); - - auto dg3 = s.get('+'); - assert(dg3(16) == 20); - - getretdg(); - getclassdg();*/ - - printf(" SUCCESS\n"); -}
--- a/test/dotproduct.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -extern(C) int printf(char*, ...); - -struct vec3 -{ - float x,y,z; - - float dot(ref vec3 v) - { - return x*v.x + y*v.y + z*v.z; - } - - void print(char[] n) - { - printf("%.*s = vec3(%.4f, %.4f, %.4f)\n", n.length, n.ptr, x,y,z); - } -} - -int main() -{ - printf("Dot Product test\n"); - - const f = 0.7071067811865474617; - vec3 v = vec3(f,f,0); - vec3 w = vec3(f,0,f); - - v.print("v"); - w.print("w"); - - auto dp = v.dot(w); - printf("v · w = %f\n", dp); - assert(dp > 0.4999 && dp < 0.5001); - - printf(" SUCCESS\n"); - return 0; -} -
--- a/test/e.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -module e; - -extern(C) int printf(char*, ...); - -struct C -{ - float x=0,y=0; - - float dot(ref C b) - { - return x*b.x + y*b.y; - } -} - -void main() -{ - C a,b; - a.x = 2; - a.y = 6; - b.x = 3; - b.y = 5; - float f = a.dot(b); - printf("%f\n", f); - assert(f == 36); -}
--- a/test/enum1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module enum1; - -void main() -{ - enum { - HELLO, - WORLD - } - - assert(HELLO == 0); - assert(WORLD == 1); -}
--- a/test/enum2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module enum2; - -void main() -{ - enum E { - A,B - } - E e = E.B; - assert(e == E.B); -}
--- a/test/enum3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module enum3; - -enum GE : ushort -{ - A,B,C -} - -void main() -{ - GE e = GE.B; - size_t s = GE.sizeof; - assert(e == 1); - assert(e.sizeof == s); - assert(s == 2); -}
--- a/test/f.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module f; - -struct S -{ - long l; -} - -void main() -{ - S s; -}
--- a/test/fail1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module fail1; - -void func() -{ - float* fp; - float f = *fp; -} - -void main() -{ - func(); -}
--- a/test/fail2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module fail2; - -void a() -{ - b(); -} - -void b() -{ - c(); -} - -void c() -{ - d(); -} - -void d() -{ - int* ip; - int i = *ip; -} - -void main() -{ - a(); -}
--- a/test/floatcmp.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -module floatcmp; -extern(C) int printf(char*, ...); - -void eq() -{ - float _3 = 3; - assert(!(_3 == 4)); - assert(!(_3 == 2)); - assert(_3 == 3); - assert(!(_3 == float.nan)); -} - -void neq() -{ - float _3 = 3; - assert(_3 != 4); - assert(_3 != 2); - assert(!(_3 != 3)); - assert(_3 != float.nan); -} - -void gt() -{ - float _3 = 3; - assert(_3 > 2); - assert(!(_3 > 4)); - assert(!(_3 > 3)); - assert(!(_3 > float.nan)); -} - -void ge() -{ - float _3 = 3; - assert(_3 >= 2); - assert(!(_3 >= 4)); - assert(_3 >= 3); - assert(!(_3 >= float.nan)); -} - -void lt() -{ - float _3 = 3; - assert(_3 < 4); - assert(!(_3 < 2)); - assert(!(_3 < 3)); - assert(!(_3 < float.nan)); -} - -void le() -{ - float _3 = 3; - assert(_3 <= 4); - assert(!(_3 <= 2)); - assert(_3 <= 3); - assert(!(_3 <= float.nan)); -} - -void uno() -{ - float _3 = 3; - assert(!(_3 !<>= 2)); - assert(!(_3 !<>= 3)); - assert(!(_3 !<>= 4)); - assert(_3 !<>= float.nan); -} - -void lg() -{ - float _3 = 3; - assert(_3 <> 4); - assert(_3 <> 2); - assert(!(_3 <> 3)); - assert(!(_3 <> float.nan)); -} - -void lge() -{ - float _3 = 3; - assert(_3 <>= 4); - assert(_3 <>= 2); - assert(_3 <>= 3); - assert(!(_3 <>= float.nan)); -} - -void ugt() -{ - float _3 = 3; - assert(_3 !<= 2); - assert(!(_3 !<= 4)); - assert(!(_3 !<= 3)); - assert(_3 !<= float.nan); -} - -void uge() -{ - float _3 = 3; - assert(_3 !< 2); - assert(!(_3 !< 4)); - assert(_3 !< 3); - assert(_3 !< float.nan); -} - -void ult() -{ - float _3 = 3; - assert(_3 !>= 4); - assert(!(_3 !>= 2)); - assert(!(_3 !>= 3)); - assert(_3 !>= float.nan); -} - -void ule() -{ - float _3 = 3; - assert(_3 !> 4); - assert(!(_3 !> 2)); - assert(_3 !> 3); - assert(_3 !> float.nan); -} - -void ueq() -{ - float _3 = 3; - assert(!(_3 !<> 2)); - assert(!(_3 !<> 4)); - assert(_3 !<> 3); - assert(_3 !<> float.nan); -} - -void main() -{ - printf("floating point comparison test\n"); - - eq(); - neq(); - gt(); - ge(); - lt(); - le(); - uno(); - lg(); - lge(); - ugt(); - uge(); - ult(); - ule(); - ueq(); - - printf(" SUCCESS\n"); -} - -/+ -void gt() -{ - float _3 = 3; - assert(); - assert(); - assert(); - assert(); -} -+/
--- a/test/foreach1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module foreach1; -extern(C) int printf(char*, ...); - -void main() -{ - static arr = [1,2,3,4,5]; - - printf("forward"); - foreach(v;arr) { - printf(" %d",v); - } - printf("\nreverse"); - foreach_reverse(v;arr) { - printf(" %d",v); - } - printf("\n"); -}
--- a/test/foreach2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module foreach2; -extern(C) int printf(char*, ...); -void main() -{ - static arr = [1.0, 2.0, 4.0, 8.0, 16.0]; - foreach(i,v; arr) - { - printf("arr[%d] = %f\n", i, v); - } - printf("-------------------------------\n"); - foreach_reverse(i,v; arr) - { - printf("arr[%d] = %f\n", i, v); - } -}
--- a/test/foreach3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module foreach3; -extern(C) int printf(char*, ...); -void main() -{ - static str = ['h','e','l','l','o']; - foreach(i,v; str) { - printf("%c",v); - } - printf("\n"); - - foreach(i,v; str) { - v++; - } - - foreach(i,v; str) { - printf("%c",v); - } - printf("\n"); -}
--- a/test/foreach4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module foreach4; -extern(C) int printf(char*, ...); -void main() -{ - int[] arr = new int[4]; - foreach(i,v;arr) { - printf("arr[%u] = %d\n",i,v); - } -}
--- a/test/foreach5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -module foreach5; -extern(C) int printf(char*, ...); -void main() -{ - int[3] arr = [1,2,3]; - - foreach(v;arr) { - v++; - } - - printf("%d\n", arr[0]); - assert(arr[0] == 1); - assert(arr[1] == 2); - assert(arr[2] == 3); - - foreach(ref v;arr) { - v++; - } - - printf("%d\n", arr[0]); - assert(arr[0] == 2); - assert(arr[1] == 3); - assert(arr[2] == 4); -}
--- a/test/foreach6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module foreach6; - -struct S -{ - long l; - float f; -} - -void main() -{ - S[4] arr = void; - foreach(i,v;arr) { - v = S(i, i*2.5); - } -}
--- a/test/foreach7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module foreach7; - -void main() -{ - int[4] a = [1,2,3,4]; - int i; - foreach(v; a[0..3]) - { - i += v; - } - assert(i == 6); -}
--- a/test/forwdecl.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -struct S -{ - S* s; - S** ss; - S*[4] s4; -} - -void main() -{ - S s; -}
--- a/test/funcptr.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -extern(C) int printf(char*, ...); - -int return_six() -{ - return 6; -} - -int add_int(int a, int b) -{ - return a+b; -} - -int sub_int(int a, int b) -{ - return a-b; -} - -alias int function(int,int) binfn_t; - -int binop_int(binfn_t op, int a, int b) -{ - return op(a,b); -} - -binfn_t get_binop_int(char op) -{ - binfn_t fn; - if (op == '+') - fn = &add_int; - else if (op == '-') - fn = &sub_int; - return fn; -} - -extern(C) float mul_float(float a, float b) -{ - return a * b; -} - -void function_pointers() -{ - int function() fn = &return_six; - assert(fn() == 6); - - binfn_t binfn = &add_int; - assert(binfn(4,1045) == 1049); - - assert(binop_int(binfn, 10,656) == 666); - - binfn = get_binop_int('+'); - assert(binop_int(binfn, 10,100) == 110); - binfn = get_binop_int('-'); - assert(binop_int(binfn, 10,100) == -90); - - { - auto ffn = &mul_float; - float ftmp = mul_float(2.5,5); - assert(ftmp == 12.5); - assert(ftmp > 12.49 && ftmp < 12.51); - } -} - -void main() -{ - printf("Function pointer test\n"); - function_pointers(); - printf(" SUCCESS\n"); -}
--- a/test/funcs.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -extern(C) int printf(char*, ...); - -void main() -{ - printf("Testing functions\n"); - int i = 5; - assert(a(i) == 110); - assert(i == 11); - - S s; - s.i = 5; - d(s); - assert(s.i == 5); - e(s); - assert(s.i == 6); - - printf(" SUCCESS\n"); -} - -int a(ref int i) -{ - i*=2; - return b(i); -} - -int b(ref int i) -{ - i++; - return c(i); -} - -int c(int i) -{ - return i*10; -} - -struct S -{ - int i; -} - -void d(S s) -{ - s.i++; -} - -void e(ref S s) -{ - s.i++; -}
--- a/test/funcs2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module funcs2; - -void func() -{ -} - -void main() -{ -}
--- a/test/g.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module g; - -extern(C) int printf(char*, ...); - -void func(char[] str) -{ - printf("%.*s\n", str.length, str.ptr); -} - -void main() -{ - char[] arr = "Hello World!"; - func(arr); - func("ditto"); -}
--- a/test/globals1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module globals1; -extern(C) int printf(char*, ...); - -char[] gstr = "hello world"; - -void main() -{ - printf("%.*s\n", gstr.length, gstr.ptr); - char[] str = gstr; - printf("%.*s\n", str.length, str.ptr); -}
--- a/test/globals2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module globals2; - -template Bool(bool b) -{ - const bool Bool = b; -} - -void main() -{ - assert(Bool!(true)); - assert(!Bool!(false)); -}
--- a/test/goto1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module goto1; - -void main() -{ - int i; - goto lbl; - i++; -lbl: - assert(i == 0); -} -
--- a/test/imag1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module imag1; - -void main() -{ - ifloat f = 1.0i; - auto x = 2.0i*f; -}
--- a/test/imports2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -module imports2; -import std.stdio; - -void main() { - writefln("Hello world!"[]); -}
--- a/test/imports_1of2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module imports_1of2; - -import imports_2of2; - -void main() -{ - assert(func() == 42); - S s; - s.l = 32; - assert(s.l == 32); -}
--- a/test/imports_2of2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module imports_2of2; - -int func() -{ - return 42; -} - -struct S -{ - long l; -}
--- a/test/innerclass1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -module innerclass1; -extern(C) int printf(char*, ...); - -class Outer -{ - int i; - class Inner - { - int func() - { - return i; - } - } -} - -void main() -{ - Outer o = new Outer; - { - o.i = 42; - { - auto i = o.new Inner; - { - int x = i.func(); - assert(x == 42); - } - } - } - printf("SUCCESS\n"); -}
--- a/test/interface1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -module interface1; - -extern(C) int printf(char*,...); - -interface Inter -{ - void func(); -} - -class Class : Inter -{ - override void func() - { - printf("hello world\n"); - } -} - -void main() -{ - scope c = new Class; - c.func(); - Inter i = c; - i.func(); -}
--- a/test/interface2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -module interface2; - -extern(C) int printf(char*,...); - -interface A -{ - void a(); -} - -interface B -{ - void b(); -} - -class C : A,B -{ - int i = 0; - override void a() - { - printf("hello from C.a\n"); - } - override void b() - { - printf("hello from C.b\n"); - } -} - -void main() -{ - scope c = new C; - {c.a(); - c.b();} - {A a = c; - a.a();} - {B b = c; - b.b();} -}
--- a/test/interface3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -module interface3; - -extern(C) int printf(char*,...); - -interface I -{ - void func(); -} - -class C : I -{ - int i = 42; - override void func() - { - printf("hello %d\n", i); - i++; - } -} - -void main() -{ - scope c = new C; - {c.func();} - { - I i = c; - {i.func();} - } - {printf("final %d\n", c.i);} - {assert(c.i == 44);} -}
--- a/test/interface4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -module interface4; - -extern(C) int printf(char*,...); - -interface I -{ - void func(); -} - -interface I2 -{ - void func(); -} - -class C : I,I2 -{ - int i = 42; - override void func() - { - printf("hello %d\n", i); - i++; - } -} - -void main() -{ - scope c = new C; - c.func(); - I i = c; - i.func(); - I2 i2 = c; - i2.func(); - printf("final %d\n", c.i); - assert(c.i == 45); -}
--- a/test/interface5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -module interface5; - -extern(C) int printf(char*,...); - -interface I -{ - void func(); -} - -class C : I -{ - int i; - void func() - { - printf("C\n"); - i++; - } -} - -void main() -{ - C c = new C; - c.func(); - { - I i = c; - c.func(); - - C c2 = cast(C)i; - c2.func(); - - c.func(); - assert(c.i == 4); - } -}
--- a/test/interface6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -module interface6; - -extern(C) int printf(char*,...); - -interface I -{ - void Ifunc(); -} - -interface J -{ - void Jfunc(); -} - -class C : I,J -{ - int i; - int j; - void Ifunc() - { - i++; - } - void Jfunc() - { - j++; - } -} - -void main() -{ - C c = new C; - c.Ifunc(); - c.Jfunc(); - I i = c; - i.Ifunc(); - J j = c; - j.Jfunc(); - C c2 = cast(C)i; - c2.Ifunc(); - c2.Jfunc(); - C c3 = cast(C)j; - c3.Ifunc(); - c3.Jfunc(); - assert(c.i == 4); - assert(c.j == 4); -}
--- a/test/interface7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -module interface7; - -extern(C) int printf(char*,...); - -interface I -{ -} - -class C : I -{ -} - -void main() -{ - I i = new C; - ClassInfo ci = i.classinfo; - char[] name = ci.name; - printf("ci.name = %.*s\n", name.length, name.ptr); - ClassInfo cI = I.classinfo; - name = cI.name; - printf("cI.name = %.*s\n", name.length, name.ptr); - assert(ci is cI); -}
--- a/test/intrinsics.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -import llvm.intrinsic; - -extern(C) int printf(char*,...); -extern(C) int scanf(char*,...); - -void main() -{ - { - float f; - printf("Enter float: "); - scanf("%f", &f); - float sf = llvm_sqrt(f); - printf("sqrt(%f) = %f\n", f, sf); - } - - { - double d; - printf("Enter double: "); - scanf("%lf", &d); - double sd = llvm_sqrt(d); - printf("sqrt(%lf) = %lf\n", d, sd); - } - - { - real d; - printf("Enter real: "); - scanf("%lf", &d); - real sd = llvm_sqrt(d); - printf("sqrt(%lf) = %lf\n", d, sd); - } -}
--- a/test/mainargs1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module mainargs1; - -extern(C) int printf(char*,...); - -void main(char[][] args) -{ - foreach(v; args) - { - printf("%.*s\n", v.length, v.ptr); - } -}
--- a/test/memory1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module memory1; - -extern(C) int printf(char*,...); - -void main() -{ - auto a = new int[16]; - {printf("array.length = %u\n", a.length);} - {a.length = a.length + 1;} - {printf("array.length = %u\n", a.length);} - {assert(a.length == 17);} -}
--- a/test/moduleinfo1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -module moduleinfo1; - -static this() -{ -} - -static this() -{ -} - -static ~this() -{ -} - -static ~this() -{ -} - -unittest -{ -} - -class C -{ -} - -class D : C -{ -} - -void main() -{ -}
--- a/test/moduleinfo2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module moduleinfo2; - -extern(C) int printf(char*, ...); - -void main() -{ - printf("listing modules:\n"); - foreach(m; ModuleInfo) - { - printf(" %.*s\n", m.name.length, m.name.ptr); - } -}
--- a/test/multiarr1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module multiarr1; - -void main() -{ - int[16][16] a; - assert(a[0][0] == 0); - assert(a[0][1] == 0); - assert(a[0][2] == 0); - assert(a[0][3] == 0); - assert(a[10][13] == 0); - assert(a[15][15] == 0); - a[10][13] = 42; - assert(a[0][0] == 0); - assert(a[10][13] == 42); - assert(a[15][15] == 0); - { - int* l = cast(int*)a; - l += 10*16+13; - assert(*l == 42); - } -}
--- a/test/multiarr2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module multiarr2; - -void main() -{ - static float[1][2][3] arr; - assert(arr[2][1][0] !<>= float.nan); -}
--- a/test/multiarr3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module multiarr3; - -void main() -{ - static int[2][2] arr = [[1,2],[3,4]]; - assert(arr[0][0] == 1); - assert(arr[0][1] == 2); - assert(arr[1][0] == 3); - assert(arr[1][1] == 4); -}
--- a/test/multiarr4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module multiarr4; -extern(C) int printf(char*, ...); - -void main() -{ - char[][] a; - a.length = 2; - a[0] = "hello"; - a[1] = "world"; - foreach(v;a) - { - printf("%.*s\n", v.length, v.ptr); - } -}
--- a/test/neg.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module neg; - -void main() -{ - int i = 32; - long l = 55; - float f = 23; - double d = 4; - assert(-i == -32); - assert(-l == -55); - assert(-f == -23); - assert(-d == -4); -}
--- a/test/nested1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module nested1; - -void func(int i) -{ - (){ - assert(i == 3); - }(); -} - -void main() -{ - func(3); -}
--- a/test/nested10.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module nested10; - -extern(C) int printf(char*, ...); - -void main() -{ - int j = 3; - void F() - { - int i = j; - printf("F: i = %d, j = %d\n", i, j); - void G() - { - printf("G: i = %d, j = %d\n", i, j); - j += i; - } - G(); - } - F(); - printf("6 = %d\n", j); - assert(j == 6); -}
--- a/test/nested11.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -module nested11; - -extern(C) int printf(char*, ...); - -void main() -{ - int i; - - void f() - { - i++; - - void g() - { - i++; - - void h() - { - printf("i = %d\n", i); - } - - h(); - } - - g(); - } - - f(); - assert(i == 2); - - void foo() - { - i = 42; - } - - void bar() - { - foo(); - } - - bar(); - printf("i = %d\n", i); - assert(i == 42); -}
--- a/test/nested12.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -module nested12; - -extern(C) int printf(char*, ...); - -void main() -{ - func(); -} - -void func() -{ - void a(int i) - { - printf("%d\n", i); - } - - void b() - { - a(42); - } - - b(); -}
--- a/test/nested2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module nested2; - -void func(ref int i) -{ - delegate { - assert(i == 3); - i++; - }(); -} - -void main() -{ - int i = 3; - func(i); - assert(i == 4); -}
--- a/test/nested3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module nested3; - -void main() -{ - int i; - void test() - { - i = 3; - } - test(); - assert(i == 3); -}
--- a/test/nested4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module nested4; - -void func(void delegate() dg) { - auto v = (){ - dg(); - }; -} - -void main() -{ - func({}); -}
--- a/test/nested5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module nested5; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 42; - - printf("Hello world %d\n", i++); - - class C - { - void func() - { - printf("Hello world %d\n", i++); - //i++; - } - } - - scope c = new C; - c.func(); - assert(i == 44); -}
--- a/test/nested6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -module nested6; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 42; - - printf("main() %d\n", i++); - - class C - { - void func() - { - printf("C.func() %d\n", i++); - - class C2 - { - void func2() - { - printf("C2.func2() %d\n", i++); - } - } - - { - scope c2 = new C2; - c2.func2(); - } - } - } - - scope c = new C; - c.func(); -}
--- a/test/nested7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -module nested7; -extern(C) int printf(char*, ...); - -void main() -{ - int i; - i = 52; - printf("i = %d\n", i); - - void func() - { - i++; - - void func2() - { - i++; - - void func3() - { - i++; - } - - func3(); - } - - func2(); - } - - func(); - - printf("i = %d\n", i); - assert(i == 55); -}
--- a/test/nested8.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -module nested8; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 1; - void func() - { - printf("func()\n"); - i++; - void func2() - { - printf(" func2()\n"); - int j = i + 1; - void func3() - { - printf(" func3()\n"); - j++; - printf(" done = %d\n", j); - } - func3(); - i = j; - printf(" done = %d\n", j); - } - func2(); - printf("done\n"); - } - func(); - printf("i == %d\n", i); - assert(i == 4); -}
--- a/test/nested9.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module nested9; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 42; - int func() - { - return i + 1; - } - int j = func(); - printf("j = %d\n", j); - assert(j == 43); -}
--- a/test/pointers.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module pointers; - -struct S -{ - long l; -} - -void main() -{ - int j = 42; - int* p = &j; - - auto t = *p; - *p ^= t; - - *p = ~t; - - S s; - S* sp = &s; - *sp = s; - s = *sp; -}
--- a/test/pt.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ - -extern(C) int printf(char*, ...); - -int main() -{ - char[16] s = void; - { - char[] sd = s; - { - s[0] = 'a'; - s[1] = 'b'; - s[2] = 'c'; - } - - printf("%p %p\n", s.ptr, sd.ptr); - printf("%c%c%c\n", s[0], s[1], s[2]); - } - - char[16] s1 = void; - char[16] s2 = void; - char[] d1 = s1; - - { - printf("%p\n%p\n%p\n", s1.ptr, s2.ptr, d1.ptr); - } - - int[16] arr; - - return 0; -}
--- a/test/ptrarith.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -extern(C) int printf(char*, ...); - -void main() -{ - printf("Pointer arithmetic test\n"); - int* p; - printf("0x%x\n", p); - assert(p++ is null); - assert(cast(size_t)p == 4); - printf("0x%x\n", p); - p--; - assert(p is null); - printf("0x%x\n", p); - int d = 4; - p+=d; - printf("0x%x\n", p); - assert(cast(size_t)p == 16); - d = 2; - p+=d; - printf("0x%x\n", p); - assert(cast(size_t)p == 0x18); - d = 6; - p-=d; - printf("0x%x\n", p); - assert(p is null); - printf(" SUCCESS\n"); -} - -void fill_byte_array(ubyte* a, size_t n, ubyte v) -{ - auto p = a; - auto end = a+n; - while (p !is end) - *p++ = v; -}
--- a/test/scope1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module scope1; -extern(C) int printf(char*, ...); -void main() -{ - printf("1\n"); - { - scope(exit) printf("2\n"); - } - printf("3\n"); -}
--- a/test/scope2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module scope2; -extern(C) int printf(char*, ...); -void main() -{ - scope(exit) printf("exit\n"); - scope(failure) printf("failure\n"); - scope(success) printf("success\n"); -}
--- a/test/scope3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module scope3; -extern(C) int printf(char*, ...); -void main() -{ - int i; - while (i < 10) { - scope(success) i++; - } - printf("%d\n", i); -}
--- a/test/scope4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module scope4; -int main() -{ - int i; - try - { - return i; - } - finally - { - //i = 1; - } -}
--- a/test/scope5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module scope5; - -int i; - -void func(int a, int b) -{ - i = 0; - { - scope(exit) i++; - if (a) { - scope(exit) i++; - if (b) return; - i++; - } - } - i++; -} - -void main() -{ - func(0,0); - assert(i == 2); - func(1,1); - assert(i == 2); - func(1,0); - assert(i == 4); -}
--- a/test/sieve.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* Eratosthenes Sieve prime number calculation. */ - -extern(C) int printf(char*, ...); - -bool flags[8191]; - -int main() -{ int i, prime, k, count, iter; - - printf("10 iterations\n"); - for (iter = 1; - iter <= 10; - iter++) - { - count = 0; - flags[] = true; - for (i = 0; i < flags.length; i++) - { if (flags[i]) - { - prime = i + i + 3; - k = i + prime; - while (k < flags.length) - { - flags[k] = false; - k += prime; - } - count += 1; - } - } - } - printf("%d primes\n", count); - return 0; -}
--- a/test/slices.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -module slices; - -void main() -{ - //char[] a = "hello world"; - //char[5] b = a[0..5]; - - //char* cp = a.ptr; - //char[] c = cp[0..1]; -} - -char[] first5(char[] str) -{ - char* p = str.ptr; - return p[0..5]; -} - -int[] one() -{ - static int i; - return (&i)[0..1]; -} - -void[] init() -{ -static char c; -return (&c)[0 .. 1]; -} - -void[] init2() - { static char c; - - return (cast(char *)&c)[0 .. 1]; - } \ No newline at end of file
--- a/test/sqrts.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -module sqrts; - -import tango.stdc.math; - -double sqrt(double d) -{ - return tango.stdc.math.sqrt(d); -} - -void main() -{ -}
--- a/test/static_ctor.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -extern(C) int printf(char*, ...); - -static this() -{ - printf("static this\n"); -} - -static ~this() -{ - printf("static ~this\n"); -} - -void main() -{ - printf("main\n"); -}
--- a/test/staticarrays.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -extern(C) int printf(char*, ...); - -void numbers() -{ - bool[8] bools; - char[8] chars; - byte[8] bytes; - short[8] shorts; - int[8] ints; - long[8] longs; - float[8] floats; - double[8] doubles; - real[8] reals; - { - bools[7] = true; - floats[7] = 3.14159265; - { - printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]); - printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]); - } - } -} - -struct S -{ - int i = 42; - void print() - { - printf("S.i = %d\n", i); - } -} - -class C -{ - int i; - this() - { - i = 3; - } - void print() - { - printf("C.i = %d\n", i); - } -} - -void refs() -{ - void*[5] voids; - S*[5] structs; - C[5] classes; - - { - voids[0] = cast(void*)0xA; - printf("void* = %p\n", voids[0]); - } - { - structs[0] = new S; - structs[0].print(); - delete structs[0]; - } - { - classes[0] = new C; - classes[0].print(); - delete classes[0]; - } -} - -void vals() -{ - S[5] structs; -} - -void main() -{ - numbers(); - refs(); - vals(); -}
--- a/test/staticvars.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module staticvars; - -int func() -{ - static int i; - return i++; -} - -void main() -{ - assert(func() == 0); - assert(func() == 1); -}
--- a/test/stdiotest.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -module stdiotest; - -import std.stdio; - -T typed(T)(T x) -{ - return x; -} - -void main() -{ - /*char[] str = "hello"; - writefln(str); - - writefln("hello world");*/ - - char[] fmt = "%s"; - writefln(2.0f); - - /*{writefln(typed!(byte)(1));} - {writefln(typed!(short)(2));} - {writefln(typed!(int)(3));} - {writefln(typed!(long)(-4));} - {writefln(typed!(ulong)(5));} - {writefln("%f", typed!(float)(6));} - {writefln("%f", typed!(double)(7));} - {writefln("%f", typed!(real)(8));}*/ -}
--- a/test/stdiotest2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module stdiotest2; -import std.stdio; -void main() -{ - int[4] v = [1,2,3,4]; - { - writefln("%s", v); - { - int[] dv = v; - {writefln("%s", dv);} - } - } - - { - writefln(v); - { - //int[] dv = v; - //{writefln(dv);} - } - } - //writefln(1,2,3,4.56,"hello",v); -}
--- a/test/strings1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module strings1; -extern(C) int printf(char*, ...); -void f(char[11] buffer) -{ - printf("%.*s\n", buffer.length, buffer.ptr); -} - -void main() -{ - char[11] buffer; - char[] hello = "hello world"; - {buffer[] = hello[];} - {f(buffer);} - {f("eleven char");} -}
--- a/test/strings2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module strings2; - -import std.string; -import std.stdio; - -void main() -{ - int i = 32; - auto str = format(i); - writefln(str); - - long l = 123123; - str = format(l); - writefln(str); -}
--- a/test/structinit.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -module structinit; - -import structinit2; - -struct S -{ - uint ui; - float f; - long l; - real r; -} - -S adef; - -S a = { 1, 2.0f }; -S b = { f:2.0f, l:42 }; - -Imp imp; - -void main() -{ - //assert(a == S.init); - //assert(b == S(0,3.14f,0,real.init)); -} -
--- a/test/structinit2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module structinit2; - -struct Imp -{ - int i; - long l; - float f; -} - -void main() -{ - Imp i; - assert(i.i == 0); - assert(i.l == 0L); - assert(i.f !<>= 0.0f); -}
--- a/test/structs.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -struct S -{ - int func() - { - return 42; - } -} - -void main() -{ - S s; - int i = s.func(); -}
--- a/test/structs2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module structs2; - -struct S -{ - int i; - char c; - S* s; - char[4] ca; -} - -void main() -{ -}
--- a/test/structs3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -module structs3; - -struct S -{ - char c; - float f; -} - -struct T -{ - S s; - long l; -} - -void main() -{ - T t; - float f = void; - float* fp = void; - {f = t.s.f;} - {t.s.f = 0.0;} - {fp = &t.s.f;} - {*fp = 1.0;} - {assert(t.s.f == 1.0);} - {assert(*(&t.s.f) == 1.0);} - {t.s.c = 'a';} - {assert(t.s.c == 'a');} - {t.l = 64;} - {assert(t.l == 64);} -}
--- a/test/structs4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -module structs4; - -struct S{ - int a; - T t; -} - -struct T{ - int b; - U u; -} - -struct U{ - int c; -} - -void main() -{ - S s; - s.a = 3; - s.t = T.init; - s.t.b = 4; - s.t.u = U.init; - s.t.u.c = 5; - //{assert(s.t.u.c == 5);} -}
--- a/test/structs5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -module structs5; - -void main() -{ - {S s = S();} - {T t = T(1);} - {U u = U();} -} - -struct S -{ -} - -struct T -{ - int i; -} - -struct U -{ - S s; - long l; -}
--- a/test/structs6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module structs6; - -struct S -{ - float f; -} - -void func(S s) -{ -} - -void main() -{ - func(S()); -}
--- a/test/structs7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module structs7; - -pragma(LLVM_internal, "notypeinfo") -struct S -{ - int i; - long l; -} - -void main() -{ - S s = void; - int i = s.i; - long l = s.l; -}
--- a/test/switch1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module switch1; - -void main() -{ - int i = 2; - int r; - switch (i) - { - case 1: r+=1; break; - case 2: r-=2; - case 3: r=3; break; - default: r=-1; - } - assert(r == 3); -}
--- a/test/switch2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module switch2; -extern(C) int printf(char*, ...); - -void main() -{ - int i = 2; - switch(i) - { - case 0: assert(0); - case 1,2: printf("hello world\n"); break; - default: assert(0); - } -}
--- a/test/switch3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -module switch3; -extern(C) int printf(char*, ...); - -void main() -{ - char[] str = "hello"; - int i; - switch(str) - { - case "world": - i = 1; - assert(0); - case "hello": - i = 2; - break; - case "a","b","c": - i = 3; - assert(0); - default: - i = 4; - assert(0); - } - assert(i == 2); - printf("SUCCESS\n"); -}
--- a/test/sync1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module sync1; - -void main() -{ - int i; - int j; - synchronized j = i; -}
--- a/test/templ1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module templ1; - -T func1(T)(T a) -{ - static T b = a; - return b; -} - -void main() -{ -}
--- a/test/templ2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -module templ2; -import templ1; - -void main() -{ - func1(1); -}
--- a/test/terms.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -module terms; - -void f() -{ - int i = 42; - if (i > 25) - return; - if (i < 25) { - return; - } - - if (i > 100) - return; - else - return; - - if (i < 1000) { - return; - } - else { - return; - } -} - -void main() -{ - int i = 42; - if (i > 25) - return; - if (i < 25) { - return; - } - - if (i > 100) - return; - else - return; - - if (i < 1000) { - return; - } - else { - return; - } -}
--- a/test/throw1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -module throw1; - -extern(C) int rand(); - -class C -{ -} - -void func(bool b) -{ - if (b) - throw new C; -} - -int main() -{ - bool b = true; - try - { - func(b); - } - catch(Object) - { - return 1; - } - return 0; -}
--- a/test/tuple1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module tuple1; - -template Tuple(T...) { - alias T Tuple; -} - -struct S -{ - int i; - long l; -} - -void main() -{ - S s = S(Tuple!(1,2L)); - assert(s.i == 1); - assert(s.l == 2); -}
--- a/test/typeinfo.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module typeinfo; -extern(C) int printf(char*, ...); - -void main() -{ - auto ti = typeid(int); - char[] str = ti.toString(); - printf("%.*s\n", str.length, str.ptr); - assert(str == "int"); -}
--- a/test/typeinfo10.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -module typeinfo10; - -struct S -{ - long l; - float f; - void* vp; - - hash_t toHash() - { - return l + cast(size_t)f; - } - - int opEquals(S s) - { - return (s.l == l) && (s.f == f); - } - - int opCmp(S a) - { - if (l == a.l) { - return (f < a.f) ? -1 : (f > a.f) ? 1 : 0; - } - return (l < a.l) ? -1 : 1; - } - - char[] toString() - { - return "S instance"; - } -} - -void main() -{ - S s=S(-1, 0); - S t=S(-1, 1); - S u=S(11,-1); - S v=S(12,13); - - { - assert(s == s); - assert(s != t); - assert(s != v); - assert(s < t); - assert(u > s); - assert(v > u); - } - - { - auto ti = typeid(S); - assert(ti.getHash(&s) == s.toHash()); - assert(ti.equals(&s,&s)); - assert(!ti.equals(&s,&t)); - assert(!ti.equals(&s,&v)); - assert(ti.compare(&s,&s) == 0); - assert(ti.compare(&s,&t) < 0); - assert(ti.compare(&u,&s) > 0); - assert(ti.compare(&v,&u) > 0); - { - auto tis = cast(TypeInfo_Struct)ti; - assert(tis.xtoString(&s) == s.toString()); - } - } -}
--- a/test/typeinfo11.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module typeinfo11; - -void main() -{ - int[4] a; - TypeInfo ti; - ti = typeid(typeof(a)); - assert(ti.next() is typeid(int)); - assert(ti.tsize() == 16); -}
--- a/test/typeinfo12.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -module typeinfo12; - -class C -{ -} - -void main() -{ -}
--- a/test/typeinfo13.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module typeinfo13; - -void main() -{ - float[long] aa; - auto ti = typeid(typeof(aa)); - assert(ti.toString() == "float[long]"); - assert(ti.next() is typeid(float)); - assert(ti.tsize() == size_t.sizeof); - auto aati = cast(TypeInfo_AssociativeArray)ti; - assert(aati.value is typeid(float)); - assert(aati.key is typeid(long)); -}
--- a/test/typeinfo2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module typeinfo2; - -void main() -{ - auto ti = typeid(float); - float f = 2.5; - hash_t fh = ti.getHash(&f); - assert(ti.next is null); - float g = 4.0; - ti.swap(&f,&g); - assert(f == 4.0 && g == 2.5); - assert(fh == *cast(uint*)(&g)); - assert(!ti.flags); -}
--- a/test/typeinfo3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module typeinfo3; - -typedef int int_t; - -void main() -{ - /*int_t i; - auto ti = typeid(typeof(i)); - printf("%s\n",ti.toString.ptr); - assert(ti.toString() == "typeinfo3.int_t"); - assert(ti.next !is null); - assert(ti.next.toString() == "int"); - assert(ti.init is null);*/ -}
--- a/test/typeinfo4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module typeinfo4; - -void main() -{ - auto ti = typeid(void*); - assert(ti.toString() == "void*"); - assert(ti.tsize() == size_t.sizeof); - void* a = null; - void* b = a + 1; - assert(ti.compare(&a,&b) < 0); -}
--- a/test/typeinfo5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -module typeinfo5; - -void main() -{ - enum E : uint { - A,B,C - } - auto ti = typeid(E); - assert(ti.next() is typeid(uint)); - assert(ti.init is null); -}
--- a/test/typeinfo6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -module typeinfo6; - -void main() -{ - auto ti = typeid(int[]); - assert(ti.toString() == "int[]"); - assert(ti.next() is typeid(int)); -}
--- a/test/typeinfo7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module typeinfo7; -extern(C) int printf(char*, ...); -int func(long) -{ - return 0; -} - -void main() -{ - auto ti = typeid(typeof(func)); - auto s = ti.toString; - printf("%.*s\n", s.length, s.ptr); - assert(s == "int()"); -}
--- a/test/typeinfo8.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module typeinfo8; -extern(C) int printf(char*, ...); -struct S -{ - void func() - { - } -} - -void main() -{ - S a; - auto ti = typeid(typeof(&a.func)); - auto s = ti.toString; - printf("%.*s\n", s.length, s.ptr); - assert(s == "void delegate()"); -}
--- a/test/typeinfo9.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module typeinfo9; - -typedef int int_t = 42; - -void main() -{ - auto i = typeid(int_t).init; - assert(i.length == int_t.sizeof); - assert(*cast(int_t*)i.ptr == 42); -}
--- a/test/union1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module union1; - -pragma(LLVM_internal, "notypeinfo") -union U -{ - float f; - int i; -} - -void main() -{ - float f = 2; - U u = U(f); - assert(u.i == *cast(int*)&f); -}
--- a/test/union2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module union2; - -pragma(LLVM_internal, "notypeinfo") -union U -{ - float f; - long l; -} - -U u; - -void main() -{ - assert(u.f !<>= 0); - { - uint* p = 1 + cast(uint*)&u; - {assert(*p == 0);} - } -}
--- a/test/union3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -module union3; - -pragma(LLVM_internal, "notypeinfo") -union vec3 -{ - struct { float x,y,z; } - float[3] xyz; -} - -void main() -{ - vec3 v; - assert(&v.y is &v.xyz[1]); -}
--- a/test/union4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -module union4; - -pragma(LLVM_internal, "notypeinfo") -union U { - struct { float x,y,z; } - float[3] xyz; -} - -void main() { - const float[3] a = [1f,2,3]; - U u = U(1,2,3); - assert(u.xyz == a); - assert(u.x == 1); - assert(u.y == 2); - assert(u.z == 3); -}
--- a/test/union5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -module union5; - -pragma(LLVM_internal, "notypeinfo") -{ - union S - { - T t; - U u; - uint i; - struct { - ushort sl,sh; - } - } - - struct T - { - int i; - } - - struct U - { - float f; - } -} - -void main() -{ - S s; - assert(s.t.i == 0); - assert(s.u.f == 0); - s.t.i = -1; - assert(s.i == 0xFFFF_FFFF); - float f = 3.1415; - s.u.f = f; - uint pi = *cast(uint*)&f; - assert(s.i == pi); - assert(s.sl == (pi&0xFFFF)); - assert(s.sh == (pi>>>16)); -}
--- a/test/union6.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -module union6; - -pragma(LLVM_internal, "notypeinfo") { - struct S - { - byte a; - byte b; - } - union U - { - byte a; - byte b; - S c; - } -} - -void main() -{ - U u; - auto a = u.c.b; - //auto c = u.s.l; -}
--- a/test/union7.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -module union7; - -pragma(LLVM_internal, "notypeinfo") -struct Union -{ - union { - double g; - struct { - short s1,s2,s3,s4; - } - } - union { - float f; - long l; - } -} - -Union a = { f:4f }; -Union b = { 3.0, f:2 }; -Union c = { l:42, g:2.0 }; -Union d = { s2:3 }; -Union e = { s1:3, s4:4, l:5 }; - -void main() -{ - assert(a.f == 4f); - assert(a.g !<>= 0.0); - assert((a.l>>>32) == 0); - - assert(b.g == 3.0); - assert(b.f == 2f); - - assert(c.l == 42); - assert(c.g == 2.0); - - assert(d.s1 == 0); - assert(d.s2 == 3); - assert(d.s3 == 0); - assert(d.s4 == 0); - {assert(d.f !<>= 0f);} - {} - assert(e.s1 == 3); - assert(e.s2 == 0); - assert(e.s3 == 0); - {assert(e.s4 == 4);} - {} - assert(e.l == 5); -}
--- a/test/unittest1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -module unittest1; - -void main() -{ -} - -unittest -{ - printf("hello\n"); -}
--- a/test/unrolled.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -module unrolled; - -extern(C) int printf(char*, ...); - -void test(T...)(T t) { - foreach (value; t) { - printf("%d\n", value); - if (value == 2) - break; - } -} - -void main() { - test(1,4,3); -}
--- a/test/v2d.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -extern(C) int printf(char*, ...); - -struct V2D(T) -{ - T x,y; - - T dot(ref V2D v) - { - return x*v.x + y*v.y; - } - - V2D opAdd(ref V2D v) - { - return V2D(x+v.x, y+v.y); - } -} - -alias V2D!(float) V2Df; - -void main() -{ - printf("V2D test\n"); - auto up = V2Df(0.0f, 1.0f); - auto right = V2Df(1.0f, 0.0f); - assert(up.dot(right) == 0.0f); - auto upright = up + right; - assert(upright.x == 1.0f && upright.y == 1.0f); - auto copy = upright; - copy.x++; - assert(copy.x > upright.x); - printf(" SUCCESS\n"); -}
--- a/test/vararg1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -module vararg1; - -import tango.stdc.stdarg; - -extern(C) int add(int n, ...) -{ - va_list ap=void; - va_start(ap, n); - int r; - for (int i=0; i<n; i++) - r += va_arg!(int)(ap); - va_end(ap); - return r; -} - -void main() -{ - int i = add(4,1,2,3,4); - assert(i == 10); -}
--- a/test/vararg2.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module vararg2; - -void func(...) -{ - assert(_arguments.length == 2); - assert(_arguments[0] is typeid(int)); - int a = *cast(int*)_argptr; - _argptr += int.sizeof; - assert(_arguments[1] is typeid(int)); - a += *cast(int*)_argptr; - _argptr += int.sizeof; - assert(a == 3); -} - -void main() -{ - func(1,2); -}
--- a/test/vararg3.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -module vararg3; - -import tango.core.Vararg; - -void func(...) -{ - assert(_arguments.length == 3); - assert(_arguments[0] is typeid(int)); - assert(_arguments[1] is typeid(float)); - assert(_arguments[2] is typeid(long)); - assert(va_arg!(int)(_argptr) == 4); - assert(va_arg!(float)(_argptr) == 2.5f); - assert(va_arg!(long)(_argptr) == 42L); -} - -void main() -{ - func(4, 2.5f, 42L); -}
--- a/test/vararg4.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -module vararg4; -import tango.core.Vararg; -extern(C) int printf(char*, ...); - -void vafunc(...) -{ - foreach(i,v; _arguments) { - if (typeid(byte) == v) { - printf("byte(%d)\n", va_arg!(byte)(_argptr)); - } - else if (typeid(short) == v) { - printf("short(%d)\n", va_arg!(short)(_argptr)); - } - else if (typeid(int) == v) { - printf("int(%d)\n", va_arg!(int)(_argptr)); - } - else if (typeid(long) == v) { - printf("long(%ld)\n", va_arg!(long)(_argptr)); - } - else if (typeid(float) == v) { - printf("float(%f)\n", va_arg!(float)(_argptr)); - } - else if (typeid(double) == v) { - printf("double(%f)\n", va_arg!(double)(_argptr)); - } - else if (typeid(real) == v) { - printf("real(%f)\n", va_arg!(real)(_argptr)); - } - else - assert(0, "unsupported type"); - } -} - -void main() -{ - vafunc(byte.max,short.max,1,2,3,4L,5.0f,6.0,cast(real)7); -}
--- a/test/vararg5.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -module vararg5; -import tango.core.Vararg; -extern(C) int printf(char*, ...); -void func(...) -{ - char[] str = va_arg!(char[])(_argptr); - {printf("%.*s\n", str.length, str.ptr);} -} -void main() -{ - char[] str = "hello"; - func(str); -}
--- a/test/virtcall.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -module virtcall; - -extern(C) int printf(char*, ...); - -class C -{ - override char[] toString() - { - return "overridden"; - } -} - -void main() -{ - C c = new C; - auto s = c.toString(); - printf("%.*s\n", s.length, s.ptr); -}
--- a/test/with1.d Sun Jul 13 02:04:25 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -module with1; -struct S -{ - int i; - float f; -} -void main() -{ - S s; - with(s) - { - i = 0; - f = 3.5; - } - assert(s.i == 0); - assert(s.f == 3.5); -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/a.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +module a; + +extern(C) int printf(char*, ...); + +int i = 42; + +void main() +{ + int j; + j = i; + int* p; + p = &j; + int k = *p; + assert(k == 42); + + byte b = -1; + int i = b; + assert(i == -1); + + int* p2 = p; + + printf("Done\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/a_1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,34 @@ +class Foo +{ + this(int j) + { + i = pi = j; + } + + int i; + +private: + + int pi; +} + +class Bar : Foo +{ + this(int j) + { + super(j); + baz = 42; + } + + int baz; +} + +void func() +{ + auto bar = new Bar(12); +} + +void main() +{ + func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module aa1; + +void main() +{ + int[int] aai; + assert(aai is null); + aai[0] = 52; + assert(aai !is null); + int i = aai[0]; + assert(i == 52); + aai[32] = 123; + int j = aai[32]; + assert(i == 52); + assert(j == 123); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa1_1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module tangotests.aa1_1; + +extern(C) int printf(char*,...); + +void main() +{ + int[int] map; + map[1] = 1; + map[10] = 1; + map[11] = 11; + map[14] = 41; + map[21] = 12; + map[23] = 32; + map[32] = 23; + map[201] = 102; + foreach(k,v; map) + { + printf("%d:%d ", k,v); + } + printf("\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module aa2; + +void main() +{ + long[float] aa; + long* p = 2.0f in aa; + assert(!p); + aa[4f] = 23; + p = 4f in aa; + assert(p); + assert(*p == 23); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa2_1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module tangotests.aa2_1; + +int main() +{ + int[cdouble] x; + cdouble d=22.0+0.0i; + x[d] = 44; + if(44 != x[d]){ + assert(0); + } + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module aa3; + +extern(C) int printf(char*, ...); +alias char[] string; + +void main() +{ + int[string] aa; + {aa["hello"] = 1;} + {int* p = "" in aa;} + aa[" worl"] = 2; + aa["d"] = 3; + aa["thisisgreat"] = 10; + int sum; + string cat; + { + foreach(k,v;aa) + { + printf("int[%.*s] = %d\n", k.length, k.ptr, v); + sum += v; + cat ~= k; + } + } + assert(sum == 16); + printf("cat = %.*s\n", cat.length, cat.ptr); + assert(cat.length == 22); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +module aa4; + +void main() +{ + int[int] aa; + aa = addkey(aa,42,12); + int* p = haskey(aa,42); + assert(p && *p == 12); +} + +int[int] addkey(int[int] aa, int key, int val) +{ + aa[key] = val; + return aa; +} + +int* haskey(int[int] aa, int key) +{ + return key in aa; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module aa5; + +void main() +{ + int[int] aa; + aa[42] = 1; + int i = aa[42]; + assert(i == 1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/aa6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module aa6; + +extern(C) int printf(char*, ...); + +void main() +{ + int[int] aa; + aa = [1:1, 2:4, 3:9, 4:16]; + printf("---\n"); + foreach(int k, int v; aa) + printf("aa[%d] = %d\n", k, v); + aa.rehash; + printf("---\n"); + foreach(int k, int v; aa) + printf("aa[%d] = %d\n", k, v); + size_t n = aa.length; + assert(n == 4); + int[] keys = aa.keys; + assert(keys[] == [1,2,3,4][]); + int[] vals = aa.values; + assert(vals[] == [1,4,9,16][]); + aa.remove(3); + printf("---\n"); + foreach(int k, int v; aa) + printf("aa[%d] = %d\n", k, v); + assert(aa.length == 3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/align1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module tangotests.align1; + +extern(C) int printf(char*, ...); + +struct TLA +{ + char[3] tla; + char[] toString() { return tla; } + void dump() + { + printf("%.*s\n", 3, tla.ptr); + } +} + +void main() +{ + TLA fbi = TLA("FBI"); + fbi.dump(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/alignment.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module alignment; + +align(1) struct S +{ + ubyte b; + int i; + ubyte[2] b2; + long l; + real r; +} + +void main() +{ + byte b; + short s; + int i; + long l; + float f; + double d; + real r; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/alloca1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module alloca1; + +pragma(LLVM_internal, "alloca") +void* alloca(uint); + +extern(C) int printf(char*, ...); + +void main() +{ + int n = 16; + int* p = cast(int*)alloca(n*int.sizeof); + int[] a = p[0..n]; + a[] = 0; + foreach(i,v; a) { + printf("a[%2d] = %d\n", i, v); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrayinit.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module arrayinit; +float[4] ftable = [1,2,3,4]; +int[8] itable = [3:42,6:123]; + +private uint[7] crc32_table = [0x00000000,0x77073096,0xee0e612c,0x990951ba,0x076dc419,0x706af48f,0xe963a535]; + +void main() +{ + assert(crc32_table[3] == 0x990951ba); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,43 @@ +module arrays1; + +extern(C) int printf(char*, ...); + +void integer() +{ + auto arr = new int[16]; + arr[1] = 42; + arr[6] = 555; + print_int(arr); + delete arr; +} + +void floating() +{ + auto arr = new float[6]; + arr[1] = 3.14159265; + arr[3] = 1.61803399; + print_float(arr); + delete arr; +} + +void print_int(int[] arr) +{ + printf("arr[%lu] = [", arr.length); + for (auto i=0; i<arr.length; i++) + printf("%d,", arr[i]); + printf("\b]\n"); +} + +void print_float(float[] arr) +{ + printf("arr[%lu] = [", arr.length); + for (auto i=0; i<arr.length; i++) + printf("%f,", arr[i]); + printf("\b]\n"); +} + +void main() +{ + integer(); + floating(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays10.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module arrays10; + +void main() +{ + int[] a = new int[10]; + a[] = 3; +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays11.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,51 @@ +module arrays11; + +void ints() +{ + int[] a = [1,2,3,4,5,6]; + {assert(a == a);} + + int[] b = [4,5,6,7,8,9]; + {assert(a != b);} + {assert(a[3..$] == b[0..3]);} +} + +void floats() +{ + float[] a = [1.0f, 2.0f, 3.0f, 4.0f]; + {assert(a == a);} + + float[] b = [2.0f, 3.0f, 5.0f]; + {assert(a != b);} + {assert(a[1..3] == b[0..2]);} +} + +struct S +{ + int i; + int j; + + int opEquals(S s) + { + return (i == s.i) && (j == s.j); + } +} + +void structs() +{ + S[] a = [S(0,0), S(1,0), S(2,0), S(3,0)]; + {assert(a == a);} + S[] b = [S(0,1), S(1,0), S(2,0), S(3,1)]; + {assert(a != b);} + {assert(a[1..3] == b[1..3]);} + + S[2] c = [S(2,0), S(3,1)]; + {assert(c == b[2..$]);} +} + +void main() +{ + ints(); + floats(); + structs(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays12.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module arrays12; + +void ints() +{ + int[3] a = [1,2,3]; + int[3] b = [2,3,4]; + int[3] c = [2,5,0]; + {assert(a < b);} + {assert(b > a);} + {assert(a < c);} + {assert(c > a);} + {assert(b < c);} + {assert(c > b);} +} + +void main() +{ + ints(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays13.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module arrays13; + +extern(C) int printf(char*, ...); + +void main() +{ + char[] a = "hello"; + + assert(a > "hel"); + assert(a >= "hel"); + assert(a < "helloo"); + assert(a <= "helloo"); + assert(a > "betty"); + assert(a >= "betty"); + assert(a == "hello"); + assert(a <= "hello"); + assert(a >= "hello"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays14.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module arrays14; + +void main() +{ + auto s = "hello world"; + auto d = s.dup; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays15.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,43 @@ +module arrays15; + +extern(C) int printf(char*, ...); + +void integer() +{ + auto arr = new int[16]; + arr[1] = 42; + arr[6] = 555; + print_int(arr); + delete arr; +} + +void floating() +{ + auto arr = new float[6]; + arr[1] = 3.14159265; + arr[3] = 1.61803399; + print_float(arr); + delete arr; +} + +void print_int(int[] arr) +{ + printf("arr[%lu] = [", arr.length); + for (auto i=0; i<arr.length; i++) + printf("%d,", arr[i]); + printf("\b]\n"); +} + +void print_float(float[] arr) +{ + printf("arr[%lu] = [", arr.length); + for (auto i=0; i<arr.length; i++) + printf("%f,", arr[i]); + printf("\b]\n"); +} + +void main() +{ + integer(); + floating(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays16.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ +module tangotests.arrays2; + +void main() +{ + intarrays!(byte)(); + intarrays!(ubyte)(); + intarrays!(short)(); + intarrays!(ushort)(); + intarrays!(int)(); + intarrays!(uint)(); + intarrays!(long)(); + intarrays!(ulong)(); +} + +void intarrays(T)() +{ + T[] ia = [cast(T)1,2,3,4]; + T[] ib = [cast(T)1,2,3,4]; + T[] ic = [cast(T)1,2,3]; + T[] id = [cast(T)1,2,3,4,5]; + + assert(ia == ia); + assert(ia == ib); + assert(ia != ic); + assert(ia != id); + assert(ia > ic); + assert(ia !< ic); + assert(ia < id); + assert(ia !> id); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays17.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,6 @@ +module tangotests.arrays3; + +void main() +{ + const char[2][2] id = [1: "ab"]; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays18.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module tangotests.arrays4; + +struct Str { int a,b; } +void main() { + Str[] arr = new Str[64]; + + auto tmp = Str(1,2); + arr[] = tmp; + assert(arr[0].a == 1); + assert(arr[0].b == 2); + assert(arr[13].a == 1); + assert(arr[13].b == 2); + assert(arr[42].a == 1); + assert(arr[42].b == 2); + assert(arr[63].a == 1); + assert(arr[63].b == 2); + + arr[] = Str(3,4); + assert(arr[0].a == 3); + assert(arr[0].b == 4); + assert(arr[13].a == 3); + assert(arr[13].b == 4); + assert(arr[42].a == 3); + assert(arr[42].b == 4); + assert(arr[63].a == 3); + assert(arr[63].b == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +char[] get() +{ + return "hello"; +} + +void param(char[] s) +{ +} + +void refparam(ref char[] s) +{ +} + +void main() +{ + char[] dstr = get(); + param(dstr); + refparam(dstr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module arrays3; + +void main() +{ + int[] arr; + {arr = new int[25];} + {assert(arr.length == 25);} + {arr.length = arr.length + 5;} + {assert(arr.length == 30);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module arrays4; + +void main() +{ + int[] arr; + arr ~= 3; + assert(arr.length == 1); + assert(arr[0] == 3); + arr ~= 5; + assert(arr.length == 2); + assert(arr[0] == 3); + assert(arr[1] == 5); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module arrays5; +void main() +{ + auto arr = new float[5]; + {arr[4] = 1f;} + {assert(arr[0] !<>= 0f);} + {assert(arr[1] !<>= 0f);} + {assert(arr[2] !<>= 0f);} + {assert(arr[3] !<>= 0f);} + {assert(arr[4] == 1f);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,6 @@ +module arrays6; + +void main() +{ + int[4] a = [1,2,3,4]; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,32 @@ +module arrays7; + +extern(C) int printf(char*, ...); + +pragma(LLVM_internal, "notypeinfo") +struct S +{ + int i; + float f; + long l; + + void print() + { + printf("%d %f %lx\n", i, f, l); + } +} + +void main() +{ + S[] arr; + S s; + assert(arr.length == 0); + arr ~= s; + assert(arr.length == 1); + arr ~= S(1,2.64,0xFFFF_FFFF_FFFF); + assert(arr.length == 2); + arr[0].print(); + arr[1].print(); + assert(arr[1].i == 1); + assert(arr[1].f > 2.63 && arr[1].f < 2.65); + assert(arr[1].l == 0xFFFF_FFFF_FFFF); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module arrays8; + +extern(C) int printf(char*, ...); + +void main() +{ + char[] a = "hello "; + printf(" \"%s\".length = %u\n", a.ptr, a.length); + char[] b = "world"; + printf(" \"%s\".length = %u\n", b.ptr, b.length); + char[] c = a ~ b; + printf("After 'a ~ b':\n"); + printf(" \"%.*s\".length = %u\n", a.length, a.ptr, a.length); + printf(" \"%.*s\".length = %u\n", b.length, b.ptr, b.length); + printf(" \"%.*s\".length = %u\n", c.length, c.ptr, c.length); + assert(c.length == a.length + b.length); + assert(c !is a); + assert(c !is b); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/arrays9.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module arrays9; + +const int[] g = [1,2,3,4]; + +void main() +{ + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,31 @@ +module asm1; + +extern(C) int printf(char*, ...); + +void main() +{ + version(D_InlineAsm_X86) + { + int x; + asm + { + mov EAX, 42; + mov x, EAX; + } + printf("x = %d\n", x); + } + else version(D_InlineAsm_X86_64) + { + long x; + asm + { + mov RAX, 42L; + mov x, RAX; + } + printf("x = %ld\n", x); + } + else + { + static assert(0, "no inline asm for this platform yet"); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm1_1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module tangotests.asm1_1; + +extern(C) int printf(char*, ...); + +int main() +{ + int i = 12; + int* ip = &i; + printf("%d\n", i); + asm + { + mov EBX, ip; + mov EAX, [EBX]; + add EAX, 8; + mul EAX, EAX; + mov [EBX], EAX; + } + printf("%d\n", i); + assert(i == 400); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module tangotests.asm2; + +extern(C) int printf(char*, ...); + +int main() +{ + int i = 40; + int j = 2; + asm + { + mov EAX, i; + mov EBX, j; + add EAX, EBX; + mov i, EAX; + } + printf("42 = %d\n", i); + assert(i == 42); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module tangotests.asm3; + +extern(C) int printf(char*, ...); + +void main() +{ + char* fmt = "Hello D World\n"; + printf(fmt); + asm + { + push fmt; + call printf; + pop EAX; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +module tangotests.asm4; + +extern(C) int printf(char*,...); + +void main() +{ + char* fmt = "yay!\n"; + asm + { + jmp L2; + L1:; + jmp L3; + L2:; + jmp L1; + L3:; + push fmt; + call printf; + pop EAX; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +module tangotests.asm5; + +extern(C) int printf(char*, ...); + +void main() +{ + int i = func(); + printf("%d\n", i); + assert(i == 42); +} + +int func() +{ + asm + { + naked; + mov EAX, 42; + ret; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +extern(C) int printf(char*, ...); + +void main() +{ + int a,b,c; + a = int.max-1; + b = 1; + asm + { + mov EAX, a; + mov ECX, b; + add EAX, ECX; + jo Loverflow; + mov c, EAX; + } + + printf("c == %d\n", c); + assert(c == a+b); + return; + +Loverflow: + assert(0, "overflow"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/asm7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,41 @@ +module tangotests.asm7; + +// test massive label collisions (runtime uses Loverflow too) + +void main() +{ + int a = add(1,2); + int s = sub(1,2); + assert(a == 3); + assert(s == -1); +} + +int add(int a, int b) +{ + int res; + asm + { + mov EAX, a; + add EAX, b; + jo Loverflow; + mov res, EAX; + } + return res; +Loverflow: + assert(0, "add overflow"); +} + +int sub(int a, int b) +{ + int res; + asm + { + mov EAX, a; + sub EAX, b; + jo Loverflow; + mov res, EAX; + } + return res; +Loverflow: + assert(0, "sub overflow"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/assign.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +module assign; + +// this is taken from std.intrinsic from gdc + +int mybtc(uint *p, uint bitnum) +{ + uint * q = p + (bitnum / (uint.sizeof*8)); + uint mask = 1 << (bitnum & ((uint.sizeof*8) - 1)); + int result = *q & mask; + *q ^= mask; + return result ? -1 : 0; +} + +void main() +{ + uint i = 0xFFFF_FFFF; + int r = mybtc(&i, 31); + assert(r); + assert(i == 0x7FFF_FFFF); + r = mybtc(&i, 31); + assert(!r); + assert(i == 0xFFFF_FFFF); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/b.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,25 @@ +module b; + +extern(C) int printf(char*, ...); + +struct S +{ + int i; + float[4] f; +} + +void main() +{ + S s; + int i = s.i; + int* p = &s.i; + *p = 42; + printf("%d == %d\n", *p, s.i); + + float* f = &s.f[0]; + printf("%f == %f\n", *f, s.f[0]); + *f = 3.1415; + printf("%f == %f\n", *f, s.f[0]); + s.f[0] = 123.456; + printf("%f == %f\n", *f, s.f[0]); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bitops.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,78 @@ + +extern(C) int printf(char*, ...); + +void main() +{ + printf("Bitwise operations test\n"); + { ushort a = 0xFFF0; + ushort b = 0x0FFF; + assert((a&b) == 0x0FF0); + assert((a|b) == 0xFFFF); + assert((a^b) == 0xF00F); + } + { ubyte a = 0xFF; + ulong b = 0xFFFF_FFFF_FFFF_FFF0; + assert((a&b) == 0xF0); + } + { ushort s = 0xFF; + assert((s<<1) == s*2); + assert((s>>>1) == s/2); + } + { int s = -10; + assert((s>>1) == -5); + assert((s>>>1) != -5); + } + + { ushort a = 0xFFF0; + ushort b = 0x0FFF; + auto t = a; + t &= b; + assert(t == 0x0FF0); + t = a; + t |= b; + assert(t == 0xFFFF); + t = a; + t ^= b; + assert(t == 0xF00F); + } + { ubyte a = 0xFF; + ulong b = 0xFFFF_FFFF_FFFF_FFF0; + a &= b; + assert(a == 0xF0); + } + { ushort s = 0xFF; + auto t = s; + t <<= 1; + assert(t == (s*2)); + t = s; + t >>>= 1; + assert(t == s/2); + } + { int s = -10; + auto t = s; + t >>= 1; + assert(t == -5); + t = s; + t >>>= 1; + assert(t != -5); + } + { struct S + { + uint i; + ulong l; + }; + S s = S(1,4); + auto a = s.i | s.l; + assert(a == 5); + s.i = 0xFFFF_00FF; + s.l = 0xFFFF_FFFF_0000_FF00; + s.l ^= s.i; + assert(s.l == ulong.max); + s.i = 0x__FFFF_FF00; + s.l = 0xFF00FF_FF00; + s.i &= s.l; + assert(s.i == 0x00FF_FF00); + } + + printf(" SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,5 @@ +module bug1; +struct Foo { Foo opSub(ref Foo b) { return Foo(); } } +struct Bar { Foo whee; } +void test(ref Bar moo) { Foo nngh; auto plonk = nngh - moo.whee; } +void main() { Bar bar; test(bar); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug10.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module bug10; +extern(C) int printf(char*, ...); + +class C +{ + char[] msg; + + this() + { + } + this(char[] msg) + { + this.msg = msg; + } +} + +void main() +{ + auto c = new C(); + c.msg = "world"; + auto b = new C("hello"); + printf("%.*s\n", b.msg.length, b.msg.ptr); + printf("%.*s\n", c.msg.length, c.msg.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug11.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module bug11; + +struct S +{ + int[4] arr; +} + +S s=S([1,2,3,4]); + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug12.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,6 @@ +module bug12; + +void main() +{ + const char[] name="y"; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug13.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module bug13; + +void func1(ubyte[4]* arr) +{ + ubyte* b = &(*arr)[0]; + func2(&(*arr)[1]); +} + +void func2(ubyte* ptr) +{ + assert(*ptr == 2); +} + +void main() +{ + ubyte[4] arr = [cast(ubyte)1,2,3,4]; + func1(&arr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug14.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module bug14; + +void main() +{ + int[] arr = new int[12]; + int i = arr[0]; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug15.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module bug15; + +bool bool1(bool b) { + if (b) return true; + else return false; +} + +bool bool2(bool b) { + if (b) {return true;} + else {return false;} +} + +void main() +{ + assert(bool1(true)); + assert(!bool2(false)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug16.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module bug16; + +void func(long val) +{ + val >>= 32; +} + +void main() +{ + func(64L); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug17.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module bug17; + +struct Vec +{ + Vec opAdd(ref Vec b) { return Vec(); } + Vec opMul(double a) { return Vec(); } +} +void main() +{ + Vec foo; + Vec bar; + auto whee=foo+bar*1f; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug18.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module bug18; + +struct S { + int[9] i; +} + +void main() +{ + int[9] i; + auto s = S(i); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug19.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module bug19; + +void main() +{ + auto dg = (int i) { return i*2; }; + assert(dg(2) == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,4 @@ +module bug2; +struct Vec { Vec barf() { return Vec(); } } +class test { this(Vec whee) { } } +void main() { Vec whee; new test(whee.barf()); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug20.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module bug20; +extern(C) int printf(char*, ...); + +void func(void delegate() dg) +{ + dg(); +} + +void main() +{ + int i = 42; + void delegate() dg = { + i++; + }; + printf("i = %d\n",i); + func(dg); + printf("i = %d\n",i); + assert(i == 43); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug21.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module bug21; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 42; + auto a = { + int j = i*2; + auto b = { + return j; + }; + return b(); + }; + int i2 = a(); + printf("%d\n", i2); + assert(i2 == i*2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug22.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module bug22; +extern(C) int printf(char*, ...); + +void main() +{ + int i; + delegate { + i = 42; + }(); + printf("%d\n", i); + assert(i == 42); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug23.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module bug23; +extern(C) int printf(char*, ...); + +void main() +{ + int i; + delegate { + i++; + delegate { + i++; + }(); + }(); + printf("%d\n", i); + assert(i == 2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug24.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module bug24; +extern(C) int printf(char*, ...); + +struct S +{ + long l; + float f; +} + +void main() +{ + S s = S(3L,2f); + delegate { + S t = S(4L, 1f); + delegate { + s.l += t.l; + s.f += t.f; + }(); + }(); + printf("%lu %f\n", s.l, s.f); + assert(s.l == 7 && s.f == 3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug25.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module bug25; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 2; + delegate { + i = i*i; + i += i*i; + }(); + printf("%d\n", i); + assert(i == 20); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug26.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module bug26; + +extern int i; + +void main() +{ + int j = i; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug27.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module bug27; + +int func(int a, int b) +{ + if (a == b) + return 0; + else if (a < b) + return -1; + else + return 1; +} + +void main() +{ + int i = func(3,4); + assert(i == -1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug28.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module bug28; + +void main() +{ + char[] a = "hello"; + char[] b = "hello"; + char[] c = "world"; + char[] d = "somethingelse"; + assert(a == a); + assert(a == b); + assert(a != c); + assert(b != c); + assert(a != d); + assert(b != d); + assert(c != d); + assert(d == d); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug29.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module bug29; +extern(C) int printf(char*, ...); + +void main() +{ + int[] arr16 = new int[4]; + { + void[] arr = arr16; + { + printf("%lu\n", arr.length); + { + assert(arr.length == 16); + } + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module bug3; + +struct S +{ + int[] arr; + char[5] ch; +} + +class C +{ + int[] arr; + char[4] crs; +} + +void main() +{ + S s; + s.arr = new int[5]; + s.arr[1] = 32; + int i; + i = s.arr[0]; + //assert(s.arr[0] == 0); + //assert(s.arr[1] == 32); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug30.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module bug30; + +void main() +{ + int[] a = new int[4]; + {a[0] = 1; + a[1] = 2; + a[2] = 3; + a[3] = 4;} + int[] b = new int[4]; + {b[0] = 1; + b[1] = 2; + b[2] = 3; + b[3] = 4;} + int[] c = new int[4]; + {c[0] = 1; + c[1] = 2; + c[2] = 4; + c[3] = 3;} + {assert(a == b);} + {assert(a != c);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug32.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module bug32; +extern(C) int printf(char*, ...); + +struct S +{ + char[] getName() { return name; } + char[] name; +} + +void main() +{ + S s = S("Kyle"); + char[] name = s.name; + printf("%.*s\n", name.length, name.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug33.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +module bug33; + +extern(C) int memcmp(void*,void*,size_t); + +private int string_cmp(char[] s1, char[] s2) +{ + auto len = s1.length; + if (s2.length < len) + len = s2.length; + int result = memcmp(s1.ptr, s2.ptr, len); + if (result == 0) + result = cast(int)(cast(ptrdiff_t)s1.length - cast(ptrdiff_t)s2.length); + return result; +} + +struct S +{ + char[] toString() + { + return "S"; + } +} + +int func() +{ + S a,b; + return string_cmp(a.toString(),b.toString()); +} + +void main() +{ + assert(func() == 0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug34.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,55 @@ +module bug34; + +class MyTypeInfo_Pointer +{ + char[] toString() { return m_next.toString() ~ "*"; } + + int opEquals(Object o) + { TypeInfo_Pointer c; + + return this is o || + ((c = cast(TypeInfo_Pointer)o) !is null && + this.m_next == c.m_next); + } + + hash_t getHash(void *p) + { + return cast(uint)*cast(void* *)p; + } + + int equals(void *p1, void *p2) + { + return cast(int)(*cast(void* *)p1 == *cast(void* *)p2); + } + + int compare(void *p1, void *p2) + { + if (*cast(void* *)p1 < *cast(void* *)p2) + return -1; + else if (*cast(void* *)p1 > *cast(void* *)p2) + return 1; + else + return 0; + } + + size_t tsize() + { + return (void*).sizeof; + } + + void swap(void *p1, void *p2) + { void* tmp; + tmp = *cast(void**)p1; + *cast(void**)p1 = *cast(void**)p2; + *cast(void**)p2 = tmp; + } + + TypeInfo next() { return m_next; } + uint flags() { return 1; } + + TypeInfo m_next; +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug35.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module bug35; + +private const char[10] digits = "0123456789"; /// 0..9 + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug36.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module bug36; + +void main() +{ + int[] a; + void* cp = cast(void*)a; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug37.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module bug37; + +void main() +{ + char[] a = "hello"; + assert(a !is null); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug38.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module bug38; + +void func(int* p) +{ + p++; +} + +void main() +{ + int i; + func(&i); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug39.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module bug39; + +struct S +{ + long l; +} + +void main() +{ + S s; + s.l = 23; + void* p = &s; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module bug4; + +int func(int i) +{ + i += 2; + i -= 3; + return i; +} + +void main() +{ + assert(func(4) == 3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug40.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module bug40; + +char[] func(void* p) +{ + return null; +} + +void main() +{ + char[] function(void*) fp = &func; + assert(fp(null) is null); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug41.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module bug41; + +void main() +{ + char[] a = "hello world"; + char* ap = a.ptr; + size_t i = 5; + char[] b = ap[0..i]; + assert(b == "hello"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug42.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module bug42; + +void main() { + int i = 2; + switch (i) { + case 0: + case 1: + default: + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug43.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module bug43; + +struct S +{ + ubyte[3] vals; +} + +void func(ubyte[3] v) +{ +} + +void main() +{ + S s; + func(s.vals); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug44.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module bug44; + +pragma(LLVM_internal, "notypeinfo") +struct rgb +{ + long l; +} + +void foo() +{ +} + +rgb test() { + scope(exit) foo(); + return rgb(); +} + +void main() +{ + rgb r = test(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug45.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module bug45; + +void foo() { + int bar; + scope(exit) { bar++; } + if (bar) return; +} + +void main() { + foo(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug47.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module bug47; + +bool func(bool a, bool b) +{ + if (a) b = false; + return b; +} + +void main() +{ + assert(func(0,0) == 0); + assert(func(0,1) == 1); + assert(func(1,0) == 0); + assert(func(1,1) == 0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug48.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module bug48; + +size_t func(void *p) +{ + return cast(size_t)*cast(void* *)p; +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug49.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module bug49; + +pragma(LLVM_internal, "notypeinfo") +struct S +{ + int i; + long l; +} + +void main() +{ + S s; + s.i = 0x__FFFF_FF00; + s.l = 0xFF00FF_FF00; + s.i &= s.l; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module bug5; + +struct hah { + static hah f() + { + hah res; + return res; + } + hah g() + { + return hah.init; + } +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug50.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,29 @@ +module bug50; +extern(C) int printf(char*, ...); + +pragma(LLVM_internal, "notypeinfo") +struct S +{ + int i; + float f; + long l; + + void print() + { + printf("%d %f %lx\n", i, f, l); + } +} + +void main() +{ + S s; + s.print(); + s = S(1,2,3); + s.print(); + + S[] arr; + {arr ~= s;} + {arr[0].print();} + {arr ~= S(1,2,3);} + {arr[1].print();} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug51.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module bug51; +const ubyte[3] arr1 = 1; +const ubyte[3] arr2 = [1]; +const ubyte[3] arr3 = [1:1]; +void main() +{ + assert(arr1 == [cast(ubyte)1,1,1][]); + assert(arr2 == [cast(ubyte)1,0,0][]); + assert(arr3 == [cast(ubyte)0,1,0][]); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug52.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,5 @@ +module bug52; +struct Vec { double x,y,z; } +struct Pair(T, U) { T first; U second; } +typedef Pair!(double, Vec) Hit; +void main() {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug53.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,6 @@ +module bug53; +class Foo { + final void bar() {} + void test() { bar(); } +} +void main() {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug54.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module bug54; + +extern(C) size_t strlen(char*); + +// creating args for main +void d_main_args(size_t n, char** args, ref char[][] res) +{ + assert(res.length == n); + foreach(i,v; args[0..n]) + { + res[i] = v[0 .. strlen(v)]; + } +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug55.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module bug55; +extern(C) int printf(char*, ...); + +int atoi(char[] s) { + int i, fac=1; + bool neg = (s.length) && (s[0] == '-'); + char[] a = neg ? s[1..$] : s; + foreach_reverse(c; a) { + i += (c-'0') * fac; + fac *= 10; + } + return !neg ? i : -i; +} + +void main() +{ + printf("64213 = %d\n", atoi("64213")); + printf("-64213 = %d\n", atoi("-64213")); + assert(atoi("64213") == 64213); + assert(atoi("-64213") == -64213); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug56.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module bug56; + +void main() +{ + int[] a; + a = [1,2,3]; + {int[] b = [4,5,6];} +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug57.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +import std.stdio; +class Foo {} +void func3() +{ + Foo[1] test=[new Foo]; + writefln(test); +} +void main() { + func3(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug58.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module bug58; +import std.stdio; +void main() +{ + int[16] arr = [1,16,2,15,3,14,4,13,5,12,6,11,7,10,8,9]; + writefln("arr = ",arr); + arr.sort; + writefln("arr.sort = ",arr); + assert(arr == [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug59.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +module bug59; + +void main() +{ + int[2] a = 0; + //func(a); + a[0] = 1; + int i = a[0]; + int* p = &a[0]; +} + +void func(int[2] a) +{ + int* p = cast(int*)a; +} + +void func2(int[4] a) +{ + int* p = 3+cast(int*)a; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module bug6; +class wrong { } +void bark(ref wrong s) { s = new wrong; } +void foo(wrong tree) { + auto old = tree; + bark(tree); + assert(old !is tree); +} +void main() +{ + auto w = new wrong; + auto old = w; + foo(w); + assert(w is old); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug60.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module bug60; +extern(C) int printf(char*, ...); + +void func(T...)(T t) +{ + foreach(v;t) { + if (v.length) { + foreach(i;v) { + printf("%d\n", i); + } + } + } +} +void main() +{ + auto a = [1,2,3]; + func(a); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug61.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module bug61; +extern(C) int printf(char*, ...); + +void main() +{ + int[3] a = [42,4,141414]; + printf("empty:\n"); + foreach(v; a[3..$]) { + printf("int = %d\n", v); + } + printf("one element:\n"); + foreach(v; a[2..$]) { + printf("int = %d\n", v); + } + printf("all elements:\n"); + foreach(v; a) { + printf("int = %d\n", v); + } + printf("empty reversed:\n"); + foreach_reverse(v; a[3..$]) { + printf("int = %d\n", v); + } + printf("all elements reversed:\n"); + foreach_reverse(v; a) { + printf("int = %d\n", v); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug62.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module bug62; +extern(C) int printf(char*, ...); + +void main() +{ + int[] arr = [1,2,5,7,9]; + int i = 0; + foreach(v; arr) { + i += v; + } + printf("sum = %d\n", i); + assert(i == 24); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug63.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module bug63; +extern(C) int printf(char*, ...); + +void main() +{ + static void notnested() + { + printf("hello world\n"); + } + notnested(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug64.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module bug64; + +void main() +{ + float f; + float* p = &f; + float* end1 = p+1; + float* end2 = 1+p; + assert(end1 is end2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug66.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,5 @@ +module bug66; +import std.stdio; +class Scene { string name() { return "Scene"; } } +class Group : Scene { this () { } } +void main() { writefln((new Group).name); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module bug7; + +class love { } +void bug() { + love[] child; + child.length=1; + assert(child[0] is null); + child[0]=null; + assert(child[0] is null); +} +void main() +{ + bug(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug70.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module bug70; + +void main() +{ + for (;false;) + { + break; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug71.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +module bug71; + +void main() +{ + static TypeInfo skipCI(TypeInfo valti) + { + while (1) + { + if (valti.classinfo.name.length == 18 && + valti.classinfo.name[9..18] == "Invariant") + valti = (cast(TypeInfo_Invariant)valti).next; + else if (valti.classinfo.name.length == 14 && + valti.classinfo.name[9..14] == "Const") + valti = (cast(TypeInfo_Const)valti).next; + else + break; + } + return valti; + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug72.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module bug72; + +void main() +{ + char c = void; + int i = void; + c += i; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug73.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +int find(char[] s, dchar c) +{ + // c is a universal character + foreach (int i, dchar c2; s) + { + if (c == c2) + return i; + } + return -1; +} + +void main() +{ + char[] hello = "hello world"; + int i = find(hello, 'w'); + assert(i == 6); + i = find(hello, 'z'); + assert(i == -1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug74.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module bug74; + +char[] sformat(char[] s, ...) +{ + TypeInfo[] ti = _arguments; + void* args = _argptr; + return ""; +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug75.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module bug75; + +void func(void delegate() dg) +{ +} + +void main() +{ + void nested() { + } + //func(&nested); + void delegate() dg = &nested; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug76.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module bug76; +char[] fmt(...) +{ + return ""; +} +void main() +{ + char[] s = fmt(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug77.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module bug77; +import tango.stdc.string; +void main() +{ + size_t len; + void func2() + { + char* prefix = ""; + + void func() + { + len = strlen(prefix); + assert(len == 0); + } + + func(); + } + func2(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug78.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module bug78; + +void main() +{ + typedef int int_t = 42; + int_t i; + assert(i == int_t.init); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug79.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module bug79; +import std.c.linux.linux; +void main() +{ + timespec ts; + ts.tv_nsec -= 1; + //auto t = ts.tv_nsec - 1; + //t -= 1; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module bug8; + +void main() +{ + s = newS(); +} + +S* s; + +struct S +{ + int i; +} + +S* newS() +{ + auto tmp = new S; + tmp.i = 4; + return tmp; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug80.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module bug80; +extern(C) int printf(char*, ...); + +void main() +{ + byte b = 10; + int i = b += 2; + printf("byte=%d int=%d\n", b, i); + assert(b == 12); + assert(i == 12); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/bug9.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,34 @@ +module bug9; +extern(C) int printf(char*, ...); + +struct rgb +{ + ubyte[3] values; + rgb average(rgb other) + { + rgb res; + foreach (id, ref v; res.values) v=(values[id]+other.values[id])/2; + return res; + } + void print() + { + printf("[%d,%d,%d]\n", values[0], values[1], values[2]); + } +} + +void main() +{ + rgb a,b; + a.values[0] = 10; + a.values[1] = 20; + a.values[2] = 30; + b.values[0] = 30; + b.values[1] = 20; + b.values[2] = 10; + rgb avg = a.average(b); + avg.print(); + assert(avg.values[0] == 20); + assert(avg.values[1] == 20); + assert(avg.values[2] == 20); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/c.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module c; + +void main() +{ + ushort a = 0xFFF0; + ushort b = 0x0FFF; + auto t = a & b; + a &= b; + assert(t == a); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/calls1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,66 @@ +module calls1; +import tango.core.Vararg; +extern(C) int printf(char*, ...); +void main() +{ + {int a = byVal1(3);} + {int a = void; byRef1(a);} + {char[] c = void; refType(c);} + {char[] c = void; refTypeByRef(c);} + {S s = void; structByVal(s);} + {S s = void; structByRef(s);} + {S s = void; structByPtr(&s);} + {printf("c-varargs %d %d %d\n", 1,2,3);} + {int i=3; float f=24.7; dvararg(i,f);} + {char[] s = "hello"; dvarargRefTy(s);} + {char[] ss = "hello world!"; dvarargRefTy(ss);} +} + +int byVal1(int a) +{ + return a; +} + +void byRef1(ref int a) +{ + a = 3; +} + +void refType(char[] s) +{ +} + +void refTypeByRef(ref char[] s) +{ +} + +struct S +{ + float f; + double d; + long l; + byte b; +} + +void structByVal(S s) +{ +} + +void structByRef(ref S s) +{ +} + +void structByPtr(S* s) +{ +} + +void dvararg(...) +{ + printf("%d %.1f\n", va_arg!(int)(_argptr), va_arg!(float)(_argptr)); +} + +void dvarargRefTy(...) +{ + char[] s = va_arg!(char[])(_argptr); + printf("%.*s\n", s.length, s.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +extern(C) int printf(char*, ...); + +class C +{ + int i; + void p() + { + printf("%d\n", i); + } +} + +void main() +{ + printf("should print 4\n"); + C c = new C; + c.i = 4; + c.p(); + //delete c; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,37 @@ +module tangotests.classes1; + +class Outer +{ + int data; + + class Inner + { + long data; + + this(long d) + { + data = d*2; + } + } + + void func() + { + auto i = new Inner(data); + data += (i.data/4); + } + + this(int d) + { + data = d; + } +} + +void main() +{ + scope c = new Outer(100); + c.func(); + int d = c.data; + printf("150 = %d\n", d); +} + +extern(C) int printf(char*, ...);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes10.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module classes10; + +class C +{ + int i; + override char[] toString() + { + return "foobar"; + } +} + +void main() +{ + Object o = new C; + char[] s = o.toString(); + assert(s == "foobar"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes11.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module classes11; +extern(C) int printf(char*, ...); + +void main() +{ + static class C + { + void func() + { + printf("Hello world\n"); + } + } + + scope c = new C; + c.func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes12.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,34 @@ +class C +{ + int a; + union + { + int i; + double d; + } + int z; +} + +void func() +{ + scope c = new C; + access1(c); + assert(c.i == 42); + access2(c); + assert(c.d == 2.5); +} + +void access1(C c) +{ + c.i = 42; +} + +void access2(C c) +{ + c.d = 2.5; +} + +void main() +{ + func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,25 @@ +extern(C) int printf(char*, ...); + +class A +{ + int i; + void f() + { + printf("A.f\n"); + } +} + +class B : A +{ + long l; + void f() + { + printf("B.f\n"); + } +} + +void main() +{ + A a = new B; + a.f(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +class C +{ + int c; + long f(long l) + { + return l; + } +} + +class D : C +{ + int d; + override long f(long l) + { + return l*2; + } +} + +void main() +{ + scope c = new C; + assert(c.f(25L) == 25); + scope d = new D; + assert(d.f(25L) == 50); + C cd = d; + assert(cd.f(25L) == 50); + assert(func(d,25L) == 50); +} + +long func(C c, long l) +{ + return c.f(l); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,38 @@ +extern(C) int printf(char*, ...); + +class A +{ + int i = 42; + double df = 3.1415; + this() + { + } + char[] toString() + { + return "A:Object"; + } +} + +class B : A +{ + ubyte b; + char[] toString() + { + return "B:A"; + } +} + +void main() +{ + scope a = new A; + char[] as = a.toString; + {printf("a.toString = '%.*s'\n", as.length, as.ptr);} + + Object o = a; + char[] os = o.toString; + {printf("o.toString = '%.*s'\n", os.length, os.ptr);} + + scope b = new B; + char[] bs = b.toString; + {printf("b.toString = '%.*s'\n", bs.length, bs.ptr);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module classes5; +extern(C) int printf(char*, ...); + +struct S +{ + long l; +} + +class C +{ + C c; + S s; +} + +void main() +{ + C c = new C; + long* lp = void; + {c.s.l = 64;} + {assert(c.s.l == 64);} + {lp = &c.s.l;} + {assert(*lp == 64);} + printf("classes5 success\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,38 @@ +module classes6; +extern(C) int printf(char*, ...); + +class C +{ + void f() + { + printf("world\n"); + } +} + +class D : C +{ + void f() + { + printf("moon\n"); + } +} + + +extern(C) +{ + void srand(uint seed); + int rand(); +} + +import llvm.intrinsic; + +void main() +{ + C c; + srand(readcyclecounter()); + if (rand() % 2) + c = new C; + else + c = new D; + c.f(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module classes7; + +class C +{ + int i=0; + void f() + { + i=42; + } + void g() + { + f(); + } +} + +void main() +{ + scope c = new C; + c.g(); + assert(c.i == 42); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +class A { + int i; + int l; + this(bool b,bool b2=false) { + if (b) this = new B; + i = 4; + if (b2) this = new C; + l = 64; + } +} +class B : A{ + this() { + super(false); + } +} +class C : A{ + this() { + super(false); + } +} +void main() { +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classes9.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,47 @@ +module classes9; + +class C +{ +} + +class D : C +{ +} + +class E +{ +} + +class F : E +{ +} + +void main() +{ + { + D d = new D; + { + C c = d; + assert(c !is null); + D d2 = cast(D)c; + assert(d2 !is null); + E e = cast(E)d; + assert(e is null); + F f = cast(F)d; + assert(f is null); + } + } + { + F f = new F; + { + E e = f; + assert(e !is null); + F f2 = cast(F)e; + assert(f2 !is null); + C c = cast(C)f; + assert(c is null); + D d2 = cast(D)f; + assert(d2 is null); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classinfo1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ +module classinfo1; + +extern(C) int printf(char*, ...); + +class NoPtrs +{ +} + +class HasPtrs +{ + void* p; +} + +void main() +{ + { + ClassInfo ci = NoPtrs.classinfo; + char[] name = ci.name; + printf("%.*s\n", name.length, name.ptr); + assert(ci.name == "classinfo1.NoPtrs"); + assert(ci.flags & 2); + } + { + ClassInfo ci = HasPtrs.classinfo; + char[] name = ci.name; + printf("%.*s\n", name.length, name.ptr); + assert(ci.name == "classinfo1.HasPtrs"); + assert(!(ci.flags & 2)); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classinfo2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module classinfo2; + +class C +{ +} + +class D : C +{ +} + +void main() +{ + D d; + d = new D; + ClassInfo ci = d.classinfo; + assert(ci is D.classinfo); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classinfo3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module classinfo3; + +class C +{ + int i; + float f; + long l; + int j; +} + +void main() +{ + auto c = C.classinfo; + assert(c.offTi !is null); + assert(c.offTi.length == 4); + + size_t base = 2*size_t.sizeof; + + assert(c.offTi[0].offset == base); + assert(c.offTi[0].ti == typeid(int)); + assert(c.offTi[1].offset == base+4); + assert(c.offTi[1].ti == typeid(float)); + assert(c.offTi[2].offset == base+8); + assert(c.offTi[2].ti == typeid(long)); + assert(c.offTi[3].offset == base+16); + assert(c.offTi[3].ti == typeid(int)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/classinfo4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,43 @@ +module classinfo4; + +class C +{ +} + +class D : C +{ + this() + { + } + ~this() + { + } +} + +template T() +{ + ~this() + { + } +} + +class E : D +{ + this() + { + } + ~this() + { + } + mixin T; +} + +void main() +{ + assert(C.classinfo.defaultConstructor is null); + assert(C.classinfo.destructor is null); + assert(D.classinfo.defaultConstructor !is null); + assert(D.classinfo.destructor !is null); + assert(E.classinfo.defaultConstructor !is null); + assert(E.classinfo.destructor !is null); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/comma.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module comma; + +void main() +{ + int i=0,j=0; + for (; i<10; i++,j++) + { + } + assert(i == 10); + assert(j == 10); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/complex1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module complex1; + +void main() +{ + cfloat cf1 = 3f + 0i; + cfloat cf2 = 4f + 1i; + cfloat cf3 = func(); + auto c1 = cf1 + cf2; + auto c2 = cf2 - cf3; + { + auto c3 = cf1 * cf3; + { + auto c4 = cf2 / cf3; + } + } +} + +cfloat func() +{ + return 3f + 1i; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/complex2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module complex2; + +void main() +{ + cdouble c = 3.0 + 0i; + cdouble d = 2.0 + 0i; + { + cdouble c1 = c + 3.0; + cdouble c2 = c - 3.0i; + } + { + cdouble c1 = c / 2.0; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/complex3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module complex3; + +void main() +{ + cfloat c1 = 1f + 0i; + cfloat c2 = 0f + 0i; + c2 += 1f + 0i; + //assert(c1 == c2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/cond.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,45 @@ +extern(C) int printf(char*, ...); + +version=AndAnd; +version=OrOr; + +version(AndAnd) +void andand1() +{ + int a,b; + a = 4; + b = 5; + assert(a == 4); + assert(b == 5); + assert(a+b == 9); + assert(a == 4 && b == 5); + assert(a != 3 && b == 5); + assert(a > 2); + assert(a < 54); + assert(a < b); + assert(a > b-2); + + int apb = a+b; + int amb = a*b; + assert(apb < amb && apb > a); +} + +version(OrOr) +void oror1() +{ + int a,b; + a = 10; + b = 1000; + assert(a); + assert(b); + assert(a || b); + assert(a > b || a < b); +} + +void main() +{ + printf("Conditionals test\n"); + version(AndAnd) andand1(); + version(OrOr) oror1(); + printf(" SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/cond1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module cond1; + +void main() +{ + double a = 2; + double b = 4; + double c = (a > 0) ? a : b; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/condexp.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module condexp; + +int f() +{ + return 42; +} + +void main() +{ + int i = f() < 25 ? -1 : 1; + /*int j = f() > 25 ? 1 : -1; + assert(i); + assert(!j);*/ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/condexp1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module condexp1; + +void main() +{ + char[] a = "hello"; + char[] b = "world"; + int i = 42; + { + char[] c = i > 50 ? b : a; + assert(c is a); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/cyclic.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +void main() +{ + S t; +} + +struct T +{ + int i; + S* s; +} + +struct S +{ + long i; + T* t; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/d.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,50 @@ +module d; + +void main() +{ + int delegate() dg; + + struct S + { + int i; + long l; + float f; + + int func() + { + return 42; + } + } + + S s; + auto dg2 = &s.func; + int i = dg2(); + assert(i == 42); + + i = f(dg2, 1); + assert(i == 43); +} + +int f(int delegate() dg, int i) +{ + return dg() + i; +} + +/* +struct S +{ + int i; + float f; + int square() + { + return i*i; + } +} + +S s; + +void main() +{ + auto dg = &s.square; +} +*/ \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module tangotests.debug1; + +void main() +{ + int* ptr; + + // all these should be inspectable + int i = 1; + int j = 2; + long k = 3; + float l = 4.521; + ubyte m = 5; + + *ptr = 0;//cast(int)(i+j+k+l+m); +} + +extern(C) int printf(char*, ...);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug10.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module tangotests.debug10; + +struct Vec2 +{ + float x,y; +} + +void main() +{ + Vec2 v2; + char[] str = "hello"; + int i = void; + float f = 3.14; + func(v2, v2, str, i, f); +} + +void func(Vec2 v2, ref Vec2 rv2, char[] str, out int i, ref float f) +{ + int* fail; + *fail = 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug11.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +module tangotests.debug11; + +class C +{ +} + +class D : C +{ + int i = 42; +} + +class E : D +{ + float fp = 3.14f; +} + +class F : E +{ + F f; +} + +void main() +{ + auto c = new C; + auto d = new D; + auto e = new E; + auto f = new F; + + auto ci = c.classinfo; + + int* fail; + *fail = 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug12.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module tangotests.debug12; + +interface I +{ + int foo(); +} + +class C : I +{ + int i = 24; + int foo() + { + return i; + } +} + +void main() +{ + scope c = new C; + I i = c; + + int* fail; + *fail = 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module tangotests.debug2; + +import tango.stdc.stdlib : rand; + +void main() +{ + size_t iter; + while (iter < 25) + { + if (rand() % 20 == 10) + *cast(int*)null = 0; + ++iter; + } + assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module tangotests.debug3; + +void main() +{ + int i = 42; + int* ip = &i; + + int* fail; + *fail = 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module tangotests.debug4; + +void main() +{ + char c = 'c'; + wchar wc = 'w'; + dchar dc = 'd'; + + int* fail; + *fail = 32; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module tangotests.debug5; + +void main() +{ + int i = 32; + real r = 3.1415; + real* p = &r; + func(i,r,p); +} + +void func(int i, real r, real* p) +{ + int* fail; + *fail = 666; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module tangotests.debug6; + +void main() +{ + char[] str = "hello world :)"; + + int* fail; + *fail = 32; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module tangotests.debug7; + +int gi; + +void main() +{ + int* fail; + *fail = 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,31 @@ +module tangotests.debug8; + +struct Str +{ + size_t len; + void* ptr; +} + +struct Foo +{ + long l; + Bar bar; +} + +struct Bar +{ + float x,y,z; + Foo* foo; +} + +void main() +{ + Str str; + Foo foo; + foo.l = 42; + foo.bar.y = 3.1415; + foo.bar.foo = &foo; + + int* fail; + *fail = 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/debug9.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module tangotests.debug9; + +struct Foo +{ + int a,b,c; + + void func() + { + int* fail; + *fail = 0; + } +} + +void main() +{ + Foo foo = Foo(1,10,73); + foo.func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/dgs.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,87 @@ + +extern(C) int printf(char*, ...); + +struct S +{ + int i; + int square() + { + return i*i; + } + int plus(int a) + { + return i + a; + } + int minus(int a) + { + return i - a; + } + int delegate(int) get(char op) + { + int delegate(int) rval; + if (op == '+') + rval = + + else if (op == '-') + rval = − + return rval; + } +} + +int calldg1(int delegate(int) dg, int i) +{ + return dg(i); +} + +void delegate() retdg() +{ + void delegate() dg; + return dg; +} + +void getretdg() +{ + void delegate() dg; + dg = retdg(); +} + +class C +{ + int i; + void m() + { + i = 42; + } +} + +void getclassdg() +{ + scope c = new C; + void delegate() dg = &c.m; + assert(c.i != 42); + dg(); + assert(c.i == 42); +} + +void main() +{ + printf("Delegate test\n"); + S s = S(4); + + auto dg = &s.square; + //assert(dg() == 16); + //dg(); + + /*auto dg1 = &s.plus; + assert(dg1(6) == 10); + + auto dg2 = &s.minus; + assert(calldg1(dg2,30) == -26); + + auto dg3 = s.get('+'); + assert(dg3(16) == 20); + + getretdg(); + getclassdg();*/ + + printf(" SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/dotproduct.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,36 @@ +extern(C) int printf(char*, ...); + +struct vec3 +{ + float x,y,z; + + float dot(ref vec3 v) + { + return x*v.x + y*v.y + z*v.z; + } + + void print(char[] n) + { + printf("%.*s = vec3(%.4f, %.4f, %.4f)\n", n.length, n.ptr, x,y,z); + } +} + +int main() +{ + printf("Dot Product test\n"); + + const f = 0.7071067811865474617; + vec3 v = vec3(f,f,0); + vec3 w = vec3(f,0,f); + + v.print("v"); + w.print("w"); + + auto dp = v.dot(w); + printf("v · w = %f\n", dp); + assert(dp > 0.4999 && dp < 0.5001); + + printf(" SUCCESS\n"); + return 0; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/e.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,25 @@ +module e; + +extern(C) int printf(char*, ...); + +struct C +{ + float x=0,y=0; + + float dot(ref C b) + { + return x*b.x + y*b.y; + } +} + +void main() +{ + C a,b; + a.x = 2; + a.y = 6; + b.x = 3; + b.y = 5; + float f = a.dot(b); + printf("%f\n", f); + assert(f == 36); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/enum1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module enum1; + +void main() +{ + enum { + HELLO, + WORLD + } + + assert(HELLO == 0); + assert(WORLD == 1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/enum2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module enum2; + +void main() +{ + enum E { + A,B + } + E e = E.B; + assert(e == E.B); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/enum3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module enum3; + +enum GE : ushort +{ + A,B,C +} + +void main() +{ + GE e = GE.B; + size_t s = GE.sizeof; + assert(e == 1); + assert(e.sizeof == s); + assert(s == 2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/f.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module f; + +struct S +{ + long l; +} + +void main() +{ + S s; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/floatcmp.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,161 @@ +module floatcmp; +extern(C) int printf(char*, ...); + +void eq() +{ + float _3 = 3; + assert(!(_3 == 4)); + assert(!(_3 == 2)); + assert(_3 == 3); + assert(!(_3 == float.nan)); +} + +void neq() +{ + float _3 = 3; + assert(_3 != 4); + assert(_3 != 2); + assert(!(_3 != 3)); + assert(_3 != float.nan); +} + +void gt() +{ + float _3 = 3; + assert(_3 > 2); + assert(!(_3 > 4)); + assert(!(_3 > 3)); + assert(!(_3 > float.nan)); +} + +void ge() +{ + float _3 = 3; + assert(_3 >= 2); + assert(!(_3 >= 4)); + assert(_3 >= 3); + assert(!(_3 >= float.nan)); +} + +void lt() +{ + float _3 = 3; + assert(_3 < 4); + assert(!(_3 < 2)); + assert(!(_3 < 3)); + assert(!(_3 < float.nan)); +} + +void le() +{ + float _3 = 3; + assert(_3 <= 4); + assert(!(_3 <= 2)); + assert(_3 <= 3); + assert(!(_3 <= float.nan)); +} + +void uno() +{ + float _3 = 3; + assert(!(_3 !<>= 2)); + assert(!(_3 !<>= 3)); + assert(!(_3 !<>= 4)); + assert(_3 !<>= float.nan); +} + +void lg() +{ + float _3 = 3; + assert(_3 <> 4); + assert(_3 <> 2); + assert(!(_3 <> 3)); + assert(!(_3 <> float.nan)); +} + +void lge() +{ + float _3 = 3; + assert(_3 <>= 4); + assert(_3 <>= 2); + assert(_3 <>= 3); + assert(!(_3 <>= float.nan)); +} + +void ugt() +{ + float _3 = 3; + assert(_3 !<= 2); + assert(!(_3 !<= 4)); + assert(!(_3 !<= 3)); + assert(_3 !<= float.nan); +} + +void uge() +{ + float _3 = 3; + assert(_3 !< 2); + assert(!(_3 !< 4)); + assert(_3 !< 3); + assert(_3 !< float.nan); +} + +void ult() +{ + float _3 = 3; + assert(_3 !>= 4); + assert(!(_3 !>= 2)); + assert(!(_3 !>= 3)); + assert(_3 !>= float.nan); +} + +void ule() +{ + float _3 = 3; + assert(_3 !> 4); + assert(!(_3 !> 2)); + assert(_3 !> 3); + assert(_3 !> float.nan); +} + +void ueq() +{ + float _3 = 3; + assert(!(_3 !<> 2)); + assert(!(_3 !<> 4)); + assert(_3 !<> 3); + assert(_3 !<> float.nan); +} + +void main() +{ + printf("floating point comparison test\n"); + + eq(); + neq(); + gt(); + ge(); + lt(); + le(); + uno(); + lg(); + lge(); + ugt(); + uge(); + ult(); + ule(); + ueq(); + + printf(" SUCCESS\n"); +} + +/+ +void gt() +{ + float _3 = 3; + assert(); + assert(); + assert(); + assert(); +} ++/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module foreach1; +extern(C) int printf(char*, ...); + +void main() +{ + static arr = [1,2,3,4,5]; + + printf("forward"); + foreach(v;arr) { + printf(" %d",v); + } + printf("\nreverse"); + foreach_reverse(v;arr) { + printf(" %d",v); + } + printf("\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module foreach2; +extern(C) int printf(char*, ...); +void main() +{ + static arr = [1.0, 2.0, 4.0, 8.0, 16.0]; + foreach(i,v; arr) + { + printf("arr[%d] = %f\n", i, v); + } + printf("-------------------------------\n"); + foreach_reverse(i,v; arr) + { + printf("arr[%d] = %f\n", i, v); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module foreach3; +extern(C) int printf(char*, ...); +void main() +{ + static str = ['h','e','l','l','o']; + foreach(i,v; str) { + printf("%c",v); + } + printf("\n"); + + foreach(i,v; str) { + v++; + } + + foreach(i,v; str) { + printf("%c",v); + } + printf("\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module foreach4; +extern(C) int printf(char*, ...); +void main() +{ + int[] arr = new int[4]; + foreach(i,v;arr) { + printf("arr[%u] = %d\n",i,v); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module foreach5; +extern(C) int printf(char*, ...); +void main() +{ + int[3] arr = [1,2,3]; + + foreach(v;arr) { + v++; + } + + printf("%d\n", arr[0]); + assert(arr[0] == 1); + assert(arr[1] == 2); + assert(arr[2] == 3); + + foreach(ref v;arr) { + v++; + } + + printf("%d\n", arr[0]); + assert(arr[0] == 2); + assert(arr[1] == 3); + assert(arr[2] == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module foreach6; + +struct S +{ + long l; + float f; +} + +void main() +{ + S[4] arr = void; + foreach(i,v;arr) { + v = S(i, i*2.5); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module foreach7; + +void main() +{ + int[4] a = [1,2,3,4]; + int i; + foreach(v; a[0..3]) + { + i += v; + } + assert(i == 6); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/foreach8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module tangotests.foreach1; + +extern(C) int printf(char*, ...); + +int main(){ + dchar[] array="\u2260"; + int test=0; + int count=0; + assert(count==0); + foreach(int index, char obj; array){ + printf("%d\n", obj); + test+=obj; + count++; + } + assert(count==3); + assert(test==0x20b); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/forwdecl.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +struct S +{ + S* s; + S** ss; + S*[4] s4; +} + +void main() +{ + S s; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/funcptr.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,68 @@ +extern(C) int printf(char*, ...); + +int return_six() +{ + return 6; +} + +int add_int(int a, int b) +{ + return a+b; +} + +int sub_int(int a, int b) +{ + return a-b; +} + +alias int function(int,int) binfn_t; + +int binop_int(binfn_t op, int a, int b) +{ + return op(a,b); +} + +binfn_t get_binop_int(char op) +{ + binfn_t fn; + if (op == '+') + fn = &add_int; + else if (op == '-') + fn = &sub_int; + return fn; +} + +extern(C) float mul_float(float a, float b) +{ + return a * b; +} + +void function_pointers() +{ + int function() fn = &return_six; + assert(fn() == 6); + + binfn_t binfn = &add_int; + assert(binfn(4,1045) == 1049); + + assert(binop_int(binfn, 10,656) == 666); + + binfn = get_binop_int('+'); + assert(binop_int(binfn, 10,100) == 110); + binfn = get_binop_int('-'); + assert(binop_int(binfn, 10,100) == -90); + + { + auto ffn = &mul_float; + float ftmp = mul_float(2.5,5); + assert(ftmp == 12.5); + assert(ftmp > 12.49 && ftmp < 12.51); + } +} + +void main() +{ + printf("Function pointer test\n"); + function_pointers(); + printf(" SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/funcs.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,50 @@ +extern(C) int printf(char*, ...); + +void main() +{ + printf("Testing functions\n"); + int i = 5; + assert(a(i) == 110); + assert(i == 11); + + S s; + s.i = 5; + d(s); + assert(s.i == 5); + e(s); + assert(s.i == 6); + + printf(" SUCCESS\n"); +} + +int a(ref int i) +{ + i*=2; + return b(i); +} + +int b(ref int i) +{ + i++; + return c(i); +} + +int c(int i) +{ + return i*10; +} + +struct S +{ + int i; +} + +void d(S s) +{ + s.i++; +} + +void e(ref S s) +{ + s.i++; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/funcs2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module funcs2; + +void func() +{ +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/g.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module g; + +extern(C) int printf(char*, ...); + +void func(char[] str) +{ + printf("%.*s\n", str.length, str.ptr); +} + +void main() +{ + char[] arr = "Hello World!"; + func(arr); + func("ditto"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/gc1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module tangotests.gc1; + +void main() +{ + int[] arr; + + for (int i=0; i<100; ++i) + { + arr ~= new int[1000]; + } + + printf("arr.length = %u\n", arr.length); +} + +extern(C) int printf(char*, ...); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/globals1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module globals1; +extern(C) int printf(char*, ...); + +char[] gstr = "hello world"; + +void main() +{ + printf("%.*s\n", gstr.length, gstr.ptr); + char[] str = gstr; + printf("%.*s\n", str.length, str.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/globals2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module globals2; + +template Bool(bool b) +{ + const bool Bool = b; +} + +void main() +{ + assert(Bool!(true)); + assert(!Bool!(false)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/goto1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module goto1; + +void main() +{ + int i; + goto lbl; + i++; +lbl: + assert(i == 0); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/h.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +interface Iin +{ + void[] read(size_t n); +} + +interface Iout +{ + size_t write(void[] d); +} + +class C : Iin +{ + void[] read(size_t n) + { + return null; + } + + size_t write(void[] d) + { + return 0; + } +} + +void main() +{ + scope c = new C; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/i.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +interface IN +{ + void func(); +} +abstract class AC +{ + abstract void func(); + long ll; +} +class C : AC +{ + void func() + { + } +} + +void main() +{ + scope c = new C; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/imag1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module imag1; + +void main() +{ + ifloat f = 1.0i; + auto x = 2.0i*f; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/imports2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,6 @@ +module imports2; +import std.stdio; + +void main() { + writefln("Hello world!"[]); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/imports_1of2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module imports_1of2; + +import imports_2of2; + +void main() +{ + assert(func() == 42); + S s; + s.l = 32; + assert(s.l == 32); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/imports_2of2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module imports_2of2; + +int func() +{ + return 42; +} + +struct S +{ + long l; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/innerclass1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ +module innerclass1; +extern(C) int printf(char*, ...); + +class Outer +{ + int i; + class Inner + { + int func() + { + return i; + } + } +} + +void main() +{ + Outer o = new Outer; + { + o.i = 42; + { + auto i = o.new Inner; + { + int x = i.func(); + assert(x == 42); + } + } + } + printf("SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module interface1; + +extern(C) int printf(char*,...); + +interface Inter +{ + void func(); +} + +class Class : Inter +{ + override void func() + { + printf("hello world\n"); + } +} + +void main() +{ + scope c = new Class; + c.func(); + Inter i = c; + i.func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,37 @@ +module interface2; + +extern(C) int printf(char*,...); + +interface A +{ + void a(); +} + +interface B +{ + void b(); +} + +class C : A,B +{ + int i = 0; + override void a() + { + printf("hello from C.a\n"); + } + override void b() + { + printf("hello from C.b\n"); + } +} + +void main() +{ + scope c = new C; + {c.a(); + c.b();} + {A a = c; + a.a();} + {B b = c; + b.b();} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ +module interface3; + +extern(C) int printf(char*,...); + +interface I +{ + void func(); +} + +class C : I +{ + int i = 42; + override void func() + { + printf("hello %d\n", i); + i++; + } +} + +void main() +{ + scope c = new C; + {c.func();} + { + I i = c; + {i.func();} + } + {printf("final %d\n", c.i);} + {assert(c.i == 44);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,35 @@ +module interface4; + +extern(C) int printf(char*,...); + +interface I +{ + void func(); +} + +interface I2 +{ + void func(); +} + +class C : I,I2 +{ + int i = 42; + override void func() + { + printf("hello %d\n", i); + i++; + } +} + +void main() +{ + scope c = new C; + c.func(); + I i = c; + i.func(); + I2 i2 = c; + i2.func(); + printf("final %d\n", c.i); + assert(c.i == 45); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,34 @@ +module interface5; + +extern(C) int printf(char*,...); + +interface I +{ + void func(); +} + +class C : I +{ + int i; + void func() + { + printf("C\n"); + i++; + } +} + +void main() +{ + C c = new C; + c.func(); + { + I i = c; + c.func(); + + C c2 = cast(C)i; + c2.func(); + + c.func(); + assert(c.i == 4); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,46 @@ +module interface6; + +extern(C) int printf(char*,...); + +interface I +{ + void Ifunc(); +} + +interface J +{ + void Jfunc(); +} + +class C : I,J +{ + int i; + int j; + void Ifunc() + { + i++; + } + void Jfunc() + { + j++; + } +} + +void main() +{ + C c = new C; + c.Ifunc(); + c.Jfunc(); + I i = c; + i.Ifunc(); + J j = c; + j.Jfunc(); + C c2 = cast(C)i; + c2.Ifunc(); + c2.Jfunc(); + C c3 = cast(C)j; + c3.Ifunc(); + c3.Jfunc(); + assert(c.i == 4); + assert(c.j == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/interface7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +module interface7; + +extern(C) int printf(char*,...); + +interface I +{ +} + +class C : I +{ +} + +void main() +{ + I i = new C; + ClassInfo ci = i.classinfo; + char[] name = ci.name; + printf("ci.name = %.*s\n", name.length, name.ptr); + ClassInfo cI = I.classinfo; + name = cI.name; + printf("cI.name = %.*s\n", name.length, name.ptr); + assert(ci is cI); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/intrinsics.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,31 @@ +import llvm.intrinsic; + +extern(C) int printf(char*,...); +extern(C) int scanf(char*,...); + +void main() +{ + { + float f; + printf("Enter float: "); + scanf("%f", &f); + float sf = llvm_sqrt(f); + printf("sqrt(%f) = %f\n", f, sf); + } + + { + double d; + printf("Enter double: "); + scanf("%lf", &d); + double sd = llvm_sqrt(d); + printf("sqrt(%lf) = %lf\n", d, sd); + } + + { + real d; + printf("Enter real: "); + scanf("%lf", &d); + real sd = llvm_sqrt(d); + printf("sqrt(%lf) = %lf\n", d, sd); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/j.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,44 @@ +module j; + +interface Inter1 +{ + int func1(); +} + +interface Inter2 +{ + int func2(); +} + +class C12 : Inter1, Inter2 +{ + int func1() + { + return 1; + } + int func2() + { + return 2; + } +} + +void func(Object c) +{ + auto i1 = cast(Inter1)c; + assert(i1.func1() == 1); + auto i2 = cast(Inter2)c; + assert(i2.func2() == 2); + auto j1 = cast(Inter1)i2; + assert(j1.func1() == 1); + auto j2 = cast(Inter2)i1; + assert(j2.func2() == 2); +} + +void main() +{ + scope c = new C12; + func(c); + printf("OK\n"); +} + +extern(C) int printf(char*,...);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/k.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,31 @@ +interface Inter +{ + int func(); +} + +extern(C) int printf(char*, ...); + +class InterClass : Inter +{ + int func() + { + return printf("InterClass.func()\n"); + } +} + +alias int delegate() dg_t; + +void main() +{ + scope c = new InterClass; + + { + Inter i = cast(Inter)c; + { + dg_t dg = &i.func; + { + int j = dg(); + } + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/lazy1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module tangotests.lazy1; + +extern(C) int printf(char*, ...); + +void main() +{ + lazystr("whee\n"); +} + +void lazystr(lazy char[] msg) +{ + printf("%.*s", msg.length, msg.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/lazy2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module tangotests.lazy2; + +extern(C) int printf(char*, ...); + +void main() +{ + lazy1("hello\n"); +} + +void lazy1(lazy char[] str) +{ + lazy2(str); +} + +void lazy2(lazy char[] msg) +{ + printf("%.*s", msg.length, msg.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/loops1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module tangotests.loops1; + +void main() +{ + size_t n; + int x; + ushort foo; + for (n=0; n<8; n++,x++) + { + foo >>= 1; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/m.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +void main() +{ + int* e = __errno_location(); + printf("&errno = %p\n", e); + printf("errno = %d\n", *e); +} + +extern(C): +int* __errno_location(); +int printf(char*,...);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/mainargs1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module mainargs1; + +extern(C) int printf(char*,...); + +void main(char[][] args) +{ + foreach(v; args) + { + printf("%.*s\n", v.length, v.ptr); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/marray1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module tangotest.marray1; + +void main() +{ + int[][] arr; + int[] a = [1,2]; + int[] b = [6,7,8,9]; + arr ~= a; + arr ~= b; + assert(a.length == 2); + assert(b.length == 4); + assert(arr.length == 2); + assert(arr[0][0] == 1); + assert(arr[0][1] == 2); + assert(arr[1][0] == 6); + assert(arr[1][1] == 7); + assert(arr[1][2] == 8); + assert(arr[1][3] == 9); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/marray2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module tangotests.marray2; + +void main() +{ + int[][] ma = new int[][](2,4); + assert(ma.length == 2); + assert(ma[0].length == 4); + assert(ma[1].length == 4); + ma[0][3] = 32; + ma[1][2] = 123; + ma[0][0] = 55; + assert(ma[0][3] == 32); + assert(ma[1][2] == 123); + assert(ma[0][0] == 55); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/marray3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +module tangotests.marray3; + +void main() +{ + int[][][] ma = new int[][][](2,4,3); + assert(ma.length == 2); + assert(ma[0].length == 4); + assert(ma[0][0].length == 3); + assert(ma[0][1].length == 3); + assert(ma[0][2].length == 3); + assert(ma[0][3].length == 3); + assert(ma[1].length == 4); + assert(ma[1][0].length == 3); + assert(ma[1][1].length == 3); + assert(ma[1][2].length == 3); + assert(ma[1][3].length == 3); + ma[0][3][1] = 32; + ma[1][2][2] = 123; + ma[0][0][3] = 55; + assert(ma[0][3][1] == 32); + assert(ma[1][2][2] == 123); + assert(ma[0][0][3] == 55); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/mem2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module tangotests.mem2; + +void main() +{ + int* ip = new int; + assert(*ip == 0); + *ip = 4; + assert(*ip == 4); + delete ip; + assert(ip is null); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/mem3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module tangotests.mem3; + +void main() +{ + int[] arr; + arr ~= [1,2,3]; + assert(arr[0] == 1); + assert(arr[1] == 2); + assert(arr[2] == 3); + delete arr; + assert(arr is null); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/mem5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +module tangotests.mem5; + +class SC +{ + int* ip; + this() + { + ip = new int; + } + ~this() + { + delete ip; + } + void check() + { + assert(ip !is null); + } +} + +void main() +{ + scope sc = new SC; + sc.check(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/mem6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module tangotests.mem6; + +extern(C) int printf(char*,...); + +int main(){ + int[] index; + char[] value; + + foreach(int i, char c; "_\U00012345-"){ + printf("str[%d] = %d\n", i , cast(int)c); + index ~= i; + //value ~= c; + } + printf("done\n"); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/memory1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module memory1; + +extern(C) int printf(char*,...); + +void main() +{ + auto a = new int[16]; + {printf("array.length = %u\n", a.length);} + {a.length = a.length + 1;} + {printf("array.length = %u\n", a.length);} + {assert(a.length == 17);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/moduleinfo1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +module moduleinfo1; + +static this() +{ +} + +static this() +{ +} + +static ~this() +{ +} + +static ~this() +{ +} + +unittest +{ +} + +class C +{ +} + +class D : C +{ +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/moduleinfo2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module moduleinfo2; + +extern(C) int printf(char*, ...); + +void main() +{ + printf("listing modules:\n"); + foreach(m; ModuleInfo) + { + printf(" %.*s\n", m.name.length, m.name.ptr); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/multiarr1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module multiarr1; + +void main() +{ + int[16][16] a; + assert(a[0][0] == 0); + assert(a[0][1] == 0); + assert(a[0][2] == 0); + assert(a[0][3] == 0); + assert(a[10][13] == 0); + assert(a[15][15] == 0); + a[10][13] = 42; + assert(a[0][0] == 0); + assert(a[10][13] == 42); + assert(a[15][15] == 0); + { + int* l = cast(int*)a; + l += 10*16+13; + assert(*l == 42); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/multiarr2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module multiarr2; + +void main() +{ + static float[1][2][3] arr; + assert(arr[2][1][0] !<>= float.nan); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/multiarr3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module multiarr3; + +void main() +{ + static int[2][2] arr = [[1,2],[3,4]]; + assert(arr[0][0] == 1); + assert(arr[0][1] == 2); + assert(arr[1][0] == 3); + assert(arr[1][1] == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/multiarr4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module multiarr4; +extern(C) int printf(char*, ...); + +void main() +{ + char[][] a; + a.length = 2; + a[0] = "hello"; + a[1] = "world"; + foreach(v;a) + { + printf("%.*s\n", v.length, v.ptr); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/n.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +struct Structure +{ + static void static_method() + { + } + + void method() + { + } +} + +void main() +{ + //Structure.static_method(); + + Structure s; + s.method(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/neg.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module neg; + +void main() +{ + int i = 32; + long l = 55; + float f = 23; + double d = 4; + assert(-i == -32); + assert(-l == -55); + assert(-f == -23); + assert(-d == -4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module nested1; + +void func(int i) +{ + (){ + assert(i == 3); + }(); +} + +void main() +{ + func(3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested10.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module nested10; + +extern(C) int printf(char*, ...); + +void main() +{ + int j = 3; + void F() + { + int i = j; + printf("F: i = %d, j = %d\n", i, j); + void G() + { + printf("G: i = %d, j = %d\n", i, j); + j += i; + } + G(); + } + F(); + printf("6 = %d\n", j); + assert(j == 6); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested11.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,44 @@ +module nested11; + +extern(C) int printf(char*, ...); + +void main() +{ + int i; + + void f() + { + i++; + + void g() + { + i++; + + void h() + { + printf("i = %d\n", i); + } + + h(); + } + + g(); + } + + f(); + assert(i == 2); + + void foo() + { + i = 42; + } + + void bar() + { + foo(); + } + + bar(); + printf("i = %d\n", i); + assert(i == 42); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested12.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +module nested12; + +extern(C) int printf(char*, ...); + +void main() +{ + func(); +} + +void func() +{ + void a(int i) + { + printf("%d\n", i); + } + + void b() + { + a(42); + } + + b(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested13.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,32 @@ +module tangotests.nested2; + +extern(C) int printf(char*, ...); + +void main() +{ + int var = 2; + + void exec(void delegate() dg) + { + printf("var = %d\n", var); + dg(); + } + + void foo() + { + printf("var = %d\n", var); + assert(var == 5); + } + + void bar() + { + printf("var = %d\n", var); + var += 3; + exec(&foo); + } + + printf("var = %d\n", var); + exec(&bar); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module nested2; + +void func(ref int i) +{ + delegate { + assert(i == 3); + i++; + }(); +} + +void main() +{ + int i = 3; + func(i); + assert(i == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module nested3; + +void main() +{ + int i; + void test() + { + i = 3; + } + test(); + assert(i == 3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module nested4; + +void func(void delegate() dg) { + auto v = (){ + dg(); + }; +} + +void main() +{ + func({}); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module nested5; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 42; + + printf("Hello world %d\n", i++); + + class C + { + void func() + { + printf("Hello world %d\n", i++); + //i++; + } + } + + scope c = new C; + c.func(); + assert(i == 44); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +module nested6; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 42; + + printf("main() %d\n", i++); + + class C + { + void func() + { + printf("C.func() %d\n", i++); + + class C2 + { + void func2() + { + printf("C2.func2() %d\n", i++); + } + } + + { + scope c2 = new C2; + c2.func2(); + } + } + } + + scope c = new C; + c.func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +module nested7; +extern(C) int printf(char*, ...); + +void main() +{ + int i; + i = 52; + printf("i = %d\n", i); + + void func() + { + i++; + + void func2() + { + i++; + + void func3() + { + i++; + } + + func3(); + } + + func2(); + } + + func(); + + printf("i = %d\n", i); + assert(i == 55); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,31 @@ +module nested8; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 1; + void func() + { + printf("func()\n"); + i++; + void func2() + { + printf(" func2()\n"); + int j = i + 1; + void func3() + { + printf(" func3()\n"); + j++; + printf(" done = %d\n", j); + } + func3(); + i = j; + printf(" done = %d\n", j); + } + func2(); + printf("done\n"); + } + func(); + printf("i == %d\n", i); + assert(i == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/nested9.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module nested9; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 42; + int func() + { + return i + 1; + } + int j = func(); + printf("j = %d\n", j); + assert(j == 43); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/o.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,24 @@ +extern(C) int printf(char*, ...); + +void func() +{ + try + { + printf("try\n"); + return 0; + } + catch + { + printf("catch\n"); + } + finally + { + printf("finally\n"); + } + return 0; +} + +void main() +{ + func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/pointers.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module pointers; + +struct S +{ + long l; +} + +void main() +{ + int j = 42; + int* p = &j; + + auto t = *p; + *p ^= t; + + *p = ~t; + + S s; + S* sp = &s; + *sp = s; + s = *sp; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/pt.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ + +extern(C) int printf(char*, ...); + +int main() +{ + char[16] s = void; + { + char[] sd = s; + { + s[0] = 'a'; + s[1] = 'b'; + s[2] = 'c'; + } + + printf("%p %p\n", s.ptr, sd.ptr); + printf("%c%c%c\n", s[0], s[1], s[2]); + } + + char[16] s1 = void; + char[16] s2 = void; + char[] d1 = s1; + + { + printf("%p\n%p\n%p\n", s1.ptr, s2.ptr, d1.ptr); + } + + int[16] arr; + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/ptrarith.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,35 @@ +extern(C) int printf(char*, ...); + +void main() +{ + printf("Pointer arithmetic test\n"); + int* p; + printf("0x%x\n", p); + assert(p++ is null); + assert(cast(size_t)p == 4); + printf("0x%x\n", p); + p--; + assert(p is null); + printf("0x%x\n", p); + int d = 4; + p+=d; + printf("0x%x\n", p); + assert(cast(size_t)p == 16); + d = 2; + p+=d; + printf("0x%x\n", p); + assert(cast(size_t)p == 0x18); + d = 6; + p-=d; + printf("0x%x\n", p); + assert(p is null); + printf(" SUCCESS\n"); +} + +void fill_byte_array(ubyte* a, size_t n, ubyte v) +{ + auto p = a; + auto end = a+n; + while (p !is end) + *p++ = v; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/r.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +extern(C) int printf(char*, ...); + +class C +{ + void dump() + { + printf("C dumped\n"); + } +} + +void heap() +{ + auto c = new C; + c.dump(); +} + +void stack() +{ + scope c = new C; + c.dump(); +} + +void main() +{ + heap(); + stack(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/s.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,85 @@ +module s; + +interface Inter +{ + void inter(); +} + +interface Inter2 +{ + void inter2(); +} + +interface InterOne : Inter +{ + void interOne(); +} + +abstract class ClassAbstract : InterOne +{ + abstract void inter(); + abstract void interOne(); +} + +class TheClassOne : ClassAbstract +{ + void inter() + { + } + void interOne() + { + } +} + +class TheClassTwo : TheClassOne, Inter2 +{ + long l; + double d; + + void inter2() + { + } +} + +extern(C) int printf(char*, ...); + +void main() +{ + printf("classinfo test\n"); + { + auto c = new TheClassOne; + { + auto ci = c.classinfo; + printf("ci = %.*s\n", ci.name.length, ci.name.ptr); + printf("ci.interfaces.length = %lu\n", ci.interfaces.length); + printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr); + printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr); + } + } + { + auto c = new TheClassTwo; + { + auto ci = c.classinfo; + printf("ci = %.*s\n", ci.name.length, ci.name.ptr); + printf("ci.interfaces.length = %lu\n", ci.interfaces.length); + printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr); + printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr); + printf("i[2] = %.*s\n", ci.interfaces[2].classinfo.name.length, ci.interfaces[2].classinfo.name.ptr); + } + auto i = cast(InterOne)c; + { + auto ci = i.classinfo; + printf("ci = %.*s\n", ci.name.length, ci.name.ptr); + } + auto i2 = cast(Inter2)i; + { + auto ci = i2.classinfo; + printf("ci = %.*s\n", ci.name.length, ci.name.ptr); + } + auto o = cast(Object)i2; + { + auto ci = o.classinfo; + printf("ci = %.*s\n", ci.name.length, ci.name.ptr); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/scope1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module scope1; +extern(C) int printf(char*, ...); +void main() +{ + printf("1\n"); + { + scope(exit) printf("2\n"); + } + printf("3\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/scope2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module scope2; +extern(C) int printf(char*, ...); +void main() +{ + scope(exit) printf("exit\n"); + scope(failure) printf("failure\n"); + scope(success) printf("success\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/scope3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module scope3; +extern(C) int printf(char*, ...); +void main() +{ + int i; + while (i < 10) { + scope(success) i++; + } + printf("%d\n", i); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/scope4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module scope4; +int main() +{ + int i; + try + { + return i; + } + finally + { + //i = 1; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/scope5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module scope5; + +int i; + +void func(int a, int b) +{ + i = 0; + { + scope(exit) i++; + if (a) { + scope(exit) i++; + if (b) return; + i++; + } + } + i++; +} + +void main() +{ + func(0,0); + assert(i == 2); + func(1,1); + assert(i == 2); + func(1,0); + assert(i == 4); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/sieve.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,33 @@ +/* Eratosthenes Sieve prime number calculation. */ + +extern(C) int printf(char*, ...); + +bool flags[8191]; + +int main() +{ int i, prime, k, count, iter; + + printf("10 iterations\n"); + for (iter = 1; + iter <= 10; + iter++) + { + count = 0; + flags[] = true; + for (i = 0; i < flags.length; i++) + { if (flags[i]) + { + prime = i + i + 3; + k = i + prime; + while (k < flags.length) + { + flags[k] = false; + k += prime; + } + count += 1; + } + } + } + printf("%d primes\n", count); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/slices.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,34 @@ +module slices; + +void main() +{ + //char[] a = "hello world"; + //char[5] b = a[0..5]; + + //char* cp = a.ptr; + //char[] c = cp[0..1]; +} + +char[] first5(char[] str) +{ + char* p = str.ptr; + return p[0..5]; +} + +int[] one() +{ + static int i; + return (&i)[0..1]; +} + +void[] init() +{ +static char c; +return (&c)[0 .. 1]; +} + +void[] init2() + { static char c; + + return (cast(char *)&c)[0 .. 1]; + } \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/sqrts.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module sqrts; + +import tango.stdc.math; + +double sqrt(double d) +{ + return tango.stdc.math.sqrt(d); +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/static_ctor.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +extern(C) int printf(char*, ...); + +static this() +{ + printf("static this\n"); +} + +static ~this() +{ + printf("static ~this\n"); +} + +void main() +{ + printf("main\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/staticarrays.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,78 @@ +extern(C) int printf(char*, ...); + +void numbers() +{ + bool[8] bools; + char[8] chars; + byte[8] bytes; + short[8] shorts; + int[8] ints; + long[8] longs; + float[8] floats; + double[8] doubles; + real[8] reals; + { + bools[7] = true; + floats[7] = 3.14159265; + { + printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]); + printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]); + } + } +} + +struct S +{ + int i = 42; + void print() + { + printf("S.i = %d\n", i); + } +} + +class C +{ + int i; + this() + { + i = 3; + } + void print() + { + printf("C.i = %d\n", i); + } +} + +void refs() +{ + void*[5] voids; + S*[5] structs; + C[5] classes; + + { + voids[0] = cast(void*)0xA; + printf("void* = %p\n", voids[0]); + } + { + structs[0] = new S; + structs[0].print(); + delete structs[0]; + } + { + classes[0] = new C; + classes[0].print(); + delete classes[0]; + } +} + +void vals() +{ + S[5] structs; +} + +void main() +{ + numbers(); + refs(); + vals(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/staticvars.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module staticvars; + +int func() +{ + static int i; + return i++; +} + +void main() +{ + assert(func() == 0); + assert(func() == 1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/stdiotest.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,28 @@ +module stdiotest; + +import std.stdio; + +T typed(T)(T x) +{ + return x; +} + +void main() +{ + /*char[] str = "hello"; + writefln(str); + + writefln("hello world");*/ + + char[] fmt = "%s"; + writefln(2.0f); + + /*{writefln(typed!(byte)(1));} + {writefln(typed!(short)(2));} + {writefln(typed!(int)(3));} + {writefln(typed!(long)(-4));} + {writefln(typed!(ulong)(5));} + {writefln("%f", typed!(float)(6));} + {writefln("%f", typed!(double)(7));} + {writefln("%f", typed!(real)(8));}*/ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/stdiotest2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module stdiotest2; +import std.stdio; +void main() +{ + int[4] v = [1,2,3,4]; + { + writefln("%s", v); + { + int[] dv = v; + {writefln("%s", dv);} + } + } + + { + writefln(v); + { + //int[] dv = v; + //{writefln(dv);} + } + } + //writefln(1,2,3,4.56,"hello",v); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/strings1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module strings1; +extern(C) int printf(char*, ...); +void f(char[11] buffer) +{ + printf("%.*s\n", buffer.length, buffer.ptr); +} + +void main() +{ + char[11] buffer; + char[] hello = "hello world"; + {buffer[] = hello[];} + {f(buffer);} + {f("eleven char");} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/strings2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module strings2; + +import std.string; +import std.stdio; + +void main() +{ + int i = 32; + auto str = format(i); + writefln(str); + + long l = 123123; + str = format(l); + writefln(str); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structinit.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,25 @@ +module structinit; + +import structinit2; + +struct S +{ + uint ui; + float f; + long l; + real r; +} + +S adef; + +S a = { 1, 2.0f }; +S b = { f:2.0f, l:42 }; + +Imp imp; + +void main() +{ + //assert(a == S.init); + //assert(b == S(0,3.14f,0,real.init)); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structinit2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module structinit2; + +struct Imp +{ + int i; + long l; + float f; +} + +void main() +{ + Imp i; + assert(i.i == 0); + assert(i.l == 0L); + assert(i.f !<>= 0.0f); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +struct S +{ + int func() + { + return 42; + } +} + +void main() +{ + S s; + int i = s.func(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module structs2; + +struct S +{ + int i; + char c; + S* s; + char[4] ca; +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ +module structs3; + +struct S +{ + char c; + float f; +} + +struct T +{ + S s; + long l; +} + +void main() +{ + T t; + float f = void; + float* fp = void; + {f = t.s.f;} + {t.s.f = 0.0;} + {fp = &t.s.f;} + {*fp = 1.0;} + {assert(t.s.f == 1.0);} + {assert(*(&t.s.f) == 1.0);} + {t.s.c = 'a';} + {assert(t.s.c == 'a');} + {t.l = 64;} + {assert(t.l == 64);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,26 @@ +module structs4; + +struct S{ + int a; + T t; +} + +struct T{ + int b; + U u; +} + +struct U{ + int c; +} + +void main() +{ + S s; + s.a = 3; + s.t = T.init; + s.t.b = 4; + s.t.u = U.init; + s.t.u.c = 5; + //{assert(s.t.u.c == 5);} +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,23 @@ +module structs5; + +void main() +{ + {S s = S();} + {T t = T(1);} + {U u = U();} +} + +struct S +{ +} + +struct T +{ + int i; +} + +struct U +{ + S s; + long l; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module structs6; + +struct S +{ + float f; +} + +void func(S s) +{ +} + +void main() +{ + func(S()); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/structs7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module structs7; + +pragma(LLVM_internal, "notypeinfo") +struct S +{ + int i; + long l; +} + +void main() +{ + S s = void; + int i = s.i; + long l = s.l; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/switch1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module switch1; + +void main() +{ + int i = 2; + int r; + switch (i) + { + case 1: r+=1; break; + case 2: r-=2; + case 3: r=3; break; + default: r=-1; + } + assert(r == 3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/switch2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module switch2; +extern(C) int printf(char*, ...); + +void main() +{ + int i = 2; + switch(i) + { + case 0: assert(0); + case 1,2: printf("hello world\n"); break; + default: assert(0); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/switch3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,25 @@ +module switch3; +extern(C) int printf(char*, ...); + +void main() +{ + char[] str = "hello"; + int i; + switch(str) + { + case "world": + i = 1; + assert(0); + case "hello": + i = 2; + break; + case "a","b","c": + i = 3; + assert(0); + default: + i = 4; + assert(0); + } + assert(i == 2); + printf("SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/switch4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module tangotests.switch1; + +void main() +{ + switch(0) + { + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/switch5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module tangotests.switch2; + +void main() +{ + int i=0; + switch(i) + { + case 0: + return; + case 1: + return; + default: + assert(0); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/switch6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,21 @@ +module tangotests.switch3; + +void main() +{ + int i = 2; + + switch(i) + { + case 0,1,4,5,6,7,8,9: + assert(0); + case 2: + return; + case 3: + { + i++; + case 11: + i++; + } + return; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/sync1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module sync1; + +void main() +{ + int i; + int j; + synchronized j = i; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/sync1_1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module tangotests.sync1; + +void main() +{ + size_t id; + synchronized id = 4; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/sync2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module tangotests.sync2; + +class Lock +{ +} + +Lock lock; + +void main() +{ + size_t id; + synchronized(lock) id = 2; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/sync3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module tangotests.sync3; + +void main() +{ + int i = foo(); +} + +int foo() +{ + int res; + synchronized + { + scope(exit) res--; + res++; + return res; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/t.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,34 @@ +interface MyInterface +{ + int func(); +} + +class MyClass : MyInterface +{ + int var; + int func() + { + return var; + } +} + +void func1(MyInterface i) +{ + int delegate() dg = &i.func; + func2(dg); +} + +extern(C) int printf(char*, ...); + +void func2(int delegate() dg) +{ + int i = dg(); + printf("%d\n", i); +} + +void main() +{ + auto c = new MyClass; + c.var = 42; + func1(c); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/templ1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module templ1; + +T func1(T)(T a) +{ + static T b = a; + return b; +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/templ2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +module templ2; +import templ1; + +void main() +{ + func1(1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/terms.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,45 @@ +module terms; + +void f() +{ + int i = 42; + if (i > 25) + return; + if (i < 25) { + return; + } + + if (i > 100) + return; + else + return; + + if (i < 1000) { + return; + } + else { + return; + } +} + +void main() +{ + int i = 42; + if (i > 25) + return; + if (i < 25) { + return; + } + + if (i > 100) + return; + else + return; + + if (i < 1000) { + return; + } + else { + return; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/throw1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,27 @@ +module throw1; + +extern(C) int rand(); + +class C +{ +} + +void func(bool b) +{ + if (b) + throw new C; +} + +int main() +{ + bool b = true; + try + { + func(b); + } + catch(Object) + { + return 0; + } + return 1; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/tuple1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module tuple1; + +template Tuple(T...) { + alias T Tuple; +} + +struct S +{ + int i; + long l; +} + +void main() +{ + S s = S(Tuple!(1,2L)); + assert(s.i == 1); + assert(s.l == 2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module typeinfo; +extern(C) int printf(char*, ...); + +void main() +{ + auto ti = typeid(int); + char[] str = ti.toString(); + printf("%.*s\n", str.length, str.ptr); + assert(str == "int"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo10.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,64 @@ +module typeinfo10; + +struct S +{ + long l; + float f; + void* vp; + + hash_t toHash() + { + return l + cast(size_t)f; + } + + int opEquals(S s) + { + return (s.l == l) && (s.f == f); + } + + int opCmp(S a) + { + if (l == a.l) { + return (f < a.f) ? -1 : (f > a.f) ? 1 : 0; + } + return (l < a.l) ? -1 : 1; + } + + char[] toString() + { + return "S instance"; + } +} + +void main() +{ + S s=S(-1, 0); + S t=S(-1, 1); + S u=S(11,-1); + S v=S(12,13); + + { + assert(s == s); + assert(s != t); + assert(s != v); + assert(s < t); + assert(u > s); + assert(v > u); + } + + { + auto ti = typeid(S); + assert(ti.getHash(&s) == s.toHash()); + assert(ti.equals(&s,&s)); + assert(!ti.equals(&s,&t)); + assert(!ti.equals(&s,&v)); + assert(ti.compare(&s,&s) == 0); + assert(ti.compare(&s,&t) < 0); + assert(ti.compare(&u,&s) > 0); + assert(ti.compare(&v,&u) > 0); + { + auto tis = cast(TypeInfo_Struct)ti; + assert(tis.xtoString(&s) == s.toString()); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo11.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module typeinfo11; + +void main() +{ + int[4] a; + TypeInfo ti; + ti = typeid(typeof(a)); + assert(ti.next() is typeid(int)); + assert(ti.tsize() == 16); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo12.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module typeinfo12; + +class C +{ +} + +void main() +{ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo13.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module typeinfo13; + +void main() +{ + float[long] aa; + auto ti = typeid(typeof(aa)); + assert(ti.toString() == "float[long]"); + assert(ti.next() is typeid(float)); + assert(ti.tsize() == size_t.sizeof); + auto aati = cast(TypeInfo_AssociativeArray)ti; + assert(aati.value is typeid(float)); + assert(aati.key is typeid(long)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module typeinfo2; + +void main() +{ + auto ti = typeid(float); + float f = 2.5; + hash_t fh = ti.getHash(&f); + assert(ti.next is null); + float g = 4.0; + ti.swap(&f,&g); + assert(f == 4.0 && g == 2.5); + assert(fh == *cast(uint*)(&g)); + assert(!ti.flags); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module typeinfo3; + +typedef int int_t; + +void main() +{ + /*int_t i; + auto ti = typeid(typeof(i)); + printf("%s\n",ti.toString.ptr); + assert(ti.toString() == "typeinfo3.int_t"); + assert(ti.next !is null); + assert(ti.next.toString() == "int"); + assert(ti.init is null);*/ +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module typeinfo4; + +void main() +{ + auto ti = typeid(void*); + assert(ti.toString() == "void*"); + assert(ti.tsize() == size_t.sizeof); + void* a = null; + void* b = a + 1; + assert(ti.compare(&a,&b) < 0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module typeinfo5; + +void main() +{ + enum E : uint { + A,B,C + } + auto ti = typeid(E); + assert(ti.next() is typeid(uint)); + assert(ti.init is null); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module typeinfo6; + +void main() +{ + auto ti = typeid(int[]); + assert(ti.toString() == "int[]"); + assert(ti.next() is typeid(int)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module typeinfo7; +extern(C) int printf(char*, ...); +int func(long) +{ + return 0; +} + +void main() +{ + auto ti = typeid(typeof(func)); + auto s = ti.toString; + printf("%.*s\n", s.length, s.ptr); + assert(s == "int()"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo8.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module typeinfo8; +extern(C) int printf(char*, ...); +struct S +{ + void func() + { + } +} + +void main() +{ + S a; + auto ti = typeid(typeof(&a.func)); + auto s = ti.toString; + printf("%.*s\n", s.length, s.ptr); + assert(s == "void delegate()"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/typeinfo9.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module typeinfo9; + +typedef int int_t = 42; + +void main() +{ + auto i = typeid(int_t).init; + assert(i.length == int_t.sizeof); + assert(*cast(int_t*)i.ptr == 42); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module union1; + +pragma(LLVM_internal, "notypeinfo") +union U +{ + float f; + int i; +} + +void main() +{ + float f = 2; + U u = U(f); + assert(u.i == *cast(int*)&f); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module union2; + +pragma(LLVM_internal, "notypeinfo") +union U +{ + float f; + long l; +} + +U u; + +void main() +{ + assert(u.f !<>= 0); + { + uint* p = 1 + cast(uint*)&u; + {assert(*p == 0);} + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,14 @@ +module union3; + +pragma(LLVM_internal, "notypeinfo") +union vec3 +{ + struct { float x,y,z; } + float[3] xyz; +} + +void main() +{ + vec3 v; + assert(&v.y is &v.xyz[1]); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,16 @@ +module union4; + +pragma(LLVM_internal, "notypeinfo") +union U { + struct { float x,y,z; } + float[3] xyz; +} + +void main() { + const float[3] a = [1f,2,3]; + U u = U(1,2,3); + assert(u.xyz == a); + assert(u.x == 1); + assert(u.y == 2); + assert(u.z == 3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,39 @@ +module union5; + +pragma(LLVM_internal, "notypeinfo") +{ + union S + { + T t; + U u; + uint i; + struct { + ushort sl,sh; + } + } + + struct T + { + int i; + } + + struct U + { + float f; + } +} + +void main() +{ + S s; + assert(s.t.i == 0); + assert(s.u.f == 0); + s.t.i = -1; + assert(s.i == 0xFFFF_FFFF); + float f = 3.1415; + s.u.f = f; + uint pi = *cast(uint*)&f; + assert(s.i == pi); + assert(s.sl == (pi&0xFFFF)); + assert(s.sh == (pi>>>16)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,22 @@ +module union6; + +pragma(LLVM_internal, "notypeinfo") { + struct S + { + byte a; + byte b; + } + union U + { + byte a; + byte b; + S c; + } +} + +void main() +{ + U u; + auto a = u.c.b; + //auto c = u.s.l; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/union7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,48 @@ +module union7; + +pragma(LLVM_internal, "notypeinfo") +struct Union +{ + union { + double g; + struct { + short s1,s2,s3,s4; + } + } + union { + float f; + long l; + } +} + +Union a = { f:4f }; +Union b = { 3.0, f:2 }; +Union c = { l:42, g:2.0 }; +Union d = { s2:3 }; +Union e = { s1:3, s4:4, l:5 }; + +void main() +{ + assert(a.f == 4f); + assert(a.g !<>= 0.0); + assert((a.l>>>32) == 0); + + assert(b.g == 3.0); + assert(b.f == 2f); + + assert(c.l == 42); + assert(c.g == 2.0); + + assert(d.s1 == 0); + assert(d.s2 == 3); + assert(d.s3 == 0); + assert(d.s4 == 0); + {assert(d.f !<>= 0f);} + {} + assert(e.s1 == 3); + assert(e.s2 == 0); + assert(e.s3 == 0); + {assert(e.s4 == 4);} + {} + assert(e.l == 5); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/unittest1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,10 @@ +module unittest1; + +void main() +{ +} + +unittest +{ + printf("hello\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/unrolled.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,15 @@ +module unrolled; + +extern(C) int printf(char*, ...); + +void test(T...)(T t) { + foreach (value; t) { + printf("%d\n", value); + if (value == 2) + break; + } +} + +void main() { + test(1,4,3); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/v2d.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,32 @@ +extern(C) int printf(char*, ...); + +struct V2D(T) +{ + T x,y; + + T dot(ref V2D v) + { + return x*v.x + y*v.y; + } + + V2D opAdd(ref V2D v) + { + return V2D(x+v.x, y+v.y); + } +} + +alias V2D!(float) V2Df; + +void main() +{ + printf("V2D test\n"); + auto up = V2Df(0.0f, 1.0f); + auto right = V2Df(1.0f, 0.0f); + assert(up.dot(right) == 0.0f); + auto upright = up + right; + assert(upright.x == 1.0f && upright.y == 1.0f); + auto copy = upright; + copy.x++; + assert(copy.x > upright.x); + printf(" SUCCESS\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,20 @@ +module vararg1; + +import tango.stdc.stdarg; + +extern(C) int add(int n, ...) +{ + va_list ap=void; + va_start(ap, n); + int r; + for (int i=0; i<n; i++) + r += va_arg!(int)(ap); + va_end(ap); + return r; +} + +void main() +{ + int i = add(4,1,2,3,4); + assert(i == 10); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module vararg2; + +void func(...) +{ + assert(_arguments.length == 2); + assert(_arguments[0] is typeid(int)); + int a = *cast(int*)_argptr; + _argptr += int.sizeof; + assert(_arguments[1] is typeid(int)); + a += *cast(int*)_argptr; + _argptr += int.sizeof; + assert(a == 3); +} + +void main() +{ + func(1,2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg3.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,19 @@ +module vararg3; + +import tango.core.Vararg; + +void func(...) +{ + assert(_arguments.length == 3); + assert(_arguments[0] is typeid(int)); + assert(_arguments[1] is typeid(float)); + assert(_arguments[2] is typeid(long)); + assert(va_arg!(int)(_argptr) == 4); + assert(va_arg!(float)(_argptr) == 2.5f); + assert(va_arg!(long)(_argptr) == 42L); +} + +void main() +{ + func(4, 2.5f, 42L); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,37 @@ +module vararg4; +import tango.core.Vararg; +extern(C) int printf(char*, ...); + +void vafunc(...) +{ + foreach(i,v; _arguments) { + if (typeid(byte) == v) { + printf("byte(%d)\n", va_arg!(byte)(_argptr)); + } + else if (typeid(short) == v) { + printf("short(%d)\n", va_arg!(short)(_argptr)); + } + else if (typeid(int) == v) { + printf("int(%d)\n", va_arg!(int)(_argptr)); + } + else if (typeid(long) == v) { + printf("long(%ld)\n", va_arg!(long)(_argptr)); + } + else if (typeid(float) == v) { + printf("float(%f)\n", va_arg!(float)(_argptr)); + } + else if (typeid(double) == v) { + printf("double(%f)\n", va_arg!(double)(_argptr)); + } + else if (typeid(real) == v) { + printf("real(%f)\n", va_arg!(real)(_argptr)); + } + else + assert(0, "unsupported type"); + } +} + +void main() +{ + vafunc(byte.max,short.max,1,2,3,4L,5.0f,6.0,cast(real)7); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg5.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module vararg5; +import tango.core.Vararg; +extern(C) int printf(char*, ...); +void func(...) +{ + char[] str = va_arg!(char[])(_argptr); + {printf("%.*s\n", str.length, str.ptr);} +} +void main() +{ + char[] str = "hello"; + func(str); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg6.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,249 @@ +// tries to implement a fairly complete variadic print function +module tangotests.vararg3; + +extern(C) int printf(char*, ...); + +struct User +{ + char[] name; + char[] nick; + uint age; + + char[] toString() + { + return nick ~ "(" ~ name ~ ")"; + } +} + +struct Infidel +{ + char[] whocares; +} + +class Obj +{ + private char[] ty; + + this(char[] t) + { + ty = t; + } + + char[] toString() + { + return "Obj(" ~ ty ~ ")"; + } +} + + struct TLA + { + char[3] acronym; + + char[] toString() + { + return acronym; + } +} + +void main() +{ + User user = User("Bob Doe", "bd", 47); + char[] str = user.toString(); + printf("Direct call:\n%.*s\nBy typeinfo:\n", str.length, str.ptr); + print(user, '\n'); + + print("Without toString:\n"); + Infidel inf = Infidel("not me"); + print(inf, '\n'); + + print("Character arrays:\n"); + print("hello world\n"); + + print("Signed integers:\n"); + print(cast(byte)byte.max,' ',cast(short)short.max,' ',cast(int)int.max,' ',cast(long)long.max,'\n'); + + print("Unsigned integers:\n"); + print(cast(ubyte)ubyte.max,' ',cast(ushort)ushort.max,' ',cast(uint)uint.max,' ',cast(ulong)ulong.max,'\n'); + + print("Floating point:\n"); + print(cast(float)1.273f, ' ', cast(double)3.412367, ' ', cast(real)142.96731112, '\n'); + + print("Arrays:\n"); + int[] ia1 = [1,2,3,4,5,6,7,8,9]; + print(ia1, '\n'); + float[] fa1 = [0.1f, 0.15f, 0.2f, 0.25f, 0.3f]; + print(fa1, '\n'); + + print("Pointers:\n"); + print(&user,'\n'); + print(&inf,'\n'); + print(&ia1,'\n'); + print(&fa1,'\n'); + + print("Static arrays:\n"); + int[5] isa1 = [1,2,4,8,16]; + print(isa1,'\n'); + + print("Classes:\n"); + Obj o = new Obj("foo"); + print(o, '\n'); + + print("Mixed:\n"); + print(123, ' ', 42.536f, " foobar ", ia1, ' ', user, '\n'); + print(42, ' ', cast(byte)12, ' ', user, ' ', cast(short)1445, " foo\n"); + + print("International:\n"); + print('æ','ø','å','\n'); + print('Æ','Ø','Å','\n'); + print("rød grød med fløde\n"); + print("Heiße\n"); + + print("TLAs:\n"); + TLA tla1 = TLA("FBI"); + TLA tla2 = TLA("CIA"); + TLA tla3 = TLA("TLA"); + print(tla1); + print(tla2); + print(tla3, '\n'); + print(tla1, tla2, tla3, '\n'); + print(TLA("FBI"), TLA("CIA"), TLA("TLA"), '\n'); + + print("Done!\n"); +} + +private void* get_va_arg(TypeInfo ti, ref void* vp) +{ + void* arg = vp; + vp = vp + ( ( ti.tsize + size_t.sizeof - 1 ) & ~( size_t.sizeof - 1 ) ); + return arg; +} + +void print(TypeInfo ti, void* arg) +{ + if (ti == typeid(byte)) + printf("%d", *cast(byte*)arg); + else if (ti == typeid(short)) + printf("%d", *cast(short*)arg); + else if (ti == typeid(int)) + printf("%d", *cast(int*)arg); + else if (ti == typeid(long)) + printf("%lld", *cast(long*)arg); + + else if (ti == typeid(ubyte)) + printf("%u", *cast(ubyte*)arg); + else if (ti == typeid(ushort)) + printf("%u", *cast(ushort*)arg); + else if (ti == typeid(uint)) + printf("%u", *cast(uint*)arg); + else if (ti == typeid(ulong)) + printf("%llu", *cast(ulong*)arg); + + else if (ti == typeid(float)) + printf("%f", *cast(float*)arg); + else if (ti == typeid(double)) + printf("%f", *cast(double*)arg); + else if (ti == typeid(real)) // FIXME: 80bit? + { + version(LLVM_X86_FP80) + printf("%llf", *cast(real*)arg); + else + printf("%f", *cast(real*)arg); + } + + else if (ti == typeid(char)) + printf("%.*s", 1, arg); + else if (ti == typeid(wchar)) + printf("%.*s", 2, arg); + else if (ti == typeid(dchar)) + printf("%.*s", 4, arg); + + else if (ti == typeid(char[])) + { + char[] str = *cast(char[]*)arg; + printf("%.*s", str.length, str.ptr); + } + else if (ti == typeid(wchar[])) + { + wchar[] str = *cast(wchar[]*)arg; + printf("%.*s", str.length*2, str.ptr); + } + else if (ti == typeid(dchar[])) + { + dchar[] str = *cast(dchar[]*)arg; + printf("%.*s", str.length*4, str.ptr); + } + + else if (auto pti = cast(TypeInfo_Pointer)ti) + { + printf("%p", *cast(void**)arg); + } + + else if (auto sti = cast(TypeInfo_Struct)ti) + { + if (sti.xtoString !is null) + { + char[] str = sti.xtoString(arg); + printf("%.*s", str.length, str.ptr); + } + else + { + char[] str = sti.toString(); + printf("%.*s", str.length, str.ptr); + } + } + + else if (auto ati = cast(TypeInfo_Array)ti) + { + auto tnext = ati.next; + size_t len = *cast(size_t*)arg; + void* ptr = *(cast(void**)arg + 1); + printf("["); + for(auto i=0; i<len; ++i) + { + print(tnext, get_va_arg(tnext, ptr)); + if (i < len-1) + printf(","); + } + printf("]"); + } + + else if (auto cti = cast(TypeInfo_Class)ti) + { + auto o = *cast(Object*)arg; + char[] str = o.toString(); + printf("%.*s", str.length, str.ptr); + } + + // static arrays are converted to dynamic arrays when passed to variadic functions + else if (auto sati = cast(TypeInfo_StaticArray)ti) + { + assert(0, "static arrays not supported"); + } + + else if (auto aati = cast(TypeInfo_AssociativeArray)ti) + { + assert(0, "associative array not supported"); + } + + else + { + char[] str = ti.toString(); + printf("typeinfo: %.*s\n", str.length, str.ptr); + str = ti.classinfo.name; + printf("typeinfo.classinfo: %.*s\n", str.length, str.ptr); + assert(0, "unsupported type ^"); + } +} + +void print(...) +{ + void* argptr = _argptr; + assert(argptr); + + foreach(i,ti; _arguments) + { + void* arg = get_va_arg(ti, argptr); + assert(arg); + print(ti, arg); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/vararg7.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,30 @@ +module tangotests.vararg4; + +extern(C) int printf(char*, ...); + +struct S +{ + int i; +} + +void func(...) +{ + S* sp = cast(S*)_argptr; + assert(sp.i == 42); +} + +void main() +{ + printf("1st:\n"); + { + S s = S(42); + func(s); + } + printf("ok\n"); + + printf("2nd:\n"); + { + func(S(42)); + } + printf("ok\n"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/virtcall.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,18 @@ +module virtcall; + +extern(C) int printf(char*, ...); + +class C +{ + override char[] toString() + { + return "overridden"; + } +} + +void main() +{ + C c = new C; + auto s = c.toString(); + printf("%.*s\n", s.length, s.ptr); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/void1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +extern(C) int printf(char*, ...); + +void main() +{ + int[0][10] arr; + printf("%u\n", &arr[9] - &arr[0]); + int[0] arr1; + printf("%p\n", &arr1); + void[0] arr2; + printf("%p\n", &arr2); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/with1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,17 @@ +module with1; +struct S +{ + int i; + float f; +} +void main() +{ + S s; + with(s) + { + i = 0; + f = 3.5; + } + assert(s.i == 0); + assert(s.f == 3.5); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/arrays1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,78 @@ +module tangotests.arrays1; + +import tango.stdc.stdio; + +void main() +{ + real[] arr; + print(arr); + main2(); +} + +void main2() +{ + real[] arr = void; + fill(arr); + print(arr); + main3(); +} + +void main3() +{ +} + +void print(real[] arr) +{ + printf("len=%u ; ptr=%p\n", arr.length, arr.ptr); +} + +void fill(ref real[] arr) +{ + auto ptr = cast(void**)&arr; + *ptr++ = cast(void*)0xbeefc0de; + *ptr = cast(void*)0xbeefc0de; +} + +void dg1(void delegate(int[]) dg) +{ + dg2(dg); +} + +void dg2(void delegate(int[]) dg) +{ + dg(null); +} + +void sarr1(int[16] sa) +{ + sarr1(sa); +} + +struct Str +{ + size_t length; + char* ptr; +} + +void str1(Str str) +{ + str1(str); +} + +void str2(ref Str str) +{ + str2(str); +} + +void str3(out Str str) +{ + str3(str); +} + +void str4(Str* str) +{ + str4(str); +} + +void str5(Str); +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/constructors.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,29 @@ +import tango.io.Console; + +class C +{ + this() + { + Cout("C()").newline; + } + this(char[] str) + { + Cout("C(")(str)(")").newline; + } +} + +class D : C +{ + this() + { + super("D"); + Cout("D()").newline; + } +} + +void main() +{ + auto c1 = new C(); + auto c2 = new C("C"); + auto d = new D(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/files1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,12 @@ +module tangotests.files1; + +//import tango.io.Stdout; +import tango.io.File; + +void main() +{ + auto file = new File("files1.output"); + char[] str = "hello world from files1 test\n"; + void[] data = cast(void[])str; + file.write(str); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/gc2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +module tangotests.gc2; + +import tango.core.Memory; + +void main() +{ + char[] tmp = new char[2500]; + GC.collect(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/ina1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,11 @@ +module tangotests.ina1; + +import tango.stdc.stdio; + +void main() +{ + int alder; + printf("Hvor gammel er du?\n"); + scanf("%d", &alder); + printf("om 10 år er du %d\n", alder + 10); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/l.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,6 @@ +import tango.io.Console; + +void main() +{ + Cout("Hi, says LLVMDC + Tango").newline; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/mem1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,63 @@ +module tangotests.mem1; + +import tango.stdc.stdio; + +void main() +{ + printf("new int;\n"); + int* i = new int; + assert(*i == 0); + + printf("new int[3];\n"); + int[] ar = new int[3]; + ar[0] = 1; + ar[1] = 56; + assert(ar.length == 3); + assert(ar[0] == 1); + assert(ar[1] == 56); + assert(ar[2] == 0); + + printf("array ~= elem;\n"); + int[] ar2; + ar2 ~= 22; + assert(ar2.length == 1); + assert(ar2[0] == 22); + + printf("array ~= array;\n"); + ar2 ~= ar; + assert(ar2.length == 4); + assert(ar2[0] == 22); + assert(ar2[1] == 1); + printf("%d %d %d %d\n", ar2[0], ar2[1], ar2[2], ar2[3]); + assert(ar2[2] == 56); + assert(ar2[3] == 0); + + printf("array ~ array;\n"); + int[] ar5 = ar ~ ar2; + assert(ar5.length == 7); + assert(ar5[0] == 1); + assert(ar5[1] == 56); + assert(ar5[2] == 0); + assert(ar5[3] == 22); + assert(ar5[4] == 1); + assert(ar5[5] == 56); + assert(ar5[6] == 0); + + printf("array ~ elem;\n"); + int[] ar4 = ar2 ~ 123; + assert(ar4.length == 5); + assert(ar4[0] == 22); + assert(ar4[1] == 1); + assert(ar4[2] == 56); + assert(ar4[3] == 0); + assert(ar4[4] == 123); + + printf("elem ~ array;\n"); + int[] ar3 = 123 ~ ar2; + assert(ar3.length == 5); + assert(ar3[0] == 123); + assert(ar3[1] == 22); + assert(ar3[2] == 1); + assert(ar3[3] == 56); + assert(ar3[4] == 0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/mem4.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,29 @@ +module tangotests.mem4; + +import tango.stdc.stdio; + +class C { + int* ptr; + this() { + printf("this()\n"); + ptr = new int; + } + ~this() { + printf("~this()\n"); + delete ptr; + assert(ptr is null); + } + final void check() + { + printf("check()\n"); + assert(ptr !is null); + } +} + +void main() +{ + C c = new C(); + c.check(); + delete c; + assert(c is null); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/stdout1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,7 @@ +import tango.io.Stdout; + +void main() +{ + Stdout("Hello World").newline; + Stdout.formatln("{} {}", "Hello", "World"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/stdout2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,8 @@ +module tangotests.stdout2; + +import tango.io.Stdout; + +void main() +{ + Stdout.formatln("{} {} {}", "a", "b", 1.0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/templ1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module tangotests.templ1; + +import Util = tango.text.Util; + +extern(C) int printf(char*, ...); + +void main() +{ + foreach (line; Util.lines("a\nb\nc")) + { + printf("%.*s\n", line.length, line.ptr); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/u.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,9 @@ +import tango.io.Console; +void main() +{ + Cout("getting name std").newline; + Cerr("getting name err").newline; + auto s = Cin.get(); + Cout("putting name").newline; + Cout (s).newline; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/vararg1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module tangotests.vararg1; + +import tango.stdc.stdio; + +void func(int[] arr...) +{ + printf("1,2,4,5,6 == %d,%d,%d,%d,%d\n", arr[0],arr[1],arr[2],arr[3],arr[4]); +} + +void main() +{ + func(1,2,4,5,6); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/vararg2.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,42 @@ +module tangotests.vararg2; + +extern(C) int printf(char*, ...); + +import tango.core.Vararg; + +void main() +{ + func(0xf00, 1, " ", 2, " ", 3, "\n", 0.3, "\n"); +} + +void func(int foo, ...) +{ + foreach(t; _arguments) + { + if (t == typeid(char[])) + { + char[] str = va_arg!(char[])(_argptr); + printf("%.*s", str.length, str.ptr); + } + else if (t == typeid(int)) + { + printf("%d", va_arg!(int)(_argptr)); + } + else if (t == typeid(float)) + { + printf("%f", va_arg!(float)(_argptr)); + } + else if (t == typeid(double)) + { + printf("%f", va_arg!(double)(_argptr)); + } + else if (t == typeid(real)) + { + printf("%f", va_arg!(real)(_argptr)); + } + else + { + assert(0, "not int"); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/minicomplex/volatile1.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,13 @@ +module tangotests.volatile1; + +import tango.stdc.stdlib; + +void main() +{ + int var = rand(); + { + int i = var; + volatile; + int j = i; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/runminitest.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,45 @@ +module runminitest; + +import std.file; +import std.path; +import std.process; +import std.stdio; + +int main(string[] args) { + string[] bad; + string[] badrun; + + chdir("mini"); + + auto contents = listdir(".", "*.d"); + foreach(c; contents) { + string cmd = "llvmdc -quiet "~c; + foreach(v; args[1..$]) { + cmd ~= ' '; + cmd ~= v; + } + writefln(cmd); + if (system(cmd) != 0) { + bad ~= c; + } + else if (system(getName(c)) != 0) { + badrun ~= c; + } + } + + int ret = 0; + if (bad.length > 0 || badrun.length > 0) { + writefln(bad.length, '/', contents.length, " of the tests failed to compile:"); + foreach(b; bad) { + writefln(" ",b); + } + writefln(badrun.length, '/', contents.length - bad.length, " of the compiled tests failed to run:"); + foreach(b; badrun) { + writefln(" ",b); + } + ret = 1; + } + + writefln(contents.length - bad.length - badrun.length, '/', contents.length, " of the tests passed"); + return ret; +}