From 0fbd3e35c72188bd4c974bf40e10a47fb49bc04f Mon Sep 17 00:00:00 2001 From: ptarjan Date: Wed, 3 Apr 2013 18:23:16 -0700 Subject: [PATCH] add bcmath tests All the bad tests seem to be error mis-matches. I already changed one error message about arguments so I think I should just make all these too many too few errors match. --- .../test/zend/bad/ext-bcmath/bcdiv_error2.php | 3 +++ .../zend/bad/ext-bcmath/bcdiv_error2.php.exp | 1 + .../test/zend/bad/ext-bcmath/bcmod_error1.php | 3 +++ .../zend/bad/ext-bcmath/bcmod_error1.php.exp | 1 + .../zend/bad/ext-bcmath/bcpowmod_error1.php | 3 +++ .../bad/ext-bcmath/bcpowmod_error1.php.exp | 1 + .../zend/bad/ext-bcmath/bcpowmod_error2.php | 3 +++ .../bad/ext-bcmath/bcpowmod_error2.php.exp | 1 + .../zend/bad/ext-bcmath/bcpowmod_error3.php | 3 +++ .../bad/ext-bcmath/bcpowmod_error3.php.exp | 1 + .../zend/good/ext-bcmath/bcdiv_error1.php | 3 +++ .../zend/good/ext-bcmath/bcdiv_error1.php.exp | 1 + .../zend/good/ext-bcmath/bcsqrt_error1.php | 3 +++ .../good/ext-bcmath/bcsqrt_error1.php.exp | 1 + hphp/test/zend/good/ext-bcmath/bug60377.php | 6 ++++++ .../zend/good/ext-bcmath/bug60377.php.exp | 1 + hphp/tools/import_zend_test.py | 19 +++++++++++++++---- 17 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php create mode 100644 hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php.exp create mode 100644 hphp/test/zend/bad/ext-bcmath/bcmod_error1.php create mode 100644 hphp/test/zend/bad/ext-bcmath/bcmod_error1.php.exp create mode 100644 hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php create mode 100644 hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php.exp create mode 100644 hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php create mode 100644 hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php.exp create mode 100644 hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php create mode 100644 hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php.exp create mode 100644 hphp/test/zend/good/ext-bcmath/bcdiv_error1.php create mode 100644 hphp/test/zend/good/ext-bcmath/bcdiv_error1.php.exp create mode 100644 hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php create mode 100644 hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php.exp create mode 100644 hphp/test/zend/good/ext-bcmath/bug60377.php create mode 100644 hphp/test/zend/good/ext-bcmath/bug60377.php.exp diff --git a/hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php b/hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php new file mode 100644 index 000000000..6d224379c --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php.exp b/hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php.exp new file mode 100644 index 000000000..e8eea2ed6 --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcdiv_error2.php.exp @@ -0,0 +1 @@ +HipHop Warning: bcdiv() expects at most 3 parameters, 4 given in %s.php on line %d diff --git a/hphp/test/zend/bad/ext-bcmath/bcmod_error1.php b/hphp/test/zend/bad/ext-bcmath/bcmod_error1.php new file mode 100644 index 000000000..c4f148f8d --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcmod_error1.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/bad/ext-bcmath/bcmod_error1.php.exp b/hphp/test/zend/bad/ext-bcmath/bcmod_error1.php.exp new file mode 100644 index 000000000..c61c1cfb2 --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcmod_error1.php.exp @@ -0,0 +1 @@ +HipHop Warning: Missing argument 2 for bcmod() in %s.php on line %d diff --git a/hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php new file mode 100644 index 000000000..eba41d6e1 --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php.exp b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php.exp new file mode 100644 index 000000000..6b3b32d7a --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error1.php.exp @@ -0,0 +1 @@ +HipHop Warning: bcpowmod() expects at least 3 parameters, 1 given in %s.php on line %d diff --git a/hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php new file mode 100644 index 000000000..08d9378a9 --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php.exp b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php.exp new file mode 100644 index 000000000..4773bb972 --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error2.php.exp @@ -0,0 +1 @@ +HipHop Warning: bcpowmod() expects at least 3 parameters, 2 given in %s.php on line %d diff --git a/hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php new file mode 100644 index 000000000..662879d43 --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php.exp b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php.exp new file mode 100644 index 000000000..0357c89cc --- /dev/null +++ b/hphp/test/zend/bad/ext-bcmath/bcpowmod_error3.php.exp @@ -0,0 +1 @@ +HipHop Warning: bcpowmod() expects at most 4 parameters, 5 given in %s.php on line %d diff --git a/hphp/test/zend/good/ext-bcmath/bcdiv_error1.php b/hphp/test/zend/good/ext-bcmath/bcdiv_error1.php new file mode 100644 index 000000000..11c6fc0cd --- /dev/null +++ b/hphp/test/zend/good/ext-bcmath/bcdiv_error1.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/good/ext-bcmath/bcdiv_error1.php.exp b/hphp/test/zend/good/ext-bcmath/bcdiv_error1.php.exp new file mode 100644 index 000000000..a42e15144 --- /dev/null +++ b/hphp/test/zend/good/ext-bcmath/bcdiv_error1.php.exp @@ -0,0 +1 @@ +HipHop Warning: Division by zero in hphp/test/zend/good/ext-bcmath/bcdiv_error1.php on line 2 diff --git a/hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php b/hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php new file mode 100644 index 000000000..3d40ac57c --- /dev/null +++ b/hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php.exp b/hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php.exp new file mode 100644 index 000000000..240b1de9f --- /dev/null +++ b/hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php.exp @@ -0,0 +1 @@ +HipHop Warning: Square root of negative number in hphp/test/zend/good/ext-bcmath/bcsqrt_error1.php on line 2 diff --git a/hphp/test/zend/good/ext-bcmath/bug60377.php b/hphp/test/zend/good/ext-bcmath/bug60377.php new file mode 100644 index 000000000..f80392da3 --- /dev/null +++ b/hphp/test/zend/good/ext-bcmath/bug60377.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/hphp/test/zend/good/ext-bcmath/bug60377.php.exp b/hphp/test/zend/good/ext-bcmath/bug60377.php.exp new file mode 100644 index 000000000..0b487b69b --- /dev/null +++ b/hphp/test/zend/good/ext-bcmath/bug60377.php.exp @@ -0,0 +1 @@ +ALIVE \ No newline at end of file diff --git a/hphp/tools/import_zend_test.py b/hphp/tools/import_zend_test.py index 899003a38..372d1d4fc 100644 --- a/hphp/tools/import_zend_test.py +++ b/hphp/tools/import_zend_test.py @@ -53,6 +53,9 @@ bad_tests = ( errors = ( # generic inconsistencies ('Variable passed to ([^\s]+)\(\) is not an array or object', 'Invalid operand type was used: expecting an array'), + ('bcdiv\(\): ', ''), + ('bcsqrt\(\): ', ''), + ('bcpowmod\(\): ', ''), # I can't do math with backreferences so write them out ('([^\s]+)\(\) expects exactly 1 parameter, 0 given', r'Missing argument 1 for \1()'), @@ -83,6 +86,12 @@ parser.add_argument( action='store_true', help="leave around test/zend/all directory." ) +parser.add_argument( + "-v", + "--verbose", + action='store_true', + help="print out extra stuff." +) args = parser.parse_args() @@ -127,7 +136,7 @@ def walk(filename, source): elif sections.has_key('EXPECTREGEX'): exp = sections['EXPECTREGEX'] else: - print "Malformed test, no --EXPECT-- or --EXPECTF--: ", filename + print "Malformed test, no --EXPECT-- or --EXPECTF-- or --EXPECTREGEX--: ", filename return if sections.has_key('POST'): @@ -253,13 +262,14 @@ for root, dirs, files in os.walk('test/zend/all'): mkdir_p(os.path.dirname(bad_file)) def isOkDiff(original_name): + global args for test in bad_tests: if test in original_name: return False - filename = original_name + '.diff' # no diff file or is empty - if not os.path.exists(original_name + '.diff') or os.stat(filename)[6] == 0: + if (not os.path.exists(original_name + '.diff') or \ + os.stat(original_name + '.diff')[6] == 0): return True wanted_re = file(original_name + '.exp').read().strip() @@ -311,8 +321,9 @@ for root, dirs, files in os.walk('test/zend/all'): wanted_re = wanted_re.replace('%f', '[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?') wanted_re = wanted_re.replace('%c', '.') - # print repr(wanted_re), '\n', repr(output), '\n', re.match(wanted_re, output) match = re.match(wanted_re, output) + if args.verbose: + print '\n', original_name, '\n', repr(wanted_re), '\n', repr(output), '\n', match is not None return match and match.group() == output