~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):
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
24
1714.1.7 by Robert Collins
Review feedback.
25
    def test_no_ignored_unknown_kernel_like_tree(self):
26
        """Status in a kernel sized tree with no ignored or unknowns.
27
        
1908.2.7 by John Arbash Meinel
Update the benchmarks to actually use the cached trees
28
        This should be bearable (<2secs) fast.
29
        """ 
1908.2.18 by John Arbash Meinel
I think it is actually better as simple helper functions on Benchmark
30
        self.make_kernel_like_added_tree()
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
31
        # on robertc's machine the first sample of this took 1687ms/15994ms
32
        self.time(self.run_bzr, 'status')
1732.1.4 by John Arbash Meinel
Adding a benchmark which checks 'bzr status' time after a commit.
33
34
    def test_no_changes_known_kernel_like_tree(self):
35
        """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
36
        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.
37
        self.time(self.run_bzr, 'status')
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
38
1908.3.3 by Carl Friedrich Bolz
Add benchmark for applying a benchmark and fix some formatting/typos.
39
    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
40
        """Status in a kernel sized tree with no ignored, unknowns, or added
41
        of a single file."""
1908.3.11 by Carl Friedrich Bolz
Use the proper functions for constructing trees in benchmarks introduced a
42
        self.make_kernel_like_committed_tree()
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
43
        #XXX depends on the filenames generated by make_kernel_like_tree
44
        self.time(self.run_bzr, 'status', '7/4/0/16')
1852.14.8 by John Arbash Meinel
[merge] bzr.dev 2255
45
1852.14.1 by Robert Collins
Add single file status benchmark.
46
    def test_status_one_added_file_kernel_like_tree(self):
47
        """Status of a single added file in our stock large tree."""
48
        self.make_kernel_like_tree()
49
        self.run_bzr('add')
50
        self.run_bzr('commit', '-m', 'initial import')
51
        self.time(self.run_bzr, 'status', '3/3/3/10')