package smx509 import "testing" func TestCertPoolEqual(t *testing.T) { a, b := NewCertPool(), NewCertPool() if !a.Equal(b) { t.Error("two empty pools not equal") } tc := &Certificate{Raw: []byte{1, 2, 3}, RawSubject: []byte{2}} a.AddCert(tc) if a.Equal(b) { t.Error("empty pool equals non-empty pool") } b.AddCert(tc) if !a.Equal(b) { t.Error("two non-empty pools not equal") } otherTC := &Certificate{Raw: []byte{9, 8, 7}, RawSubject: []byte{8}} a.AddCert(otherTC) if a.Equal(b) { t.Error("non-equal pools equal") } systemA, err := SystemCertPool() if err != nil { t.Fatalf("unable to load system cert pool: %s", err) } systemB, err := SystemCertPool() if err != nil { t.Fatalf("unable to load system cert pool: %s", err) } if !systemA.Equal(systemB) { t.Error("two empty system pools not equal") } systemA.AddCert(tc) if systemA.Equal(systemB) { t.Error("empty system pool equals non-empty system pool") } systemB.AddCert(tc) if !systemA.Equal(systemB) { t.Error("two non-empty system pools not equal") } systemA.AddCert(otherTC) if systemA.Equal(systemB) { t.Error("non-equal system pools equal") } }