# HG changeset patch # User thomask # Date 1097652103 0 # Node ID 4e88d22c699a1c4a5f67a88614341b105c3ea18a # Parent 9e828537e0b2f27cb0ec282378e49d8ed993d2d3 added '#line integer "filespec"' tests diff -r 9e828537e0b2 -r 4e88d22c699a run/line_token_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/line_token_01.d Wed Oct 13 07:21:43 2004 +0000 @@ -0,0 +1,41 @@ +int main(){ + try{ + #line -2 + assert(0); + }catch(Exception e){ + checkLineNumber(e); + return 0; + }catch(Error e){ + checkLineNumber(e); + return 0; + } + + assert(-1); + return 1; +} + +/* + * @WARNING@: this code depends on the phobos implementation. + * char[]s returned by wrong assertions have to look like: + * "blah blah (linenumber) blah blah" + */ +void checkLineNumber(Object o){ + char[] string=o.toString(); + + int start; + for(start=0; startstart; end--){ + if(string[end]==')'){ + break; + } + } + + assert(end-start==3); + assert(string[start+1 .. start+3]=="-2"); +} diff -r 9e828537e0b2 -r 4e88d22c699a run/line_token_02.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/line_token_02.d Wed Oct 13 07:21:43 2004 +0000 @@ -0,0 +1,41 @@ +int main(){ + try{ + #line 0 + assert(0); + }catch(Exception e){ + checkLineNumber(e); + return 0; + }catch(Error e){ + checkLineNumber(e); + return 0; + } + + assert(-1); + return 1; +} + +/* + * @WARNING@: this code depends on the phobos implementation. + * char[]s returned by wrong assertions have to look like: + * "blah blah (linenumber) blah blah" + */ +void checkLineNumber(Object o){ + char[] string=o.toString(); + + int start; + for(start=0; startstart; end--){ + if(string[end]==')'){ + break; + } + } + + assert(end-start==2); + assert(string[start+1]=='0'); +} diff -r 9e828537e0b2 -r 4e88d22c699a run/line_token_03.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/line_token_03.d Wed Oct 13 07:21:43 2004 +0000 @@ -0,0 +1,41 @@ +int main(){ + try{ + #line 0 "" + assert(0); + }catch(Exception e){ + checkFileSpec(e); + return 0; + }catch(Error e){ + checkFileSpec(e); + return 0; + } + + assert(-1); + return 1; +} + +/* + * @WARNING@: this code depends on the phobos implementation. + * char[]s returned by wrong assertions have to look like: + * "blah blah "filename" blah blah" + */ +void checkFileSpec(Object o){ + char[] string=o.toString(); + + int start; + for(start=0; start