^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) #!/bin/sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # SPDX-License-Identifier: GPL-2.0+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) # Run a herd7 test and invokes judgelitmus.sh to check the result against
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) # a "Result:" comment within the litmus test. It also outputs verification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) # results to a file whose name is that of the specified litmus test, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) # with ".out" appended.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) # Usage:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) # checklitmus.sh file.litmus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) # Run this in the directory containing the memory model, specifying the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) # pathname of the litmus test to check. The caller is expected to have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) # properly set up the LKMM environment variables.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) # Copyright IBM Corporation, 2018
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) # Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) litmus=$1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) if test -f "$litmus" -a -r "$litmus"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) echo ' --- ' error: \"$litmus\" is not a readable file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) exit 255
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) echo Herd options: $herdoptions > $LKMM_DESTDIR/$litmus.out
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) scripts/judgelitmus.sh $litmus