~bzr/bzr/bzr.1.5

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
        
1908.2.7 by John Arbash Meinel
Update the benchmarks to actually use the cached trees
27
        This should be bearable (<2secs) fast.
28
        """ 
1908.2.18 by John Arbash Meinel
I think it is actually better as simple helper functions on Benchmark
29
        self.make_kernel_like_added_tree()
1714.1.4 by Robert Collins
Add new benchmarks for status and commit.
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.""" 
1908.2.18 by John Arbash Meinel
I think it is actually better as simple helper functions on Benchmark
35
        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.
36
        self.time(self.run_bzr, 'status')
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
37
1908.3.3 by Carl Friedrich Bolz
Add benchmark for applying a benchmark and fix some formatting/typos.
38
    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
39
        """Status in a kernel sized tree with no ignored, unknowns, or added
40
        of a single file."""
1908.3.11 by Carl Friedrich Bolz
Use the proper functions for constructing trees in benchmarks introduced a
41
        self.make_kernel_like_committed_tree()
1868.1.1 by Jan Balster
benchmark for "bzr status single_file" in a kernel like tree
42
        #XXX depends on the filenames generated by make_kernel_like_tree
43
        self.time(self.run_bzr, 'status', '7/4/0/16')