Here's a diagram of the "flow" of assert results through Test::Builder version 1.
.-------.
| foo.t |
'-------'
|
|
.-------------. | .----------------.
| Test::More |<--------->| Test::Whatever |
'-------------' '----------------'
| |
| |
| |
| .---------------. |
'---->| Test::Builder |<----'
'---------------'
|
v
.-----.
| TAP |
'-----'
|
v
.---------------.
| Test::Harness |
'---------------'
.-------.
.----------------| foo.t |-------------------.
| '-------' |
| | |
| | |
v v v
.------------. .----------------. .------------------.
| Test::More | | Test::Whatever | | Test::NotUpdated |
'------------' '----------------' '------------------'
| | |
| v v
| .----------------. .---------------.
'---------->| Test::Builder2 |<------| Test::Builder |
'----------------' '---------------'
|
v
.--------------. .-------------.
| TB2::History |<---| TB2::Result |
'--------------' '-------------'
|
|
.--------------------------. | .---------------------.
| TB2::Formatter::TAP::v13 |<-----'------>| TB2::Formatter::GUI |
'--------------------------' '---------------------'
| |
v |
.-------------------------------. |
| TB2::Formatter::Streamer::TAP | |
'-------------------------------' |
| |
v |
.-----. |
| TAP | |
'-----' |
| |
v v
.---------------. .-----------------.
| Test::Harness | | Pretty Pictures |
'---------------' '-----------------'
.-----. .-----.
| TB2 | | TB1 |
'-----' '-----'
| |
| |
| |
| |
v v
.-------------. .--------------. .-------------.
| TB2::Result |------->| TB2::History |<--------| TB2::Result |
'-------------' '--------------' '-------------'
| |
| |
| |
| .----------------. |
'------------->| TB2::Formatter |<--------------'
'----------------'
|
v
.--------.
| Output |
'--------'