162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci
362306a36Sopenharmony_cicd /sys/kernel/tracing
462306a36Sopenharmony_ci
562306a36Sopenharmony_cicompare_file() {
662306a36Sopenharmony_ci	file="$1"
762306a36Sopenharmony_ci	val="$2"
862306a36Sopenharmony_ci	content=`cat $file`
962306a36Sopenharmony_ci	if [ "$content" != "$val" ]; then
1062306a36Sopenharmony_ci		echo "FAILED: $file has '$content', expected '$val'"
1162306a36Sopenharmony_ci		exit 1
1262306a36Sopenharmony_ci	fi
1362306a36Sopenharmony_ci}
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cicompare_file_partial() {
1662306a36Sopenharmony_ci	file="$1"
1762306a36Sopenharmony_ci	val="$2"
1862306a36Sopenharmony_ci	content=`cat $file | sed -ne "/^$val/p"`
1962306a36Sopenharmony_ci	if [ -z "$content" ]; then
2062306a36Sopenharmony_ci		echo "FAILED: $file does not contain '$val'"
2162306a36Sopenharmony_ci		cat $file
2262306a36Sopenharmony_ci		exit 1
2362306a36Sopenharmony_ci	fi
2462306a36Sopenharmony_ci}
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cifile_contains() {
2762306a36Sopenharmony_ci	file=$1
2862306a36Sopenharmony_ci	val="$2"
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	if ! grep -q "$val" $file ; then
3162306a36Sopenharmony_ci		echo "FAILED: $file does not contain $val"
3262306a36Sopenharmony_ci		cat $file
3362306a36Sopenharmony_ci		exit 1
3462306a36Sopenharmony_ci	fi
3562306a36Sopenharmony_ci}
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_cicompare_mask() {
3862306a36Sopenharmony_ci	file=$1
3962306a36Sopenharmony_ci	val="$2"
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	content=`cat $file | sed -ne "/^[0 ]*$val/p"`
4262306a36Sopenharmony_ci	if [ -z "$content" ]; then
4362306a36Sopenharmony_ci		echo "FAILED: $file does not have mask '$val'"
4462306a36Sopenharmony_ci		cat $file
4562306a36Sopenharmony_ci		exit 1
4662306a36Sopenharmony_ci	fi
4762306a36Sopenharmony_ci}
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_cicompare_file "tracing_on" "0"
5162306a36Sopenharmony_cicompare_file "current_tracer" "function_graph"
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_cicompare_file_partial "events/kprobes/start_event/enable" "1"
5462306a36Sopenharmony_cicompare_file_partial "events/kprobes/start_event/trigger" "traceon"
5562306a36Sopenharmony_cifile_contains "kprobe_events" 'start_event.*pci_proc_init'
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_cicompare_file_partial "events/kprobes/end_event/enable" "1"
5862306a36Sopenharmony_cicompare_file_partial "events/kprobes/end_event/trigger" "traceoff"
5962306a36Sopenharmony_cifile_contains "kprobe_events" '^r.*end_event.*pci_proc_init'
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciexit 0
62