Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/tools/perf/tests/shell/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  stat+event_uniquifying.sh   Sprache: Shell

 
#!/bin/bash
# perf stat events uniquifying
# SPDX-License-Identifier: GPL-2.0

set -e

err=0
stat_output=$(mktemp /tmp/__perf_test.stat_output.XXXXX)

cleanup() {
  rm -f "${stat_output}"

  trap - EXIT TERM INT
}

trap_cleanup() {
  echo "Unexpected signal in ${FUNCNAME[1]}"
  cleanup
  exit 1
}
trap trap_cleanup EXIT TERM INT

test_event_uniquifying() {
  echo "Uniquification of PMU sysfs events test"

  # Read events from perf list with and without -v. With -v the duplicate PMUs
  # aren't deduplicated. Note, json events are listed by perf list without a
  # PMU.
  read -ra pmu_events <<< "$(perf list --raw pmu)"
  read -ra pmu_v_events <<< "$(perf list -v --raw pmu)"
  # For all non-deduplicated events.
  for pmu_v_event in "${pmu_v_events[@]}"do
    # If the event matches an event in the deduplicated events then it musn't
    # be an event with duplicate PMUs, continue the outer loop.
    for pmu_event in "${pmu_events[@]}"do
      if [[ "$pmu_v_event" == "$pmu_event" ]]; then
        continue 2
      fi
    done
    # Strip the suffix from the non-deduplicated event's PMU.
    event=$(echo "$pmu_v_event" | sed -E 's/_[0-9]+//')
    for pmu_event in "${pmu_events[@]}"do
      if [[ "$event" == "$pmu_event" ]]; then
        echo "Testing event ${event} is uniquified to ${pmu_v_event}"
        if ! perf stat -e "$event" -A -o ${stat_output} -- true; then
          echo "Error running perf stat for event '$event' [Skip]"
          if [ $err = 0 ]; then
            err=2
          fi
          continue
        fi
        # Ensure the non-deduplicated event appears in the output.
        if ! grep -q "${pmu_v_event}" "${stat_output}"then
          echo "Uniquification of PMU sysfs events test [Failed]"
          cat "${stat_output}"
          err=1
        fi
        break
      fi
    done
  done
}

test_event_uniquifying
cleanup
exit $err

Messung V0.5
C=84 H=82 G=82

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.