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

你在使用哪个版本的数据.xml源代码的提交,你对它进行了任何修改吗?使用最新的data.xml版本,那些测试看起来应该省略比较之前字符串中第一个出现的《<》之前的内容,所以报告中的《<?xml ...>》部分被列入比较错误中令人特别困惑。

...