IntersectMBO / IntersectMBO/ouroboros-network
Improve ConnectionManager/InboundGovernor transition test coverage
- Dominant language
- Haskell
- Stars
- 296
- Forks
- 104
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 4
Description
```
ouroboros-network-framework
Ouroboros.Network.Server2
connection_manager_transitions_coverage: OK (52.95s)
+++ OK, passed 1000 tests.
valid transitions (7453 in total):
10.24% TerminatedSt → UnknownConnectionSt
7.27% UnknownConnectionSt → ReservedOutboundSt
7.14% ReservedOutboundSt → UnnegotiatedSt Outbound
6.71% UnknownConnectionSt → UnnegotiatedSt Inbound
5.86% TerminatingSt → TerminatedSt
5.29% UnnegotiatedSt Outbound → OutboundDupSt Ticking
4.70% UnnegotiatedSt Inbound → InboundIdleSt Unidirectional
4.05% UnnegotiatedSt Inbound → InboundIdleSt Duplex
3.74% InboundIdleSt Unidirectional → TerminatingSt
3.62% InboundIdleSt Unidirectional → InboundSt Unidirectional
3.62% InboundSt Unidirectional → InboundIdleSt Unidirectional
3.22% OutboundDupSt Ticking → InboundIdleSt Duplex
3.02% InboundIdleSt Duplex → InboundSt Duplex
2.99% InboundIdleSt Unidirectional → TerminatedSt
2.99% InboundSt Duplex → InboundIdleSt Duplex
2.95% InboundIdleSt Duplex → TerminatedSt
2.83% OutboundDupSt Ticking → OutboundDupSt Expired
2.74% OutboundDupSt Expired → TerminatedSt
2.60% InboundIdleSt Duplex → TerminatingSt
2.58% InboundIdleSt Duplex → OutboundDupSt Ticking
2.58% OutboundDupSt Ticking → TerminatedSt
1.81% UnnegotiatedSt Outbound → OutboundUniSt
1.44% DuplexSt → OutboundDupSt Ticking
1.41% OutboundUniSt → TerminatedSt
1.37% OutboundDupSt Ticking → DuplexSt
0.86% OutboundUniSt → OutboundIdleSt Unidirectional
0.79% OutboundIdleSt Unidirectional → TerminatedSt
0.55% TerminatingSt → UnnegotiatedSt Inbound
0.19% OutboundDupSt Expired → OutboundIdleSt Duplex
0.19% ReservedOutboundSt → TerminatedSt
0.15% OutboundIdleSt Unidirectional → TerminatingSt
0.13% ReservedOutboundSt → UnnegotiatedSt Inbound
0.12% OutboundIdleSt Duplex → TerminatedSt
0.05% OutboundDupSt Expired → DuplexSt
0.05% OutboundIdleSt Duplex → TerminatingSt
0.04% UnnegotiatedSt Outbound → TerminatedSt
0.03% InboundSt Duplex → DuplexSt
0.03% InboundSt Duplex → TerminatedSt
0.03% InboundSt Unidirectional → TerminatedSt
0.01% OutboundIdleSt Duplex → InboundSt Duplex
0.01% UnnegotiatedSt Inbound → TerminatedSt
Table 'valid transitions' had only 0.00% DuplexSt → InboundSt Duplex, but expected 0.01%
Table 'valid transitions' had only 0.00% DuplexSt → TerminatedSt, but expected 0.01%
Table 'valid transitions' had only 0.00% DuplexSt → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% InboundIdleSt Duplex → InboundIdleSt Duplex, but expected 0.01%
Table 'valid transitions' had only 0.00% InboundSt Duplex → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% InboundSt Unidirectional → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundDupSt Expired → OutboundDupSt Expired, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundDupSt Expired → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundDupSt Ticking → OutboundDupSt Ticking, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundDupSt Ticking → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundIdleSt Duplex → OutboundIdleSt Duplex, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundIdleSt Unidirectional → InboundSt Unidirectional, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundIdleSt Unidirectional → OutboundIdleSt Unidirectional, but expected 0.01%
Table 'valid transitions' had only 0.00% OutboundUniSt → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% ReservedOutboundSt → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% TerminatedSt → ReservedOutboundSt, but expected 0.01%
Table 'valid transitions' had only 0.00% TerminatedSt → UnnegotiatedSt Inbound, but expected 0.01%
Table 'valid transitions' had only 0.00% UnknownConnectionSt → TerminatedSt, but expected 0.01%
Table 'valid transitions' had only 0.00% UnknownConnectionSt → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% UnnegotiatedSt Inbound → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% UnnegotiatedSt Outbound → TerminatingSt, but expected 0.01%
Table 'valid transitions' had only 0.00% WaitRemoteIdleSt → TerminatedSt, but expected 0.01%
Table 'valid transitions' had only 0.00% WaitRemoteIdleSt → TerminatingSt, but expected 0.01%
```
There's a lot of valid transitions that are not observed. A lot of them are related to abrupt termination, which is very unlikely in the current test suite. There's also a couple of identity transitions in the `coverTable` because it was built according to the `verifyAbstractTransition` function.
Contributor guide
Assessment
This issue has not been assessed yet.