xref: /linux/tools/testing/selftests/ftrace/test.d/remotes/unloading.tc (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*0a1b0325SVincent Donnefort#!/bin/sh
2*0a1b0325SVincent Donnefort# SPDX-License-Identifier: GPL-2.0
3*0a1b0325SVincent Donnefort# description: Test trace remote unloading
4*0a1b0325SVincent Donnefort# requires: remotes/test
5*0a1b0325SVincent Donnefort
6*0a1b0325SVincent Donnefort. $TEST_DIR/remotes/functions
7*0a1b0325SVincent Donnefort
8*0a1b0325SVincent Donneforttest_unloading()
9*0a1b0325SVincent Donnefort{
10*0a1b0325SVincent Donnefort    # No reader, writing
11*0a1b0325SVincent Donnefort    assert_loaded
12*0a1b0325SVincent Donnefort
13*0a1b0325SVincent Donnefort    # No reader, no writing
14*0a1b0325SVincent Donnefort    echo 0 > tracing_on
15*0a1b0325SVincent Donnefort    assert_unloaded
16*0a1b0325SVincent Donnefort
17*0a1b0325SVincent Donnefort    # 1 reader, no writing
18*0a1b0325SVincent Donnefort    cat trace_pipe &
19*0a1b0325SVincent Donnefort    pid=$!
20*0a1b0325SVincent Donnefort    sleep 1
21*0a1b0325SVincent Donnefort    assert_loaded
22*0a1b0325SVincent Donnefort    kill $pid
23*0a1b0325SVincent Donnefort    assert_unloaded
24*0a1b0325SVincent Donnefort
25*0a1b0325SVincent Donnefort    # No reader, no writing, events
26*0a1b0325SVincent Donnefort    echo 1 > tracing_on
27*0a1b0325SVincent Donnefort    echo 1 > write_event
28*0a1b0325SVincent Donnefort    echo 0 > tracing_on
29*0a1b0325SVincent Donnefort    assert_loaded
30*0a1b0325SVincent Donnefort
31*0a1b0325SVincent Donnefort    # Test reset
32*0a1b0325SVincent Donnefort    clear_trace
33*0a1b0325SVincent Donnefort    assert_unloaded
34*0a1b0325SVincent Donnefort}
35*0a1b0325SVincent Donnefort
36*0a1b0325SVincent Donnefortif [ -z "$SOURCE_REMOTE_TEST" ]; then
37*0a1b0325SVincent Donnefort    set -e
38*0a1b0325SVincent Donnefort
39*0a1b0325SVincent Donnefort    setup_remote_test
40*0a1b0325SVincent Donnefort    test_unloading
41*0a1b0325SVincent Donnefortfi
42