summaryrefslogtreecommitdiff
path: root/TODO
blob: 88ac172d70fbc63589c90c8495f87080a4b0d45b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

Tasks
=====

* Test OptimisingTestSuite.sortTests

* Test switch

* Use setUpCost and tearDownCost in cost calculation

* Sort out naming & coding convention and write up in tree.

* Confirm license and copyright of dijkstra and priodict.

* Discuss copyright of Jonathan's contributions with Robert.

* Test exceptions being raised from make and clean

* Talk to bzrtools upstream (abentley) about the significant
  backwards-compatibility-breaking changes.


Questions
=========

* Why does finishedWith take a parameter? Why not use
  TestResource._currentResource?

* How should resources be composed?

* How can testresources be used with layers?

* How can testresources be used to *replace* layers?


Bugs
====

* Current traversal cost doesn't count the cost of setting up the initial set
  of resources. Perhaps this could be worked around by including a transition
  from 'no resources' in OptimisingTestSuite._getGraph?

  From old todos in README:
   * during graph calculation, create a fake root with cost-of-resource paths
     to all resources, better than choosing an arbitrary node.

* Related: TestGraphStuff.testBasicSortTests is disabled due to intermittent
  failure.


Ideas
=====

* Have a dumb equivalent of OptimisingTestSuite that doesn't do any sorting.
  Rely on others to do the sorting first.

* Introduce timing hooks for better estimation of setUpCost and tearDownCost.

* Store timing information so that cost estimations can improve over time.

* Change the interface of TestResource so that make and clean are methods on
  some *other* object, rather than methods to be overridden. This object could
  well have the interface .setUp() and .tearDown()!

* Move ResourcedTestCase.setUpResources and tearDownResources to be methods.

* Change ResourcedTestCase.resources to a dict (currently a list of 2-tuples).

* There are now many simple test helpers. These can probably be consolidated.

* 'TestResource' isn't a very good name. Since the switch to instance-based
  resources, it's even worse, since the objects are more like resource
  factories or resource managers. Other possible names involve 'asset',
  'liability' or 'fixture'.