cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

trigger-synthetic-event-syntax.tc (2149B)


      1#!/bin/sh
      2# SPDX-License-Identifier: GPL-2.0
      3# description: event trigger - test synthetic_events syntax parser
      4# requires: set_event synthetic_events
      5
      6do_reset() {
      7    reset_trigger
      8    echo > set_event
      9    clear_trace
     10}
     11
     12fail() { #msg
     13    do_reset
     14    echo $1
     15    exit_fail
     16}
     17
     18reset_tracer
     19do_reset
     20
     21echo "Test synthetic_events syntax parser"
     22
     23echo > synthetic_events
     24
     25# synthetic event must have a field
     26! echo "myevent" >> synthetic_events
     27echo "myevent u64 var1" >> synthetic_events
     28
     29# synthetic event must be found in synthetic_events
     30grep "myevent[[:space:]]u64 var1" synthetic_events
     31
     32# it is not possible to add same name event
     33! echo "myevent u64 var2" >> synthetic_events
     34
     35# make sure !synthetic event doesn't require a field
     36echo "!myevent" >> synthetic_events
     37echo "myevent u64 var1" >> synthetic_events
     38
     39# Non-append open will cleanup all events and add new one
     40echo "myevent u64 var2" > synthetic_events
     41
     42# multiple fields with different spaces
     43echo "myevent u64 var1; u64 var2;" > synthetic_events
     44grep "myevent[[:space:]]u64 var1; u64 var2" synthetic_events
     45echo "myevent u64 var1 ; u64 var2 ;" > synthetic_events
     46grep "myevent[[:space:]]u64 var1; u64 var2" synthetic_events
     47echo "myevent u64 var1 ;u64 var2" > synthetic_events
     48grep "myevent[[:space:]]u64 var1; u64 var2" synthetic_events
     49
     50# test field types
     51echo "myevent u32 var" > synthetic_events
     52echo "myevent u16 var" > synthetic_events
     53echo "myevent u8 var" > synthetic_events
     54echo "myevent s64 var" > synthetic_events
     55echo "myevent s32 var" > synthetic_events
     56echo "myevent s16 var" > synthetic_events
     57echo "myevent s8 var" > synthetic_events
     58
     59echo "myevent char var" > synthetic_events
     60echo "myevent int var" > synthetic_events
     61echo "myevent long var" > synthetic_events
     62echo "myevent pid_t var" > synthetic_events
     63
     64echo "myevent unsigned char var" > synthetic_events
     65echo "myevent unsigned int var" > synthetic_events
     66echo "myevent unsigned long var" > synthetic_events
     67grep "myevent[[:space:]]unsigned long var" synthetic_events
     68
     69# test string type
     70echo "myevent char var[10]" > synthetic_events
     71grep "myevent[[:space:]]char\[10\] var" synthetic_events
     72
     73do_reset
     74
     75exit 0