2024 年 Clojure 状态调查! 分享您的想法。

欢迎!有关此功能更多介绍,请参阅 关于 页面。

0
data.xml

这是一个奇怪的问题,我不确定如何提供可重复的例子。但基本来说,当我尝试在ARM64上构建 data.xml 时,当运行测试时,其中两个测试失败。当我使用X64架构执行相同操作时,没有出现这种失败。

测试 clojure.data.xml.test-emit

FAIL in (test-indent-str) (test_emit.clj:123)
expected: (= expect (indent-str nested-xml))
actual: (not (= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>\n  <b>\n    <c>\n      <d>foo</d>\n    </c>\n  </b>\n</a>\n" "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a>\n  <b>\n    <c>\n      <d>foo</d>\n    </c>\n  </b>\n</a>\n"))

FAIL in (test-indent) (test_emit.clj:131)
expected: (= expect (.toString sw))
actual: (not (= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>\n  <b>\n    <c>\n      <d>foo</d>\n    </c>\n  </b>\n</a>\n" "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a>\n  <b>\n    <c>\n      <d>foo</d>\n    </c>\n  </b>\n</a>\n"))

Ran 9 tests containing 12 assertions.
2 failures, 0 errors.

在ARM64上,缩进差异似乎是因为XML声明后缺少了换行符

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>\n  <b>\n    <c>\n      <d>foo</d>\n    </c>\n  </b>\n</a>\n"
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><a>\n  <b>\n    <c>\n      <d>foo</d>\n    </c>\n  </b>\n</a>\n"

3 个答案

+1
 
最佳答案

实际上,我使用的是旧版本,新版本没有这个问题。

对其他人感兴趣的话,我还查看了发生了什么变化,新版本增加了一行:[链接](https://github.com/clojure/data.xml/blob/0a26f131658c58d16a20175ca0bba40330ce33c0/src/main/clojure/clojure/data/xml/jvm/pprint.clj#L21),这看起来也解决了AARCH64的问题。

非常好的教育性回答。那个提交中有一个非常有意思的评论。
0

具体有哪些Java版本?

0

您使用的是哪个版本的data.xml源代码的提交,并且您是否对其进行了更改?使用最新版本的data.xml,那些测试看起来应该在新字符串比较之前省略第一个<出现之前的一切,因此<?xml ...>部分包括在报告中比较错误的内容格外令人困惑。

...