On Mon, 04 Feb 2013 21:50:23 +0100, Levi Morrison <le...@php.net> wrote:

I have been compiling PHP under various compilers trying to figure out
what flags I need for each compiler to pass all tests excluding
XFAILs. With Intel 13.0.1 I'm down to two failing tests:

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Test fmod() - basic function test fmod()
[ext/standard/tests/math/fmod_basic.phpt]
Test fmod function : 64bit long tests
[ext/standard/tests/math/fmod_basiclong_64bit.phpt]
=====================================================================

The only differences are between -0 and 0 (exact diffs at end of message).

My understanding of floating point calculations is that -0 and 0 are
equivalent, so I can safely ignore the failures. I wanted to first
check to make sure that is actually true.

No, they are not the same thing for several purposes. For instance, they have different serializations. See also:

$ php
<?php $nz = fmod(-2,2); var_dump(atan2(0., $nz), atan2($nz, $nz));
float(3.1415926535898)
float(-3.1415926535898)

So I think you should investigate the cause of the problem (different results), rather than ignoring the differences. Possibly the difference lies in the Intel math library; in that case, you can either separate the tests in two or just ignore the test when compiling with the Intel compiler.

Assuming that the above is correct, I wanted to patch the phpt files
for the tests to pass. However, I'm not very familiar with that
format.  How would you suggest altering the tests to make this pass?


Check these:

http://qa.php.net/write-test.php
http://qa.php.net/phpt_details.php

You can also inspect the file run-tests.php if you have any doubt.

--
Gustavo Lopes

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to