selftests: fix too long argument
authorJiri Benc <jbenc@redhat.com>
Thu, 6 Feb 2020 08:40:52 +0000 (09:40 +0100)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 11 Feb 2020 01:01:55 +0000 (18:01 -0700)
commitc363eb48ada5cf732b3f489fab799fc881097842
treefdc7d79777d25b7649a7ffd556b0bb2b97d367ca
parent9d235a558c689b0ecdd23bbd8beb2e0584f619ed
selftests: fix too long argument

With some shells, the command construed for install of bpf selftests becomes
too large due to long list of files:

make[1]: execvp: /bin/sh: Argument list too long
make[1]: *** [../lib.mk:73: install] Error 127

Currently, each of the file lists is replicated three times in the command:
in the shell 'if' condition, in the 'echo' and in the 'rsync'. Reduce that
by one instance by using make conditionals and separate the echo and rsync
into two shell commands. (One would be inclined to just remove the '@' at
the beginning of the rsync command and let 'make' echo it by itself;
unfortunately, it appears that the '@' in the front of mkdir silences output
also for the following commands.)

Also, separate handling of each of the lists to its own shell command.

The semantics of the makefile is unchanged before and after the patch. The
ability of individual test directories to override INSTALL_RULE is retained.

Reported-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
Tested-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/lib.mk