--- a/tests/test-profile.t Thu Oct 20 23:16:32 2016 +0900
+++ b/tests/test-profile.t Fri Nov 04 20:50:38 2016 -0700
@@ -47,4 +47,49 @@
#endif
+Install an extension that can sleep and guarantee a profiler has time to run
+
+ $ cat >> sleepext.py << EOF
+ > import time
+ > from mercurial import cmdutil, commands
+ > cmdtable = {}
+ > command = cmdutil.command(cmdtable)
+ > @command('sleep', [], 'hg sleep')
+ > def sleep(ui, *args, **kwargs):
+ > time.sleep(0.1)
+ > EOF
+
+ $ cat >> $HGRCPATH << EOF
+ > [extensions]
+ > sleep = `pwd`/sleepext.py
+ > EOF
+
+statistical profiler works
+
+ $ HGPROF=stat hg --profile sleep 2>../out
+ $ grep Sample ../out
+ Sample count: \d+ (re)
+
+Various statprof formatters work
+
+ $ HGPROF=stat hg --profile --config profiling.statformat=byline sleep 2>../out
+ $ head -n 1 ../out
+ % cumulative self
+ $ grep Sample ../out
+ Sample count: \d+ (re)
+
+ $ HGPROF=stat hg --profile --config profiling.statformat=bymethod sleep 2>../out
+ $ head -n 1 ../out
+ % cumulative self
+ $ grep Sample ../out
+ Sample count: \d+ (re)
+
+ $ HGPROF=stat hg --profile --config profiling.statformat=hotpath sleep 2>../out
+ $ grep Sample ../out
+ Sample count: \d+ (re)
+
+ $ HGPROF=stat hg --profile --config profiling.statformat=json sleep 2>../out
+ $ cat ../out
+ \[\[\d+.* (re)
+
$ cd ..