请在 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 也解决了问题。

by
很好的教育性回答。在那个提交中有一个非常有趣的评论。
0
by

具体的Java版本是什么?

0
by

你使用哪个版本的data.xml源代码拥有,你对它做了任何修改吗?使用最新版本的data.xml,那些测试在比较之前应该忽略那些字符串中的第一个<之前的内容,因此特别令人困惑的是<?xml ...>部分包括在报告中被错误比较的内容中。

...