~bzr-pqm/bzr/bzr.dev

1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
1
# Copyright (C) 2006 by Canonical Ltd
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License version 2 as published by
5
# the Free Software Foundation.
6
#
7
# This program is distributed in the hope that it will be useful,
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
# GNU General Public License for more details.
11
#
12
# You should have received a copy of the GNU General Public License
13
# along with this program; if not, write to the Free Software
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
16
"""Tests for bzr status performance."""
17
18
19
from bzrlib.benchmarks import Benchmark
20
21
1714.1.7 by Robert Collins
Review feedback.
22
class StatusBenchmark(Benchmark):
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
23
1714.1.7 by Robert Collins
Review feedback.
24
    def test_no_ignored_unknown_kernel_like_tree(self):
25
        """Status in a kernel sized tree with no ignored or unknowns.
26
        
27
        This should be bearable (<2secs) fast.""" 
28
        self.make_kernel_like_tree()
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
29
        self.run_bzr('add')
30
        # on robertc's machine the first sample of this took 1687ms/15994ms
31
        self.time(self.run_bzr, 'status')
1732.1.4 by John Arbash Meinel
Adding a benchmark which checks 'bzr status' time after a commit.
32
33
    def test_no_changes_known_kernel_like_tree(self):
34
        """Status in a kernel sized tree with no ignored, unknowns, or added.""" 
35
        self.make_kernel_like_tree()
36
        self.run_bzr('add')
37
        self.run_bzr('commit', '-m', 'initial import')
38
        self.time(self.run_bzr, 'status')