Re: Broken tests
| From: | Dmitry Stogov | Date: | Fri, 26 Dec 2014 18:07:42 +0000 |
| Subject: | Re: Broken tests | ||
| References: | 1 2 3 4 5 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-83879@lists.php.net to get a copy of this message | ||
I'm not sure if these results reflect the latest committed tests...
But we definitely have some problem.
I also tried "9.99" as was mentioned in your comments and got "9.99" in
DEBUG build but, "9.99899..." in RELEASE and build with libmysql.
Thanks. Dmitry.
> mysqli fetch float values [ext/mysqli/tests/010.phpt]
> mysqli fetch mixed values [ext/mysqli/tests/011.phpt]
> mysqli fetch mixed values 2 [ext/mysqli/tests/012.phpt]
$ cat ../ext/mysqli/tests/010.diff
003+ float(3.141593)
003- float(3.14159274101)
005+ float(-1.0E-6)
005- float(-9.99999997475E-7)
009+ float(1.0E+12)
009- float(999999995904)
011+ float(0.5646425)
011- float(0.564642488956)
015+ float(8.888889E+14)
015- float(8.88888914608E+14)
$ cat ../ext/mysqli/tests/011.diff
011+ float(2345.6)
011- float(2345.60009766)
$ cat ../ext/mysqli/tests/012.diff
011+ float(2.6)
011- float(2.59999990463)
On Fri, Dec 26, 2014 at 8:56 PM, Keyur Govande <keyurgovande@gmail.com>
wrote:
>
>
> On Fri, Dec 26, 2014 at 12:53 PM, Dmitry Stogov <dmitry@zend.com> wrote:
>
>> Hi Keyer,
>>
>> In my tests (Linux x86 and x86_64) the current behavior of mysqlnd differ
>> form libmysql.
>>
>> Also your patch works differently in DEBUG and RELEASE mode.
>> GCC just eliminates double conversion and makes your patch useless for
>> RELEASE build (this may be fixed adding "volatile")
>> I'm not completely sure what behavior is right.
>> It would be great if you decide what should be done with Andrey and fix
>> this.
>>
>> The fixes back and forth were done because of misunderstanding of real
>> problem.
>>
>> Thanks. Dmitry.
>>
>
> Hi Dmitry,
>
> Can you provide a test script and outputs you're seeing so I can try to
> reproduce it?
>
>
>>
>>
>> On Fri, Dec 26, 2014 at 8:25 PM, Keyur Govande <keyurgovande@gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Fri, Dec 26, 2014 at 10:14 AM, Dmitry Stogov <dmitry@zend.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> It seems like the source of the problem is commit c044164a authored by
>>>> Keyur,
>>>>
>>>> I caught the problem because the behavior is different in DEBUG and
>>>> RELEASE builds.
>>>> However, I think the behavior introduced by that patch may be wrong.
>>>> At least it produces different results in comparison to libmysql.
>>>>
>>>> Andrey, please made a decision.
>>>>
>>>> Thanks. Dmitry.
>>>>
>>>
>>> Hello,
>>>
>>> I am a bit confused...I see that commit c2a047cf reverts my commit to
>>> fix failing tests (4e2c016). But then c2a047cf was also reverted back by
>>> 4409b6db3 a few hours back.
>>>
>>> Is there something I can help with? The original patch c044164a was
>>> authored to fix bug #67839 and bring mysqli in parity with libmysql's
>>> behavior on floating point numbers.
>>>
>>> Thanks,
>>> Keyur.
>>>
>>>
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Dmitry Stogov <dmitry@zend.com>
>>>> Date: Fri, Dec 26, 2014 at 5:18 PM
>>>> Subject: Broken tests
>>>> To: Xinchen Hui <xinchen.h@zend.com>
>>>> Cc: keyur_govande@yahoo.com, "php-cvs@lists.php.net" <
>>>> php-cvs@lists.php.net>
>>>>
>>>>
>>>> Hi Xinchen,
>>>>
>>>> The commit c2a047cf99f3d020bab12701e8dafed7424673bf made few tests to
>>>> start fail on 32-bit DEBUG build. The same tests seems to work in RELEASE
>>>> build.
>>>>
>>>> Are you sure these the are changed in a proper way?
>>>> For me it looks like something was broken in code, and then tests were
>>>> adjusted for wrong new behaviour.
>>>>
>>>> Please, find the source of the problem.
>>>>
>>>> Thanks. Dmitry.
>>>>
>>>> > mysqli fetch float values [ext/mysqli/tests/010.phpt]
>>>> > mysqli fetch mixed values [ext/mysqli/tests/011.phpt]
>>>> > mysqli fetch mixed values 2 [ext/mysqli/tests/012.phpt]
>>>>
>>>> $ cat ../ext/mysqli/tests/010.diff
>>>> 003+ float(3.141593)
>>>> 003- float(3.14159274101)
>>>> 005+ float(-1.0E-6)
>>>> 005- float(-9.99999997475E-7)
>>>> 009+ float(1.0E+12)
>>>> 009- float(999999995904)
>>>> 011+ float(0.5646425)
>>>> 011- float(0.564642488956)
>>>> 015+ float(8.888889E+14)
>>>> 015- float(8.88888914608E+14)
>>>>
>>>> $ cat ../ext/mysqli/tests/011.diff
>>>> 011+ float(2345.6)
>>>> 011- float(2345.60009766)
>>>>
>>>> $ cat ../ext/mysqli/tests/012.diff
>>>> 011+ float(2.6)
>>>> 011- float(2.59999990463)[dmitry@tpl2 CGI-DEBUG]$
>>>>
>>>>
>>>>
>>>
>>
>