Mercurial > projects > dstress
changeset 37:4e88d22c699a
added '#line integer "filespec"' tests
author | thomask |
---|---|
date | Wed, 13 Oct 2004 07:21:43 +0000 |
parents | 9e828537e0b2 |
children | cc64b53095b1 |
files | run/line_token_01.d run/line_token_02.d run/line_token_03.d run/line_token_04.d |
diffstat | 4 files changed, 165 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /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; start<string.length; start++){ + if(string[start]=='('){ + break; + } + } + + int end; + for(end=string.length-1; end>start; end--){ + if(string[end]==')'){ + break; + } + } + + assert(end-start==3); + assert(string[start+1 .. start+3]=="-2"); +}
--- /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; start<string.length; start++){ + if(string[start]=='('){ + break; + } + } + + int end; + for(end=string.length-1; end>start; end--){ + if(string[end]==')'){ + break; + } + } + + assert(end-start==2); + assert(string[start+1]=='0'); +}
--- /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<string.length; start++){ + if(string[start]=='"'){ + break; + } + } + + int end; + for(end=start+1; end<string.length; end++){ + if(string[end]=='"'){ + break; + } + } + + assert(end<string.length); + assert(end-start==1); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/line_token_04.d Wed Oct 13 07:21:43 2004 +0000 @@ -0,0 +1,42 @@ +int main(){ + try{ + #line 0 "a" + 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<string.length; start++){ + if(string[start]=='"'){ + break; + } + } + + int end; + for(end=start+1; end<string.length; end++){ + if(string[end]=='"'){ + break; + } + } + + assert(end<string.length); + assert(end-start==2); + assert(string[start+1]=='a'); +}