func BenchmarkPubSub(b *testing.B) {
	pub := new(pubsub.Publisher)
	r1, _ := pub.SubReader()
	r2, _ := pub.SubReader()
	for i := 0; i < b.N; i++ {
		pub.Publish(i)
		v1 := r1.Read()
		v2 := r2.Read()
		if v1 != v2 || v1 != i {
			b.Fatal("incorrect value")
		}
	}
}
func TestSubReader(t *testing.T) {
	pub := pubsub.Publisher{}
	r, last := pub.SubReader()
	if last != nil {
		t.Fatal("last message shuold be nil")
	}
	pub.Publish("msg 1")
	pub.Publish("msg 2")
	if r.Read() != "msg 1" {
		t.Fatal("incorrect message received")
	}
	if r.Read() != "msg 2" {
		t.Fatal("incorrect message received")
	}
}