Commit 338d40ce authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'linux_kselftest-fixes-6.15-rc3' of...

Merge tag 'linux_kselftest-fixes-6.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest

Pull kselftest fix from Shuah Khan:
 "Fixes dynevent_limitations.tc test failure on dash by detecting and
  handling bash and dash differences in evaluating \\"

* tag 'linux_kselftest-fixes-6.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  selftests/ftrace: Differentiate bash and dash in dynevent_limitations.tc
parents 7e74f756 07be53cf
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -7,11 +7,32 @@
MAX_ARGS=128
EXCEED_ARGS=$((MAX_ARGS + 1))

# bash and dash evaluate variables differently.
# dash will evaluate '\\' every time it is read whereas bash does not.
#
#   TEST_STRING="$TEST_STRING \\$i"
#   echo $TEST_STRING
#
# With i=123
# On bash, that will print "\123"
# but on dash, that will print the escape sequence of \123 as the \ will
# be interpreted again in the echo.
#
# Set a variable "bs" to save a double backslash, then echo that
# to "ts" to see if $ts changed or not. If it changed, it's dash,
# if not, it's bash, and then bs can equal a single backslash.
bs='\\'
ts=`echo $bs`
if [ "$ts" = '\\' ]; then
  # this is bash
  bs='\'
fi

check_max_args() { # event_header
  TEST_STRING=$1
  # Acceptable
  for i in `seq 1 $MAX_ARGS`; do
    TEST_STRING="$TEST_STRING \\$i"
    TEST_STRING="$TEST_STRING $bs$i"
  done
  echo "$TEST_STRING" >> dynamic_events
  echo > dynamic_events