diff options
Diffstat (limited to 'lib/PublicInbox/TestCommon.pm')
-rw-r--r-- | lib/PublicInbox/TestCommon.pm | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 46e6a538..b84886a0 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -935,13 +935,25 @@ sub cfg_new ($;@) { } our $strace_cmd; -sub strace () { +sub strace (@) { + my ($for_daemon) = @_; skip 'linux only test' if $^O ne 'linux'; + if ($for_daemon) { + my $f = '/proc/sys/kernel/yama/ptrace_scope'; + # TODO: we could fiddle with prctl in the daemon to make + # things work, but I'm not sure it's worth it... + state $ps = do { + my $fh; + CORE::open($fh, '<', $f) ? readline($fh) : 0; + }; + chomp $ps; + skip "strace unusable on daemons\n$f is `$ps' (!= 0)" if $ps; + } require_cmd('strace', 1); } -sub strace_inject () { - my $cmd = strace; +sub strace_inject (;$) { + my $cmd = strace(@_); state $ver = do { require PublicInbox::Spawn; my $v = PublicInbox::Spawn::run_qx([$cmd, '--version']); |