diff options
Diffstat (limited to 'contrib/bc/Test/TESTS.bc')
-rw-r--r-- | contrib/bc/Test/TESTS.bc | 565 |
1 files changed, 0 insertions, 565 deletions
diff --git a/contrib/bc/Test/TESTS.bc b/contrib/bc/Test/TESTS.bc deleted file mode 100644 index ec42172a422b..000000000000 --- a/contrib/bc/Test/TESTS.bc +++ /dev/null @@ -1,565 +0,0 @@ -From phil@cs.wwu.edu Mon Mar 20 23:13:22 1995 -Date: Mon, 20 Mar 1995 23:12:17 -0800 -From: Phil Nelson <phil@cs.wwu.edu> -To: phil@steelhead.cs.wwu.edu -Subject: [jhn@ironwood.cray.com: XPG4 bc(1) failures] - -From: jhn@ironwood.cray.com (James Nordby) -Subject: XPG4 bc(1) failures -To: phil@cs.wwu.edu -Date: Fri, 17 Mar 1995 12:14:13 -0600 (CST) -X-Mailer: ELM [version 2.4 PL24-CRI-b] -Mime-Version: 1.0 -Content-Type: text/plain; charset=US-ASCII -Content-Transfer-Encoding: 7bit -Content-Length: 14277 - - -Phil, - -Here are the test results I'm getting from the XPG4 test suite, -with some explanation and fixes so far. Let me know what you -think... - -Thanks much, -Jim Nordby (jhn@cray.com) - - --------- bc 08:38:34 -------- - -Assertion #20 (A): bc reads text files -Expected exit code = 0; Received 139 -Standard output isn't the same as file 'bc_eso_20_1' -diff of "out.stdout" and "bc_eso_20_1": -*** out.stdout Fri Mar 17 08:39:22 1995 ---- bc_eso_20_1 Fri Mar 17 08:39:22 1995 -*************** -*** 0 **** ---- 1,31 ---- -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 11111111111111111111111111111111111111111111111111111111111111111111 -+ 1111111 -Assertion Result: FAIL - -I couldn't reproduce this problem; when I rebuilt your bc and -ran it, I got a different problem with printing out a large -number. The XPG4 tests expected lines to be 70 characters -long, INCLUDING the newline (this comes from the POSIX definition -of a line). To fix it, I changed util.c like so: - -*** util.c Thu Mar 16 10:47:36 1995 ---- util.c.old Thu Mar 16 10:50:10 1995 -*************** -*** 309,323 **** - else - { - out_col++; -- #ifdef _CRAY -- /* -- * XPG4 considers a line to include the <newline>; -- * therefore we want 68 numerals, <backslash>, <newline> -- */ -- if (out_col == 69) -- #else - if (out_col == 70) -- #endif - { - putchar ('\\'); - putchar ('\n'); ---- 309,315 ---- - - - - - - -Assertion #42 (A): check reserved words -Standard error isn't empty -Contents of out.stderr: -(standard_in) 6: syntax error -(standard_in) 15: syntax error -Standard output isn't the same as file 'bc_eso_42_1' -diff of "out.stdout" and "bc_eso_42_1": -*** out.stdout Fri Mar 17 08:39:43 1995 ---- bc_eso_42_1 Fri Mar 17 08:39:43 1995 -*************** -*** 1,2 **** ---- 1,3 ---- - 2 - 1 -+ 0 -Assertion Result: FAIL - -This one is debatable, based on the grammar in the POSIX manual. -Here's the input file: - -cat << \VSC-EOF > input -define a() { - auto b; - for ( b = 0; b < 10; b++ ) { - b; - if ( b == 1 ) - break; - } - return ( 5 ) ; -} -ibase = 10; -length ( obase ); -scale = 0; -sqrt(1); -while ( a() != 5 ) -VSC-EOF - -They want these constructs to be accepted: - - -if (b == 1) - whatever; -for (x = 0; x < 10; x++) - whatever; -while (x < 10) - whatever; - -rather than just - -if (b == 1) { - whatever -} -etc. - -The grammar as it's currently worded requires a '{' before hitting -a NEWLINE for these constructs. It's easy enough to change in bc.y -(see below), but if I do change it, it still barfs on the last -line of the file ( 'while (a() != 5)' ). Since the while lacks -a body, it gives a syntax error; they're expecting a '0' to be -returned. The grammar could be changed to support this, but is -it a good idea? - - -*** bc.y Thu Mar 16 10:47:20 1995 ---- bc.y.old Thu Mar 16 10:50:11 1995 -*************** -*** 142,150 **** - | error statement - { $$ = $2; } - ; -- allow_newlines : /* empty */ -- | NEWLINE allow_newlines -- ; - statement : Warranty - { warranty (""); } - | Limits ---- 142,147 ---- -*************** -*** 231,237 **** - sprintf (genstr, "pJ%1d:N%1d:", $4, $7); - generate (genstr); - } -! allow_newlines statement - { - sprintf (genstr, "J%1d:N%1d:", - continue_label, break_label); ---- 228,234 ---- - sprintf (genstr, "pJ%1d:N%1d:", $4, $7); - generate (genstr); - } -! statement - { - sprintf (genstr, "J%1d:N%1d:", - continue_label, break_label); -*************** -*** 246,252 **** - sprintf (genstr, "Z%1d:", if_label); - generate (genstr); - } -! allow_newlines statement opt_else - { - sprintf (genstr, "N%1d:", if_label); - generate (genstr); ---- 243,249 ---- - sprintf (genstr, "Z%1d:", if_label); - generate (genstr); - } -! statement opt_else - { - sprintf (genstr, "N%1d:", if_label); - generate (genstr); -*************** -*** 265,271 **** - sprintf (genstr, "Z%1d:", break_label); - generate (genstr); - } -! ')' allow_newlines statement - { - sprintf (genstr, "J%1d:N%1d:", $1, break_label); - generate (genstr); ---- 262,268 ---- - sprintf (genstr, "Z%1d:", break_label); - generate (genstr); - } -! ')' statement - { - sprintf (genstr, "J%1d:N%1d:", $1, break_label); - generate (genstr); - - - - -Assertion #49 (A): check strings -Expected exit code = 0; Received 1 -Standard error isn't empty -Contents of out.stderr: -File (NULL) is unavailable. -Standard output isn't the same as file 'bc_eso_49_1' -diff of "out.stdout" and "bc_eso_49_1": -cmd-1794 diff: Missing newline at end of file 'bc_eso_49_1'. -*** out.stdout Fri Mar 17 08:40:01 1995 ---- bc_eso_49_1 Fri Mar 17 08:40:01 1995 -*************** -*** 0 **** ---- 1 ---- -+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -*LINE CONTINUATION -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -*LINE CONTINUATION -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -Assertion Result: FAIL - -This gist of this is that the standard expects numbers to -be truncated to 70 characters, but STRINGS should not. -My changes to fix this are: - - -*** execute.c Thu Mar 16 13:06:39 1995 ---- execute.c.old Thu Mar 16 10:50:09 1995 -*************** -*** 208,218 **** - case 'O' : /* Write a string to the output with processing. */ - while ((ch = byte(&pc)) != '"') - if (ch != '\\') -- #ifdef _CRAY -- putchar (ch); -- #else - out_char (ch); -- #endif - else - { - ch = byte(&pc); ---- 207,213 ---- -*************** -*** 219,234 **** - if (ch == '"') break; - switch (ch) - { -- #ifdef _CRAY -- case 'a': putchar (007); break; -- case 'b': putchar ('\b'); break; -- case 'f': putchar ('\f'); break; -- case 'n': putchar ('\n'); break; -- case 'q': putchar ('"'); break; -- case 'r': putchar ('\r'); break; -- case 't': putchar ('\t'); break; -- case '\\': putchar ('\\'); break; -- #else - case 'a': out_char (007); break; - case 'b': out_char ('\b'); break; - case 'f': out_char ('\f'); break; ---- 214,219 ---- -*************** -*** 237,243 **** - case 'r': out_char ('\r'); break; - case 't': out_char ('\t'); break; - case '\\': out_char ('\\'); break; -- #endif - default: break; - } - } ---- 222,227 ---- -*************** -*** 350,360 **** - break; - - case 'w' : /* Write a string to the output. */ -- #ifdef _CRAY -- while ((ch = byte(&pc)) != '"') putchar (ch); -- #else - while ((ch = byte(&pc)) != '"') out_char (ch); -- #endif - if (interactive) fflush (stdout); - break; - - - - -Assertion #77 (C): output longer than 70 characters -Standard output isn't the same as file 'bc_eso_77_1' -diff of "out.stdout" and "bc_eso_77_1": -*** out.stdout Fri Mar 17 08:41:13 1995 ---- bc_eso_77_1 Fri Mar 17 08:41:13 1995 -*************** -*** 1,2 **** -! 3.3333333333333333333333333333333333333333333333333333333333333333333 -! 33333333333333333333333333333333 ---- 1,2 ---- -! 3.333333333333333333333333333333333333333333333333333333333333333333 -! 333333333333333333333333333333333 -Assertion Result: FAIL - -Same as assertion #20 above... - - - - -Assertion #92 (A): check % -Standard output isn't the same as file 'bc_eso_92_1' -diff of "out.stdout" and "bc_eso_92_1": -*** out.stdout Fri Mar 17 08:41:33 1995 ---- bc_eso_92_1 Fri Mar 17 08:41:33 1995 -*************** -*** 4,8 **** - 4 - 15 - 1 -! 0 -! 0 ---- 4,8 ---- - 4 - 15 - 1 -! 6 -! 5 -Assertion Result: FAIL - -This one is a pain. The failing code looks like this: - -scale = 4 -scale ( 5.000000 % 2.0 ) -scale ( 5.00 % 2.0 ) - -They expect '6' and '5' for output, instead of '0', based on -the explanation of the modulus operator ("scale of the result -shall be 'max(scale + scale(b), scale(a)'"), even though the -result is a 0. I was able to fix this problem by the change -below: - -*** number.c Thu Mar 16 13:15:43 1995 ---- number.c.old Thu Mar 16 10:50:09 1995 -*************** -*** 614,623 **** - case 0: - /* They are equal! return zero! */ - diff = copy_num (_zero_); -- #ifdef _CRAY -- /* correct the scale here */ -- diff->n_scale = MAX (n1->n_scale, n2->n_scale); -- #endif - break; - case 1: - /* n2 is less than n1, subtract n2 from n1. */ - -but this causes another test failure that I haven't looked at. - - - - -Assertion #130 (A): functions are call by value -Standard output isn't the same as file 'bc_eso_130_1' -diff of "out.stdout" and "bc_eso_130_1": -*** out.stdout Fri Mar 17 08:42:24 1995 ---- bc_eso_130_1 Fri Mar 17 08:42:24 1995 -*************** -*** 4,10 **** - 5 - 4 - 0 -! 4 - 3 - 3 - 5 ---- 4,10 ---- - 5 - 4 - 0 -! 5 - 3 - 3 - 5 -Assertion Result: FAIL - -Assertion #131 (A): functions are call by value -Standard output isn't the same as file 'bc_eso_131_1' -diff of "out.stdout" and "bc_eso_131_1": -*** out.stdout Fri Mar 17 08:42:28 1995 ---- bc_eso_131_1 Fri Mar 17 08:42:28 1995 -*************** -*** 4,10 **** - 5 - 4 - 0 -! 4 - 3 - 3 - 5 ---- 4,10 ---- - 5 - 4 - 0 -! 5 - 3 - 3 - 5 -Assertion Result: FAIL - - -Both of these are the 'arrays are passed by value' problem. -One of the test cases is below: - -cat << \VSC-EOF > bc_in_130_1 -a[0] = 3 -a[0] -define b(a[]) { -a[0] -a[0] = 4 -a[0] -} -a[0] -a[0] = 5 -a[0] -b(a[]) -a[0] -VSC-EOF - -They expect the assignment of a[0] inside the b() function -to not affect a[0] outside of the function. - - - - - -Assertion #139 (A): check sin -Standard output isn't the same as file 'bc_eso_139_1' -diff of "out.stdout" and "bc_eso_139_1": -*** out.stdout Fri Mar 17 08:42:40 1995 ---- bc_eso_139_1 Fri Mar 17 08:42:39 1995 -*************** -*** 1,5 **** - 0 -! 20 - 1.68294196961579301330 - 20 - 1.6829419696 ---- 1,5 ---- - 0 -! 0 - 1.68294196961579301330 - 20 - 1.6829419696 -Assertion Result: FAIL - -Assertion #141 (A): check arctanngent -Standard output isn't the same as file 'bc_eso_141_1' -diff of "out.stdout" and "bc_eso_141_1": -*** out.stdout Fri Mar 17 08:42:44 1995 ---- bc_eso_141_1 Fri Mar 17 08:42:44 1995 -*************** -*** 1,5 **** - 0 -! 20 - 3.14159265358979323844 - 20 - 3.1415926532 ---- 1,5 ---- - 0 -! 0 - 3.14159265358979323844 - 20 - 3.1415926532 -Assertion Result: FAIL - -Assertion #142 (A): check log -Standard output isn't the same as file 'bc_eso_142_1' -diff of "out.stdout" and "bc_eso_142_1": -*** out.stdout Fri Mar 17 08:42:47 1995 ---- bc_eso_142_1 Fri Mar 17 08:42:47 1995 -*************** -*** 1,5 **** - 0 -! 20 - 2.30258509299404568401 - 20 - 2.3025850929 ---- 1,5 ---- - 0 -! 0 - 2.30258509299404568401 - 20 - 2.3025850929 -Assertion Result: FAIL - -Assertion #144 (A): check bessel -Standard output isn't the same as file 'bc_eso_144_1' -diff of "out.stdout" and "bc_eso_144_1": -*** out.stdout Fri Mar 17 08:42:51 1995 ---- bc_eso_144_1 Fri Mar 17 08:42:51 1995 -*************** -*** 1,5 **** - 0 -! 20 - .57672480775687338720 - 20 - .5767248077 ---- 1,5 ---- - 0 -! 0 - .57672480775687338720 - 20 - .5767248077 -Assertion Result: FAIL - -All of these are the same. I'll give you the test case -for 'sin'; what they're expecting is 0: - -scale(s(0)) - -bc outputs '20' (which is the scale at the time), but the -interpretation of the standard says that it should be '0', -since s(0) is 0, and the scale of 0 is 0. I think that -this interpretation disagrees with one of the previous -assertions (assertion #92). - -/* end of test results */ - - - --- -Phil Nelson -e-mail: phil@cs.wwu.edu -http://www.cs.wwu.edu/~phil - - |