| From d328fe87067480cf2bd0b58dab428a98d31dbb7e Mon Sep 17 00:00:00 2001 |
| From: Matthieu Baerts <matthieu.baerts@tessares.net> |
| Date: Sun, 28 May 2023 19:35:26 +0200 |
| Subject: selftests: mptcp: join: avoid using 'cmp --bytes' |
| |
| From: Matthieu Baerts <matthieu.baerts@tessares.net> |
| |
| commit d328fe87067480cf2bd0b58dab428a98d31dbb7e upstream. |
| |
| BusyBox's 'cmp' command doesn't support the '--bytes' parameter. |
| |
| Some CIs -- i.e. LKFT -- use BusyBox and have the mptcp_join.sh test |
| failing [1] because their 'cmp' command doesn't support this '--bytes' |
| option: |
| |
| cmp: unrecognized option '--bytes=1024' |
| BusyBox v1.35.0 () multi-call binary. |
| |
| Usage: cmp [-ls] [-n NUM] FILE1 [FILE2] |
| |
| Instead, 'head --bytes' can be used as this option is supported by |
| BusyBox. A temporary file is needed for this operation. |
| |
| Because it is apparently quite common to use BusyBox, it is certainly |
| better to backport this fix to impacted kernels. |
| |
| Fixes: 6bf41020b72b ("selftests: mptcp: update and extend fastclose test-cases") |
| Cc: stable@vger.kernel.org |
| Link: https://qa-reports.linaro.org/lkft/linux-mainline-master/build/v6.3-rc5-5-g148341f0a2f5/testrun/16088933/suite/kselftest-net-mptcp/test/net_mptcp_userspace_pm_sh/log [1] |
| Suggested-by: Paolo Abeni <pabeni@redhat.com> |
| Reviewed-by: Mat Martineau <martineau@kernel.org> |
| Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> |
| Signed-off-by: Paolo Abeni <pabeni@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| tools/testing/selftests/net/mptcp/mptcp_join.sh | 13 +++++++++++-- |
| 1 file changed, 11 insertions(+), 2 deletions(-) |
| |
| --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh |
| +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh |
| @@ -15,6 +15,7 @@ sout="" |
| cin="" |
| cinfail="" |
| cinsent="" |
| +tmpfile="" |
| cout="" |
| capout="" |
| ns1="" |
| @@ -175,6 +176,7 @@ cleanup() |
| { |
| rm -f "$cin" "$cout" "$sinfail" |
| rm -f "$sin" "$sout" "$cinsent" "$cinfail" |
| + rm -f "$tmpfile" |
| rm -rf $evts_ns1 $evts_ns2 |
| cleanup_partial |
| } |
| @@ -382,9 +384,16 @@ check_transfer() |
| fail_test |
| return 1 |
| fi |
| - bytes="--bytes=${bytes}" |
| + |
| + # note: BusyBox's "cmp" command doesn't support --bytes |
| + tmpfile=$(mktemp) |
| + head --bytes="$bytes" "$in" > "$tmpfile" |
| + mv "$tmpfile" "$in" |
| + head --bytes="$bytes" "$out" > "$tmpfile" |
| + mv "$tmpfile" "$out" |
| + tmpfile="" |
| fi |
| - cmp -l "$in" "$out" ${bytes} | while read -r i a b; do |
| + cmp -l "$in" "$out" | while read -r i a b; do |
| local sum=$((0${a} + 0${b})) |
| if [ $check_invert -eq 0 ] || [ $sum -ne $((0xff)) ]; then |
| echo "[ FAIL ] $what does not match (in, out):" |