MCPcopy Create free account
hub / github.com/cockroachdb/errors / TestLocalRemoteEquivalence

Function TestLocalRemoteEquivalence

markers/markers_test.go:508–548  ·  view source on GitHub ↗

This test is used in the RFC.

(t *testing.T)

Source from the content-addressed store, hash-verified

506
507// This test is used in the RFC.
508func TestLocalRemoteEquivalence(t *testing.T) {
509 tt := testutils.T{T: t}
510
511 err1 := errors.New("hello")
512 err2 := errors.New("hello")
513 err3 := errors.New("world")
514
515 err1dec := network(err1)
516 err2dec := network(err2)
517 err3dec := network(err3)
518
519 // Equivalence is preserved across the network.
520 tt.Check(markers.Is(err1, err1dec) && markers.Is(err1dec, err1))
521 tt.Check(markers.Is(err2, err2dec) && markers.Is(err2dec, err2))
522 tt.Check(markers.Is(err3, err3dec) && markers.Is(err3dec, err3))
523
524 // Non-equivalence is preserved across the network.
525 tt.Check(!markers.Is(err1dec, err3))
526 tt.Check(!markers.Is(err2dec, err3))
527
528 // "m" makes err1w and err3w equivalent.
529 m := errors.New("mark")
530 err1w := markers.Mark(err1, m)
531 err3w := markers.Mark(err3, m)
532 // "m2" makes err1w and err2w non-equivalent even though err2 and err1 are.
533 m2 := errors.New("m2")
534 err2w := markers.Mark(err2, m2)
535
536 err1decw := network(err1w)
537 err2decw := network(err2w)
538 err3decw := network(err3w)
539
540 // Equivalence is preserved across the network.
541 tt.Check(markers.Is(err1decw, err1w) && markers.Is(err1w, err1decw))
542 tt.Check(markers.Is(err2decw, err2w) && markers.Is(err2w, err2decw))
543 tt.Check(markers.Is(err3decw, err3w) && markers.Is(err3w, err3decw))
544 tt.Check(markers.Is(err1decw, err3w) && markers.Is(err3decw, err1w))
545
546 // Non-equivalence is preserved across the network.
547 tt.Check(!markers.Is(err1w, err2decw) && !markers.Is(err2w, err1decw))
548}
549
550// This test is used in the RFC.
551func TestRemoteRemoteEquivalence(t *testing.T) {

Callers

nothing calls this directly

Calls 4

CheckMethod · 0.95
IsFunction · 0.92
MarkFunction · 0.92
networkFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…