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版本,那些测试看起来应该省略在比较之前在字符串中第一处出现的<a>之前的一切,所以在报告中包括<?xml ...>部分特别令人困惑。

...