Skip to content

Support more generic DAG layout of tests #29

@weissjeffm

Description

@weissjeffm

Instead of a tree, allow graphs.

(def t1 (new-test ...))
(def t2 (new-test ...))
(def t3 (new-test ...))
(def t4 (new-test ...))
(def b1 (open-bz-bugs "123456))

(def mysuite 
 {t1 t2
  t2 t4
  t3 t4
  b1 t2})

(def start-node t1)

(run-suite mysuite t1)

This would define a diamond shape where t4 depends on t2 and t3.

It kind of sucks to edit a large graph this way though, we would probably require some graphical editor, and write the changes back to the source of mysuite.

This would remove the tree requirement. Trees are ok because they can be read as plain text (with indenting). But they don't quite match real test dependencies because they force a test to only have one parent (dependency). We have already added more deps via :blockers but this is kind of a hack.

Maybe external blockers (like bugs) could be nodes on the graph, just not actual tests.

I guess we could execute tests by starting at the given node, and recursively execute any nodes that point to the current node before executing the current one.

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions