diff options
Diffstat (limited to 'Examples/test-suite/d/default_args_runme.1.d')
-rw-r--r-- | Examples/test-suite/d/default_args_runme.1.d | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/Examples/test-suite/d/default_args_runme.1.d b/Examples/test-suite/d/default_args_runme.1.d new file mode 100644 index 000000000..0ad63b7c2 --- /dev/null +++ b/Examples/test-suite/d/default_args_runme.1.d @@ -0,0 +1,127 @@ +module default_args_runme; + +import default_args.default_args; +import default_args.ConstMethods; +import default_args.EnumClass; +import default_args.Except; +import default_args.Foo; +import default_args.Klass; +import default_args.Statics; +import default_args.Tricky; + +void main() { + if (anonymous() != 7771) + throw new Exception("anonymous (1) failed"); + if (anonymous(1234) != 1234) + throw new Exception("anonymous (2) failed"); + + if (booltest() != true) + throw new Exception("booltest (1) failed"); + if (booltest(true) != true) + throw new Exception("booltest (2) failed"); + if (booltest(false) != false) + throw new Exception("booltest (3) failed"); + + auto ec = new EnumClass(); + if (ec.blah() != true) + throw new Exception("EnumClass failed"); + + if (casts1() != null) + throw new Exception("casts1 failed"); + + if (casts2() != "Hello") + throw new Exception("casts2 failed"); + + if (casts1("Ciao") != "Ciao") + throw new Exception("casts1 not default failed"); + + if (chartest1() != 'x') + throw new Exception("chartest1 failed"); + + if (chartest2() != '\0') + throw new Exception("chartest2 failed"); + + if (chartest1('y') != 'y') + throw new Exception("chartest1 not default failed"); + + if (chartest1('y') != 'y') + throw new Exception("chartest1 not default failed"); + + if (reftest1() != 42) + throw new Exception("reftest1 failed"); + + if (reftest1(400) != 400) + throw new Exception("reftest1 not default failed"); + + if (reftest2() != "hello") + throw new Exception("reftest2 failed"); + + // rename + auto foo = new Foo(); + foo.newname(); + foo.newname(10); + foo.renamed3arg(10, 10.0); + foo.renamed2arg(10); + foo.renamed1arg(); + + // exception specifications + testException( { exceptionspec(); }, "exceptionspec 1" ); + testException( { exceptionspec(-1); }, "exceptionspec 2" ); + testException( { exceptionspec(100); }, "exceptionspec 3" ); + + auto ex = new Except(false); + testException( { ex.exspec(); }, "exspec 1" ); + testException( { ex.exspec(-1); }, "exspec 2" ); + testException( { ex.exspec(100); }, "exspec 3" ); + testException( { ex = new Except(true); }, "Except constructor 1" ); + testException( { ex = new Except(true, -2); }, "Except constructor 2" ); + + // Default parameters in static class methods + if (Statics.staticmethod() != 10+20+30) + throw new Exception("staticmethod 1 failed"); + if (Statics.staticmethod(100) != 100+20+30) + throw new Exception("staticmethod 2 failed"); + if (Statics.staticmethod(100,200,300) != 100+200+300) + throw new Exception("staticmethod 3 failed"); + + + auto tricky = new Tricky(); + if (tricky.privatedefault() != 200) + throw new Exception("privatedefault failed"); + if (tricky.protectedint() != 2000) + throw new Exception("protectedint failed"); + if (tricky.protecteddouble() != 987.654) + throw new Exception("protecteddouble failed"); + if (tricky.functiondefault() != 500) + throw new Exception("functiondefault failed"); + if (tricky.contrived() != 'X') + throw new Exception("contrived failed"); + + if (constructorcall().val != -1) + throw new Exception("constructorcall test 1 failed"); + + if (constructorcall(new Klass(2222)).val != 2222) + throw new Exception("constructorcall test 2 failed"); + + if (constructorcall(new Klass()).val != -1) + throw new Exception("constructorcall test 3 failed"); + + // const methods + auto cm = new ConstMethods(); + if (cm.coo() != 20) + throw new Exception("coo test 1 failed"); + if (cm.coo(1.0) != 20) + throw new Exception("coo test 2 failed"); +} + +void testException(void delegate() command, char[] testName) { + bool didntThrow; + try { + command(); + didntThrow = true; + } catch (Exception e) {} + + if (didntThrow) { + throw new Exception(testName ~ " failed"); + } +} |