请分享您对2024 年 Clojure 调查的看法!

欢迎!请参阅关于页面以了解有关此页面更多的工作原理信息。

0
ClojureScript
预期行为

任何来自 {{./script/test}} 的失败都将导致非零退出代码,并在摘要中显示失败的一些指示。
这并不意味着我们快速失败,我们像目前一样运行所有可用的目标环境。

实际行为

摘要确实报告了测试过的环境数量(例如,{{测试了 6 个可能的目标中的 6 个}}),但没有在摘要中提供关于这些环境失败的信息。
而且,总是以 0 退出。
因为 {{./script/test}} 产生大量输出,而失败被埋藏在其中,所以在有失败时很容易认为成功。

相关

CLJS-3098 - 此工作应与 Windows 上的 Git Bash 兼容

另请参阅

{{./script/test-simple}}

分析

初步测试表明,{{./script/test-simple}} 没有运行,需要将 {{:main}} 添加到编译器选项中。

方法
  1. 将 {{./script/test}} 和 {{./script/test-simple}} 中的重复代码移动到共享的 {{./script/test-runner}}。
  2. 为每个测试目标产生一行摘要,传达通过、失败或跳过的状态。
  3. 如果没有失败并且至少有一个目标通过,则退出状态为 0(成功);否则,退出状态为 1(失败)。
  4. 简化输出以便一眼即可解析。
  5. 尊重 NO_COLOR(https://no-color.org/)以供不喜欢彩色输出的用户使用
屏幕截图

为了帮助审阅者,我已经包括了新摘要部分的截图。

成功

以下将返回退出代码 0
!success.png(image
)success-with-skip.png!

使用 NO_COLOR
!success-nocolor.png!

失败

以下将返回退出代码 1
!fail.png(image
)fail-with-success-and-skip.png(image
)fail-with-success.png(image
)fail-with-skip.png(image
)fail-skip.png!

实现注意事项
  1. \!\#/bin/sh 切换到 \!\#/bin/env bash 以简化生活。我认为这不会引起争议,但想提一下。
  2. 未考虑将 Windows 上的 {{script/test.ps1}} 作为此工作的一部分。
  3. 应用了 CLSJ-3098 对 Windows 上 GraalVM 的修复。
观察
  1. 持续集成不运行 {{./script/test}}。作为补丁工具,我想知道我是否正在执行与 CI 相同的测试,但这将是单独票证的课题。
测试说明

脚本执行后,在以下设备上进行手动结果验证:
1. macOS Mojave
1. 通过本地 Docker 的本地 Linux
1. 通过 ssh 到本地 Windows VM 的 Windows 10

这些脚本特定于我的设置,但包括用于 Linux 的 Dockerfile。入口点是 {{verify.sh}}。有关这些脚本的详细信息以及结果日志,请参阅 cljs-3075...zip 文件。

需要注意的是
1. 在测试中对修复版本应用了CLJS-3098和{{bin/cljsc}}和{{bin/classpath_conv}},以支持Windows运行。副作用是这还解决了由于file.encoding不是utf-8而在我的特定Linux安装上导致的测试失败。
1. 在此补丁之前,{{script/test}}在Windows上无法正常工作,直到应用CLJS-3098才会在Windows上正常工作。

7 个答案

0

评论由:lread

请参阅JIRA描述以获取详细信息。

0

评论由:mfikes

这是李的第一个补丁。他列在已签署CA的人员名单中。

0

评论由:mfikes

将CLJS-3075.patch添加到Patch Tender (i)

0

评论由:lread

我还会回来解决这个问题。这需要调整以与Windows上的Git Bash兼容。

0

评论由:lread

添加了CLSJ-3075-2.patch,其中
包含了针对Windows上GraalVM的CLJS-3098修复
eliminates the use of controversial bash {{eval}}
* 修复了grep搜索失败的问题。请参阅{{CLSJ-3114}}

0

评论由:lread

好了,这一项已经准备就绪,等待复查。我认为可视化做得不够,所以我在描述中添加了一些,希望能让复查更容易。谢谢,请告诉我您的想法。

0
参考: https://clojure.atlassian.net/browse/CLJS-3075(由 lread 报告)
...