php / pecl-file_formats-yaml

YAML-1.1 parser and emitter
https://pecl.php.net/package/yaml
MIT License
72 stars 33 forks source link

Add AppVeyor CI integration #49

Closed cmb69 closed 4 years ago

cmb69 commented 4 years ago

There are 3 test failures to be expected. 2 of them are because of the hard-coded / in the expectations; you could either use %e instead, or just check for %s without the directory separator and the filename. The 3rd test fails likely due to int issues (might be https://bugs.php.net/79567).

Also, the build matrix in .appveyor.yml can be adapted according to your needs. Supporting master or older PHP versions (< 7.2) would require additional adjustments, though.

bd808 commented 4 years ago

@cmb69 I pushed a follow up patch (d4b225b) that fixes the EXPECTF path failures. The only error now is in tests/bug_74886.phpt on ARCH=x86,TS=0 builds:

TEST 14/73 [C:\projects\yaml\tests\bug_74886.phpt]
========DIFF========
013+     int(2147483647)
013-     int(3735928559)
========DONE========
FAIL Test PECL bug #74886 [C:\projects\yaml\tests\bug_74886.phpt]

This does seem to be some variation of https://bugs.php.net/79567. 2147483647 (0x7FFFFFFF) is the 32-bit signed int max value. The code in detect.c that converts hex strings to longs is now using ZEND_STRTOL(buf, (char **) NULL, 16) which apparently is not the right mojo to fix this. Any deep php internals wizard advice you may have would be appreciated.

bd808 commented 4 years ago

Any deep php internals wizard advice you may have would be appreciated.

Derp. The problem is that ARCH=x86 is a 32bit platform.