~bzr-pqm/bzr/bzr.dev

1852.14.8 by John Arbash Meinel
[merge] bzr.dev 2255
1
# Copyright (C) 2006, 2007 Canonical Ltd
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
2
#
3
# This program is free software; you can redistribute it and/or modify
2052.3.1 by John Arbash Meinel
Add tests to cleanup the copyright of all source files
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Tests for bzr status performance."""
18
19
20
from bzrlib.benchmarks import Benchmark
21
22
1714.1.7 by Robert Collins
Review feedback.
23
class StatusBenchmark(Benchmark):
2399.1.7 by John Arbash Meinel
Cleanup bzrlib/benchmarks/* so that everything at least has a valid doc string.
24
    """Benchmarks for ``'bzr status'``."""
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
25
1714.1.7 by Robert Collins
Review feedback.
26
    def test_no_ignored_unknown_kernel_like_tree(self):
27
        """Status in a kernel sized tree with no ignored or unknowns.
28
        
1908.2.7 by John Arbash Meinel
Update the benchmarks to actually use the cached trees
29
        This should be bearable (<2secs) fast.
30
        """ 
1908.2.18 by John Arbash Meinel
I think it is actually better as simple helper functions on Benchmark
31
        self.make_kernel_like_added_tree()
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
32
        # on robertc's machine the first sample of this took 1687ms/15994ms
33
        self.time(self.run_bzr, 'status')
1732.1.4 by John Arbash Meinel
Adding a benchmark which checks 'bzr status' time after a commit.
34
35
    def test_no_changes_known_kernel_like_tree(self):
36
        """Status in a kernel sized tree with no ignored, unknowns, or added.""" 
1908.2.18 by John Arbash Meinel
I think it is actually better as simple helper functions on Benchmark
37
        self.make_kernel_like_committed_tree(link_bzr=True)
1732.1.4 by John Arbash Meinel
Adding a benchmark which checks 'bzr status' time after a commit.
38
        self.time(self.run_bzr, 'status')
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
39
1908.3.3 by Carl Friedrich Bolz
Add benchmark for applying a benchmark and fix some formatting/typos.
40
    def test_single_file_no_changes_known_kernel_like_tree(self):
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
41
        """Status in a kernel sized tree with no ignored, unknowns, or added
42
        of a single file."""
1908.3.11 by Carl Friedrich Bolz
Use the proper functions for constructing trees in benchmarks introduced a
43
        self.make_kernel_like_committed_tree()
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
44
        #XXX depends on the filenames generated by make_kernel_like_tree
2644.2.1 by Lukáš Lalinský
Fix deprecation warnings on benchmarks.
45
        self.time(self.run_bzr, ['status', '7/4/0/16'])
1852.14.8 by John Arbash Meinel
[merge] bzr.dev 2255
46
1852.14.1 by Robert Collins
Add single file status benchmark.
47
    def test_status_one_added_file_kernel_like_tree(self):
48
        """Status of a single added file in our stock large tree."""
49
        self.make_kernel_like_tree()
50
        self.run_bzr('add')
2644.2.1 by Lukáš Lalinský
Fix deprecation warnings on benchmarks.
51
        self.run_bzr(['commit', '-m', 'initial import'])
52
        self.time(self.run_bzr, ['status', '3/3/3/10'])