| 1626 | assert self.rcv.queued == 0 |
| 1627 | |
| 1628 | def testDrainZero(self): |
| 1629 | assert self.snd.credit == 0 |
| 1630 | assert self.rcv.credit == 0 |
| 1631 | assert self.rcv.queued == 0 |
| 1632 | drained = self.rcv.drained() |
| 1633 | assert drained == 0 |
| 1634 | |
| 1635 | self.rcv.flow(10) |
| 1636 | self.pump() |
| 1637 | assert self.snd.credit == 10 |
| 1638 | assert self.rcv.credit == 10 |
| 1639 | assert self.rcv.queued == 0 |
| 1640 | |
| 1641 | self.snd.drained() |
| 1642 | self.pump() |
| 1643 | assert self.snd.credit == 10 |
| 1644 | assert self.rcv.credit == 10 |
| 1645 | assert self.rcv.queued == 0 |
| 1646 | drained = self.rcv.drained() |
| 1647 | assert drained == 0 |
| 1648 | |
| 1649 | self.rcv.drain(0) |
| 1650 | assert self.snd.credit == 10 |
| 1651 | assert self.rcv.credit == 10 |
| 1652 | assert self.rcv.queued == 0 |
| 1653 | |
| 1654 | self.pump() |
| 1655 | |
| 1656 | assert self.snd.credit == 10 |
| 1657 | assert self.rcv.credit == 10 |
| 1658 | assert self.rcv.queued == 0 |
| 1659 | |
| 1660 | self.snd.drained() |
| 1661 | assert self.snd.credit == 0 |
| 1662 | assert self.rcv.credit == 10 |
| 1663 | assert self.rcv.queued == 0 |
| 1664 | drained = self.rcv.drained() |
| 1665 | assert drained == 0 |
| 1666 | self.pump() |
| 1667 | |
| 1668 | assert self.snd.credit == 0 |
| 1669 | assert self.rcv.credit == 0 |
| 1670 | assert self.rcv.queued == 0 |
| 1671 | drained = self.rcv.drained() |
| 1672 | assert drained == 10 |
| 1673 | |
| 1674 | def testDrainOrder(self): |
| 1675 | """ Verify drain/drained works regardless of ordering. See PROTON-401 |