@cryptotaxi247 / kubo / commits / 4789a622b

tests: bitswap ledger tests modified

Updated the `TestBitswapLedger*` tests and added assertions to check concrete values for ledgers (rather than just checking that two peers' ledgers match). The names for these tests were also changed from the previous commit, according to 's/BytesSent/Ledger/'. License: MIT Signed-off-by: David Grisham <dgrisham@mines.edu>

dgrisham committed Apr 25, 2017 at 13:54 UTC 4789a622b2e2675d42a8ff017468109d44b8026b
1 file changed +58 -2
exchange/bitswap/bitswap_test.go
+58 -2
@@ -507,7 +507,37 @@ func assertLedgerMatch(ra, rb *decision.Receipt) error {
507 return nil
508 }
509
510 -func TestBitswapBytesSentOneWay(t *testing.T) {
510 +func assertLedgerEqual(ra, rb *decision.Receipt) error {
511 + if ra.Value != rb.Value {
512 + return fmt.Errorf("mismatch in ledgers (value/debt ratio): %f vs %f ", ra.Value, rb.Value)
513 + }
514 +
515 + if ra.Sent != rb.Sent {
516 + return fmt.Errorf("mismatch in ledgers (sent bytes): %d vs %d", ra.Sent, rb.Sent)
517 + }
518 +
519 + if ra.Recv != rb.Recv {
520 + return fmt.Errorf("mismatch in ledgers (recvd bytes): %d vs %d", ra.Recv, rb.Recv)
521 + }
522 +
523 + if ra.Exchanged != rb.Exchanged {
524 + return fmt.Errorf("mismatch in ledgers (exchanged blocks): %d vs %d ", ra.Exchanged, rb.Exchanged)
525 + }
526 +
527 + return nil
528 +}
529 +
530 +func newReceipt(sent, recv, exchanged uint64) *decision.Receipt {
531 + return &decision.Receipt{
532 + Peer: "test",
533 + Value: float64(sent) / (1 + float64(recv)),
534 + Sent: sent,
535 + Recv: recv,
536 + Exchanged: exchanged,
537 + }
538 +}
539 +
540 +func TestBitswapLedgerOneWay(t *testing.T) {
541 net := tn.VirtualNetwork(mockrouting.NewServer(), delay.Fixed(kNetworkDelay))
542 sg := NewTestSessionGenerator(net)
543 defer sg.Close()
@@ -532,11 +562,24 @@ func TestBitswapBytesSentOneWay(t *testing.T) {
562 ra := instances[0].Exchange.LedgerForPeer(instances[1].Peer)
563 rb := instances[1].Exchange.LedgerForPeer(instances[0].Peer)
564
565 + // compare peer ledger receipts
566 err = assertLedgerMatch(ra, rb)
567 if err != nil {
568 t.Fatal(err)
569 }
570
571 + // check that receipts have intended values
572 + ratest := newReceipt(1, 0, 1)
573 + err = assertLedgerEqual(ratest, ra)
574 + if err != nil {
575 + t.Fatal(err)
576 + }
577 + rbtest := newReceipt(0, 1, 1)
578 + err = assertLedgerEqual(rbtest, rb)
579 + if err != nil {
580 + t.Fatal(err)
581 + }
582 +
583 t.Log(blk)
584 for _, inst := range instances {
585 err := inst.Exchange.Close()
@@ -546,7 +589,7 @@ func TestBitswapBytesSentOneWay(t *testing.T) {
589 }
590 }
591
549 -func TestBitswapBytesSentTwoWay(t *testing.T) {
592 +func TestBitswapLedgerTwoWay(t *testing.T) {
593 net := tn.VirtualNetwork(mockrouting.NewServer(), delay.Fixed(kNetworkDelay))
594 sg := NewTestSessionGenerator(net)
595 defer sg.Close()
@@ -583,11 +626,24 @@ func TestBitswapBytesSentTwoWay(t *testing.T) {
626 ra := instances[0].Exchange.LedgerForPeer(instances[1].Peer)
627 rb := instances[1].Exchange.LedgerForPeer(instances[0].Peer)
628
629 + // compare peer ledger receipts
630 err = assertLedgerMatch(ra, rb)
631 if err != nil {
632 t.Fatal(err)
633 }
634
635 + // check that receipts have intended values
636 + rtest := newReceipt(1, 1, 2)
637 + err = assertLedgerEqual(rtest, ra)
638 + if err != nil {
639 + t.Fatal(err)
640 + }
641 +
642 + err = assertLedgerEqual(rtest, rb)
643 + if err != nil {
644 + t.Fatal(err)
645 + }
646 +
647 t.Log(blk)
648 for _, inst := range instances {
649 err := inst.Exchange.Close()