Mercurial > hg-stable
comparison tests/test-profile.t @ 47563:dc3f7aa15423
windows: use cpu-intensive task instead of real time in test
Windows profiling breaks when using real time instead of cpu, but we need the
extension function to show up, so make it do something instead of waiting.
I've also duplicated the test cases so that explicit real and CPU times are
tested (on platforms other than Windows)
Differential Revision: https://phab.mercurial-scm.org/D11003
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Thu, 24 Jun 2021 12:54:55 +0200 |
parents | 17fde6763286 |
children | 42d2b31cee0b |
comparison
equal
deleted
inserted
replaced
47562:17fde6763286 | 47563:dc3f7aa15423 |
---|---|
71 > from mercurial import registrar | 71 > from mercurial import registrar |
72 > cmdtable = {} | 72 > cmdtable = {} |
73 > command = registrar.command(cmdtable) | 73 > command = registrar.command(cmdtable) |
74 > @command(b'sleep', [], b'hg sleep') | 74 > @command(b'sleep', [], b'hg sleep') |
75 > def sleep_for_at_least_one_stat_cycle(ui, *args, **kwargs): | 75 > def sleep_for_at_least_one_stat_cycle(ui, *args, **kwargs): |
76 > time.sleep(0.1) | 76 > t = time.time() # don't use time.sleep because we need CPU time |
77 > while time.time() - t < 0.5: | |
78 > pass | |
77 > EOF | 79 > EOF |
78 | 80 |
79 $ cat >> $HGRCPATH << EOF | 81 $ cat >> $HGRCPATH << EOF |
80 > [extensions] | 82 > [extensions] |
81 > sleep = `pwd`/sleepext_with_a_long_filename.py | 83 > sleep = `pwd`/sleepext_with_a_long_filename.py |
98 $ hg --profile --config profiling.statformat=bymethod sleep 2>../out || cat ../out | 100 $ hg --profile --config profiling.statformat=bymethod sleep 2>../out || cat ../out |
99 $ head -n 1 ../out | 101 $ head -n 1 ../out |
100 % cumulative self | 102 % cumulative self |
101 $ cat ../out | statprofran | 103 $ cat ../out | statprofran |
102 | 104 |
103 $ hg --profile --config profiling.statformat=hotpath sleep 2>../out || cat ../out | 105 Windows real time tracking is broken, only use CPU |
106 | |
107 #if no-windows | |
108 $ hg --profile --config profiling.time-track=real --config profiling.statformat=hotpath sleep 2>../out || cat ../out | |
104 $ cat ../out | statprofran | 109 $ cat ../out | statprofran |
105 $ grep sleepext_with_a_long_filename.py ../out | 110 $ grep sleepext_with_a_long_filename.py ../out | head -n 1 |
106 .* [0-9.]+% [0-9.]+s sleepext_with_a_long_filename.py:\s*sleep_for_at_least_one_stat_cycle, line 7: time\.sleep.* (re) | 111 .* [0-9.]+% [0-9.]+s sleepext_with_a_long_filename.py:\s*sleep_for_at_least_one_stat_cycle, line \d+:\s+(while|pass).* (re) |
112 #endif | |
113 | |
114 $ hg --profile --config profiling.time-track=cpu --config profiling.statformat=hotpath sleep 2>../out || cat ../out | |
115 $ cat ../out | statprofran | |
116 $ grep sleepext_with_a_long_filename.py ../out | head -n 1 | |
117 .* [0-9.]+% [0-9.]+s sleepext_with_a_long_filename.py:\s*sleep_for_at_least_one_stat_cycle, line \d+:\s+(while|pass).* (re) | |
107 | 118 |
108 $ hg --profile --config profiling.statformat=json sleep 2>../out || cat ../out | 119 $ hg --profile --config profiling.statformat=json sleep 2>../out || cat ../out |
109 $ cat ../out | 120 $ cat ../out |
110 \[\[-?\d+.* (re) | 121 \[\[-?\d+.* (re) |
111 | 122 |