set test "skip tracking"

if {! [installtest_p]} { untested $test; return }

set nr_cpus [exec sh -c "grep ^processor /proc/cpuinfo | wc -l"]
if {$nr_cpus < 2} { unsupported $test; return }

# See PR13332 skipped.exp testcase can freeze processes/system
untested "$test PR13332 skipped.exp testcase can freeze processes/system"
return

set script {
global f
probe timer.profile { f++; snooze() }
function snooze() %{ udelay(10000); %}
}

set errs 0
set warns 0
set oks 0
spawn stap -e $script -DMAXTRYLOCK=0 -DSTP_NO_OVERLOAD -tug
expect {
    -timeout 60
    -re {^ERROR: Skipped too many probes, check MAXSKIPPED or try again with stap -t for more details.\r\n} { incr errs; exp_continue }
    -re {^WARNING: Number of errors: 0, skipped probes: [0-9]+\r\n} { incr warns; exp_continue }
    -re {^WARNING: Skipped due to global .f. lock timeout: [0-9]+\r\n} { incr warns; exp_continue }
    -re {^[^\r\n]*probe hit report:[ ]*\r\n} { exp_continue }
    -re {^timer.profile[^\r\n]+, hits: [0-9]+[^\r\n]+\r\n} { incr oks; exp_continue }
    eof { }
    timeout { fail "$test (timeout)" }
}
catch {close}
catch {wait}

if {$oks >= 1 && $warns == 2 && $errs == 1} { pass "$test ($nr_cpus $oks $warns $errs)" } else { fail "$test ($nr_cpus $oks $warns $errs)" }
