~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
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
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.
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
28
1908.2.7 by John Arbash Meinel
Update the benchmarks to actually use the cached trees
29
        This should be bearable (<2secs) fast.
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
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):
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
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'])