/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/blackbox/test_selftest.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-08 14:45:27 UTC
  • mto: This revision was merged to the branch mainline in revision 7036.
  • Revision ID: jelmer@jelmer.uk-20180708144527-codhlvdcdg9y0nji
Fix a bunch of merge tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""UI tests for the test framework."""
18
18
 
19
 
from bzrlib import (
20
 
    benchmarks,
 
19
import os
 
20
 
 
21
from breezy import (
21
22
    tests,
22
23
    )
23
 
from bzrlib.tests import (
 
24
from breezy.tests import (
24
25
    features,
25
26
    )
26
 
from bzrlib.transport import memory
 
27
from breezy.transport import memory
27
28
 
28
29
class SelfTestPatch:
29
30
 
46
47
            tests.selftest = original_selftest
47
48
 
48
49
 
49
 
class TestOptionsWritingToDisk(tests.TestCaseInTempDir, SelfTestPatch):
50
 
 
51
 
    def test_benchmark_runs_benchmark_tests(self):
52
 
        """selftest --benchmark should change the suite factory."""
53
 
        params = self.get_params_passed_to_core('selftest --benchmark')
54
 
        self.assertEqual(benchmarks.test_suite,
55
 
            params[1]['test_suite_factory'])
56
 
        self.assertNotEqual(None, params[1]['bench_history'])
57
 
        benchfile = open(".perf_history", "rt")
58
 
        try:
59
 
            lines = benchfile.readlines()
60
 
        finally:
61
 
            benchfile.close()
62
 
        # Because we don't run the actual test code no output is made to the
63
 
        # file.
64
 
        self.assertEqual(0, len(lines))
65
 
 
66
 
 
67
50
class TestOptions(tests.TestCase, SelfTestPatch):
68
51
 
69
52
    def test_load_list(self):
74
57
        # Test that we can pass a transport to the selftest core - sftp
75
58
        # version.
76
59
        self.requireFeature(features.paramiko)
77
 
        from bzrlib.tests import stub_sftp
 
60
        from breezy.tests import stub_sftp
78
61
        params = self.get_params_passed_to_core('selftest --transport=sftp')
79
62
        self.assertEqual(stub_sftp.SFTPAbsoluteServer,
80
63
            params[1]["transport"])
106
89
            'selftest --starting-with foo --starting-with bar')
107
90
        self.assertEqual(['foo', 'bar'], params[1]['starting_with'])
108
91
 
109
 
    def test_subunit(self):
110
 
        self.requireFeature(features.subunit)
111
 
        params = self.get_params_passed_to_core('selftest --subunit')
112
 
        self.assertEqual(tests.SubUnitBzrRunner, params[1]['runner_class'])
 
92
    def test_subunitv1(self):
 
93
        self.requireFeature(features.subunit)
 
94
        params = self.get_params_passed_to_core('selftest --subunit1')
 
95
        self.assertEqual(tests.SubUnitBzrRunnerv1, params[1]['runner_class'])
 
96
 
 
97
    def test_subunitv2(self):
 
98
        self.requireFeature(features.subunit)
 
99
        params = self.get_params_passed_to_core('selftest --subunit2')
 
100
        self.assertEqual(tests.SubUnitBzrRunnerv2, params[1]['runner_class'])
113
101
 
114
102
    def _parse_test_list(self, lines, newlines_in_header=0):
115
103
        "Parse a list of lines into a tuple of 3 lists (header,body,footer)."
137
125
        # If the last body line is blank, drop it off the list
138
126
        if len(body) > 0 and body[-1] == '':
139
127
            body.pop()
140
 
        return (header,body,footer)
 
128
        return (header, body, footer)
141
129
 
142
130
    def test_list_only(self):
143
 
        # check that bzr selftest --list-only outputs no ui noise
 
131
        # check that brz selftest --list-only outputs no ui noise
144
132
        def selftest(*args, **kwargs):
145
133
            """Capture the arguments selftest was run with."""
146
134
            return True
147
135
        def outputs_nothing(cmdline):
148
 
            out,err = self.run_bzr(cmdline)
149
 
            (header,body,footer) = self._parse_test_list(out.splitlines())
 
136
            out, err = self.run_bzr(cmdline)
 
137
            (header, body, footer) = self._parse_test_list(out.splitlines())
150
138
            num_tests = len(body)
151
139
            self.assertLength(0, header)
152
140
            self.assertLength(0, footer)
153
 
            self.assertEqual('', err)
 
141
            self.assertEqual(b'', err)
154
142
        # Yes this prevents using threads to run the test suite in parallel,
155
143
        # however we don't have a clean dependency injector for commands, 
156
144
        # and even if we did - we'd still be testing that the glue is wired
167
155
    def test_lsprof_tests(self):
168
156
        params = self.get_params_passed_to_core('selftest --lsprof-tests')
169
157
        self.assertEqual(True, params[1]["lsprof_tests"])
 
158
 
 
159
    def test_parallel_fork_unsupported(self):
 
160
        if getattr(os, "fork", None) is not None:
 
161
            self.addCleanup(setattr, os, "fork", os.fork)
 
162
            del os.fork
 
163
        out, err = self.run_bzr(["selftest", "--parallel=fork", "-s", "bt.x"],
 
164
            retcode=3)
 
165
        self.assertIn("platform does not support fork", err)
 
166
        self.assertFalse(out)