brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 14b87af Raw
109 lines · bash
1#!/bin/sh2# perf diff tests3# SPDX-License-Identifier: GPL-2.04 5set -e6 7err=08perfdata1=$(mktemp /tmp/__perf_test.perf.data.XXXXX)9perfdata2=$(mktemp /tmp/__perf_test.perf.data.XXXXX)10perfdata3=$(mktemp /tmp/__perf_test.perf.data.XXXXX)11testprog="perf test -w thloop"12 13shelldir=$(dirname "$0")14# shellcheck source=lib/perf_has_symbol.sh15. "${shelldir}"/lib/perf_has_symbol.sh16 17testsym="test_loop"18 19skip_test_missing_symbol ${testsym}20 21cleanup() {22  rm -rf "${perfdata1}"23  rm -rf "${perfdata1}".old24  rm -rf "${perfdata2}"25  rm -rf "${perfdata2}".old26  rm -rf "${perfdata3}"27  rm -rf "${perfdata3}".old28 29  trap - EXIT TERM INT30}31 32trap_cleanup() {33  cleanup34  exit 135}36trap trap_cleanup EXIT TERM INT37 38make_data() {39  file="$1"40  if ! perf record -o "${file}" ${testprog} 2> /dev/null41  then42    echo "Workload record [Failed record]"43    echo 144    return45  fi46  if ! perf report -i "${file}" -q | grep -q "${testsym}"47  then48    echo "Workload record [Failed missing output]"49    echo 150    return51  fi52  echo 053}54 55test_two_files() {56  echo "Basic two file diff test"57  err=$(make_data "${perfdata1}")58  if [ $err != 0 ]59  then60    return61  fi62  err=$(make_data "${perfdata2}")63  if [ $err != 0 ]64  then65    return66  fi67 68  if ! perf diff "${perfdata1}" "${perfdata2}" | grep -q "${testsym}"69  then70    echo "Basic two file diff test [Failed diff]"71    err=172    return73  fi74  echo "Basic two file diff test [Success]"75}76 77test_three_files() {78  echo "Basic three file diff test"79  err=$(make_data "${perfdata1}")80  if [ $err != 0 ]81  then82    return83  fi84  err=$(make_data "${perfdata2}")85  if [ $err != 0 ]86  then87    return88  fi89  err=$(make_data "${perfdata3}")90  if [ $err != 0 ]91  then92    return93  fi94 95  if ! perf diff "${perfdata1}" "${perfdata2}" "${perfdata3}" | grep -q "${testsym}"96  then97    echo "Basic three file diff test [Failed diff]"98    err=199    return100  fi101  echo "Basic three file diff test [Success]"102}103 104test_two_files105test_three_files106 107cleanup108exit $err109