使WordPress成为核心

开的19个月前

关闭14个月前

上次修改时间14个月前

#56817 关闭 缺陷(bug) (固定的)

调查PHP 8.2中的新测试失败

报告人: 德斯罗什的个人资料 德斯罗什 所有者: 谢尔盖比柳科夫的简介 谢尔盖·比尤科夫
里程碑: 6.2 优先: 正常的
严重程度: 正常的 版本:
组件: 构建/测试工具 关键词: 第82页 has-patch接口 has-unit-测试
重点: 复写的副本:

描述

PHP8.2上突然报告了一个新的单元测试失败。

出现1个故障:1) 测试函数::test_wp_check_filetype_and_ext_with_filtered_woff无法断言两个数组相同。---预期+++实际@@ @@数组0(&0)(-“ext”=>“woff”-“type”=>“application/font-woff”+'ext'=>假+“类型”=>false“proper_filename”=>假)/var/www/tests/phpunit/tests/functions.php:1428/var/www/vendor/bin/phpunit:123

经过调查,这似乎是由测试期间使用的PHP8.2 Docker容器引起的。

容器通常在星期天每周重建一次,以确保使用最新的点版本(在本例中为beta/RC版本)。不幸的是,GitHub禁用在上运行的工作流日程安排当一个存储库在一段时间内没有活动时,那么自8月27日以来就没有运行过。

重新启用工作流后,重新构建并推送容器。这更新了PHP 8.2的版本β3RC3号机组.

时间安排也一致。这个第一次故障容器更新后约1.5小时发生。

之间发生了变化8.2.0贝塔38.2.0立方厘米这就是导致这次失败的原因。

附件(3)

56817.差异(994字节)-由添加德斯罗什 19个月前.
56817-跳过差异(935字节)-由添加德斯罗什 19个月前.
56817-跳过2.diff(626字节)-由添加德斯罗什 19个月前.

将所有附件下载为:.zip文件

更改历史记录(30)

#1 @德斯罗什
19个月以前

这可能是由于https://github.com/php/php-src/issues/8805,这是包含在PHP 8.2.0RC3中。但仍不确定如何进行。

#2 @奥安德雷格尔
19个月以前

对于交叉引用,我在WordPress 6.1 RC2的PR中遇到了这个错误,https://github.com/WordPress/WordPress-develop/actions/runs/3241375868/jobs/5314643672

还有其他的失败。我不确定所有这些问题是否都源于同一个问题,但我想分享一下,所以有文档记录。

#3 @jrf公司
19个月以前

作为防止PR/补丁/提交被阻止的临时措施,我建议添加一个选择性(仅适用于PHP8.2)$this->markTestSkipped()在测试的顶部,带有指向此问题的链接。

然后,这个问题可以保持开放,以便更深入地研究这个问题,并确定这是测试问题还是src问题。

#4 @jrf公司
19个月以前

  • 关键词 第82页补充

#5 @德斯罗什
19个月以前

56817.差异修复了PHP8.2中的测试失败,但在所有其他版本中都会导致失败。但至少现在问题更清楚了。

我认为暂时跳过是可以的。

#6 @谢尔盖·比尤科夫
19个月以前

56817-跳过2.diff作为临时措施,我觉得不错👍

#7 @谢尔盖·比尤科夫
19个月以前

woff(沃尔夫)核心默认不支持扩展,我想需要进一步讨论的问题是,是否应该由插件来调整$types['woff']='application/font-woff';基于PHP版本,还是核心应该为此提供向后兼容性?

#8 @jrf公司
19个月以前

@desrosj请添加评论,并将此票据的链接添加到56817-跳过2.diff补丁。除此之外,看起来不错。

#9 @jrf公司
19个月以前

此外,我之前发现了一个类似的mimetypes问题网页PHP 5.6(我想是7.0)。这一问题尚未解决,有一份PR草案提供了更多(调试)信息:https://github.com/WordPress/WordPress-develop/pull/2453

注意:该PR中的所有测试+文档改进都已提交,只剩下调试提交。嗯。也许我应该在某个时候重新调整它的基础,让它更清楚我在那里调试的内容。

#10 @德斯罗什
19个月以前

54508以下为:

测试:暂时跳过PHP 8.2上的WOFF文件测试。

PHP8.2RC3中WOFF文件处理方式的最新更改导致了新的测试失败。

这暂时标记了测试wp_check_filetype_and_ext_with_filtered_woff()跳过测试,直到可以执行更深入的分析。

道具SergeyBiryukov,jrf,desrosj,oandregal。
请参见#56817.

#11 @德斯罗什
19个月以前

  • 里程碑已从更改6.16.2

将其移至6.2,因为它不是6.1中可以修复的。

#12 @德斯罗什
19个月以前

54509以下为:

测试:还原中的意外更改[54508].

取消放置desrosj。
请参见#56817.

#13 @谢尔盖·比尤科夫
18个月以前

54724以下为:

测试:暂时跳过PHP8.1上的WOFF文件测试。

PHP8.2RC3中WOFF文件处理方式的最新更改导致了新的测试失败。

之前在PHP8.2上跳过了这些测试,但显然是在文件信息扩展更新,它在PHP 8.1上也开始出现故障。

此提交将调整跳过条件以包含PHP8.1。

后续行动[55408],[54509].

请参见#56817.

#14 @谢尔盖·比尤科夫
18个月以前

54732以下为:

测试:暂时跳过PHP8.1上的WOFF文件测试。

最近在PHP 8.2 RC3中对WOFF文件处理方式的更改导致了新的测试失败。

之前在PHP8.2上跳过了这些测试,但显然是在文件信息扩展更新,它在PHP 8.1上也开始出现故障。

此提交将调整跳过条件以包含PHP8.1。

后续行动[54508],[54509].

审核人:desrosj,SergeyBiryukov。
合并[54724]到6.1分支。
请参见#56817.

#15 随访: @成本开发
15个月以前

更改过滤器时间类型woff()在测试中对此进行回调,使测试通过PHP 7.4/8.2:

<?php(电话) 
如果 ( PHP_版本_ID >= 80200 ) {
        $个mimes[“呜呜”] = 'font/woff';
} 其他的 {
        $个mimes[“呜呜”] = '应用程序/font-off';
}
返回 $个mimes;

然而,如中所述注释:13,在PHP 8.1上,成功与否取决于文件信息扩展。

目前对理想的最终目标的想法是什么?

  • 返回准确的PHP/fileinfo-dependent类型(应用程序/font-off字体/woff)? 或者
  • 该Core在所有PHP/fileinfo版本中返回一致的类型(应用程序/font-off)?

这张票是在松弛(Slack)costdev的in#core。查看日志.


14个月以前

#17 答复: 15 @谢尔盖·比尤科夫
14个月以前

回复成本开发以下为:

当前对理想最终目标的想法是什么?

  • 返回准确的PHP/fileinfo-dependent类型(应用程序/font-off字体/woff)?

我认为这将是这里的首选结果。让我们根据需要调整测试。

  • 或者Core在所有PHP/fileinfo版本中返回一致的类型(应用程序/font-off)?

从理论上讲,返回一致类型听起来不错,但如果更改为字体/woff在上游,引入与该变化的差异似乎不值得。

上次编辑时间14个月前通过谢尔盖·比尤科夫(以前的)(差异)

#18 @成本开发
14个月以前

  • 组件已从更改概述构建/测试工具

此票据在bug清理中进行了讨论,并同意将此票据移至构建/测试工具组件,以立即进行仅测试更改,并查看未来周期中是否需要slurce更改。

这张票是在松弛(Slack)costdev的in#core。查看日志.


14个月以前

这张票是在产品编号4175WordPress/WordPress-develop开发通过@谢尔盖·比尤科夫.


14个月以前
#20

  • 关键词 has-patch接口 has-unit-测试补充;需要-补丁远离的

#21 @谢尔盖·比尤科夫
14个月以前

  • 所有者设置为谢尔盖·比尤科夫
  • 分辨率设置为固定的
  • 状态已从更改新的关闭

55462以下为:

测试:调整PHP 8.1.12+上WOFF字体的预期mime类型。

从PHP8.1.12(包括5.42版的libmagic/file更新)开始,WOFF文件的预期mime类型已更改为字体/woff,因此需要在中相应调整类型wp_check_filetype_and_ext()测验。

参考文献:

后续行动[40124],[54508],[54509],[54724].

Props costdev,谢尔盖·比尤科夫。
修复#56817.

@谢尔盖·比尤科夫对发表了评论采购订单号4175以下为:


14个月以前
#22

已在中合并55462兰特.

#23 @谢尔盖·比尤科夫
14个月以前

55463以下为:

测试:调整PHP 8.1.12+上WOFF字体的预期mime类型。

从PHP8.1.12(包括5.42版的libmagic/file更新)开始,WOFF文件的预期mime类型已更改为字体/woff,因此需要在中相应调整类型wp_check_filetype_and_ext()测验。

参考文献:

后续行动[40124],[54508],[54509],[54724].

Props costdev,谢尔盖·比尤科夫。
合并[55462]到6.1分支。
修复#56817.

#24 @德斯罗什
14个月以前

  • 分辨率 固定的删除
  • 状态已从更改关闭重新打开的

看起来应该把它装回65.9分支。

允许PHP8.1作业在这些分支中失败,但因为这不涉及任何源代码更改,所以我认为修复测试不会有什么害处。对此有什么异议吗?

#25个 @jrf公司
14个月以前

我没有反对意见。

#26 @谢尔盖·比尤科夫
14个月以前

  • 分辨率设置为固定的
  • 状态已从更改重新打开的关闭

55497以下为:

测试:调整PHP 8.1.12+上WOFF字体的预期mime类型。

从PHP8.1.12(包括5.42版的libmagic/file更新)开始,WOFF文件的预期mime类型已更改为字体/woff,因此需要在中相应调整类型wp_check_filetype_and_ext()测验。

参考文献:

后续行动[40124],[54508],[54509],[54724].

Props desrosj、jrf、costdev、SergeyBiryukov。
合并[55462]到6.0分支。
修复#56817.

#27 @谢尔盖·比尤科夫
14个月以前

55498以下为:

测试:调整PHP 8.1.12+上WOFF字体的预期mime类型。

从PHP8.1.12(包括5.42版的libmagic/file更新)开始,WOFF文件的预期mime类型已更改为字体/woff,因此需要在中相应调整类型wp_check_filetype_and_ext()测验。

参考文献:

后续行动[40124],[54508],[55409],[54724].

Props desrosj、jrf、costdev、SergeyBiryukov。
合并[55462]到5.9分行。
修复#56817.

注:请参见TracTickets公司有关使用的帮助门票。