From: Junio C Hamano Date: Wed, 18 Feb 2026 17:46:04 GMT Subject: Re: [PATCH v3 5/5] t6006: don't use iconv(1) without ICONV prereq Message-ID: In-Reply-To: <20260218-b4-pks-ci-msvc-iconv-fixes-v3-5-08c1ff3ffc9a@pks.im> Patrick Steinhardt writes: > Two tests in t6006 depend on the iconv(1) prerequisite to reencode a > commit message. This executable may not even exist though in case the > prereq is not set, which will cause the tests to fail. > > Fix this by using UTF-8 instead when the prereq is not set. The above makes perfect sense, but would the rest of the test involving this data need to be adjusted to expect utf-8 instead of $test_encoding when iconv is not available? > -iconv -f utf-8 -t $test_encoding > commit-msg < -Test printing of complex bodies > +test_expect_success 'setup complex body' ' > + message=$(cat <<-EOF > + Test printing of complex bodies > > -This commit message is much longer than the others, > -and it will be encoded in $test_encoding. We should therefore > -include an ISO8859 character: ¡bueno! > -EOF > + This commit message is much longer than the others, > + and it will be encoded in $test_encoding. We should therefore > + include an ISO8859 character: ¡bueno! > + EOF > + ) && Creative use of "cat" only to strip leading. Otherwise, message="Test printing of ... ... include an ISO8859 character: ¡bueno!" would have sufficed ;-). > + if test_have_prereq ICONV > + then > + echo "$message" | iconv -f utf-8 -t $test_encoding >commit-msg > + else > + echo "$message" >commit-msg > + fi && So we have the message in the file encoded in either utf-8 or the target encoding. > -test_expect_success 'setup complex body' ' > git config i18n.commitencoding $test_encoding && But we claim unconditionally $test_encoding is used in the commit object. This is OK because test_encoding is also set to UTF-8 in the IONV challenged environment. Cute. > @@ -448,7 +456,12 @@ test_expect_success 'setup expected messages (for test %b)' ' > commit $head2 > commit $head1 > EOF > - iconv -f utf-8 -t $test_encoding expected.utf-8 >expected.ISO8859-1 > + if test_have_prereq ICONV > + then > + iconv -f utf-8 -t $test_encoding expected.utf-8 >expected.ISO8859-1 > + else > + cp expected.utf-8 expected.ISO8859-1 > + fi > ' > > test_format complex-body %b