• Leo Yan's avatar
    perf test: Change to use bash for daemon test · 1dc481c0
    Leo Yan authored
    When executing the daemon test on Arm64 and x86 with Debian (Buster)
    distro, both skip the test case with the log:
    
      # ./perf test -v 76
      76: daemon operations                                               :
      --- start ---
      test child forked, pid 11687
      test daemon list
      trap: SIGINT: bad trap
      ./tests/shell/daemon.sh: 173: local: cpu-clock: bad variable name
      test child finished with -2
      ---- end ----
      daemon operations: Skip
    
    So the error happens for the variable expansion when use local variable
    in the shell script.  Since Debian Buster uses dash but not bash as
    non-interactive shell, when execute the daemon testing, it hits a known
    issue for dash which was reported [1].
    
    To resolve this issue, one option is to add double quotes for all local
    variables assignment, so need to change the code from:
    
      local line=`perf daemon --config ${config} -x: | head -2 | tail -1`
    
      ... to:
    
      local line="`perf daemon --config ${config} -x: | head -2 | tail -1`"
    
    But the testing script has bunch of local variables, this leads to big
    changes for whole script.
    
    On the other hand, the testing script asks to use the "local" feature
    which is bash-specific, so this patch explicitly uses "#!/bin/bash" to
    ensure running the script with bash.
    
    After:
    
      # ./perf test -v 76
      76: daemon operations                                               :
      --- start ---
      test child forked, pid 11329
      test daemon list
      test daemon reconfig
      test daemon stop
      test daemon signal
      signal 12 sent to session 'test [11596]'
      signal 12 sent to session 'test [11596]'
      test daemon ping
      test daemon lock
      test child finished with 0
      ---- end ----
      daemon operations: Ok
    
    [1] https://bugs.launchpad.net/ubuntu/+source/dash/+bug/139097
    
    Fixes: 2291bb91 ("perf tests: Add daemon 'list' command test")
    Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
    Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210320104554.529213-1-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    1dc481c0
daemon.sh 10.3 KB