On Fri, Feb 08, 2019 at 08:42:19PM +0000, brian m. carlson wrote: > On Fri, Feb 08, 2019 at 09:23:36PM +0100, Kevin Daudt wrote: > > Firstly, the tests expect iconv -t UTF-16 to output a BOM, which it > > indeed does not do on Alpine. Secondly, git itself also expects the BOM > > to be present when the encoding is set to UTF-16, otherwise it will > > complain. > > Yeah, we definitely want to require a BOM for UTF-16. As previously > mentioned, it isn't safe for us to assume big-endian when it's missing. > > > I tried change the test to manually inject a BOM to the file (and > > setting iconv to UTF-16LE / UTF16-BE, which lets the first test go > > through, but test 3 then fails, because git itself output the file > > without BOM, presumably because it's passed through iconv. > > > > So I'm not sure if it's a matter of just fixing the tests. > > I think something like the following will likely work in this scenario: > > [..] > > This passes for me on glibc, but only on a little-endian system. If this > works for musl folks, then I'll add a config option for those people who > have UTF-16 without BOM. > -- > brian m. carlson: Houston, Texas, US > OpenPGP: https://keybase.io/bk2204 I tried your patch. The pre-requisite is broken in it's current form, this would fix the prerequisite: diff --git a/t/t0028-working-tree-encoding.sh b/t/t0028-working-tree-encoding.sh index ff02d03bad..734c5a7dbb 100755 --- a/t/t0028-working-tree-encoding.sh +++ b/t/t0028-working-tree-encoding.sh @@ -7,8 +7,7 @@ test_description='working-tree-encoding conversion via gitattributes' GIT_TRACE_WORKING_TREE_ENCODING=1 && export GIT_TRACE_WORKING_TREE_ENCODING test_lazy_prereq NO_BOM ' - printf abc | iconv -f UTF-8 -t UTF-16 && - test $(wc -c) = 6 + test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 ' write_utf16 () { But test 3 still fails, because now the output from git is converted to UTF16-LE, which is different from the input, which is UTF16-BE.