@@ -158,3 +158,39 @@ func TestDelegation(t *testing.T) {
158
158
assert .Equal (t , 1 , post .(* testLogger ).enabledN , "Enabled not delegated" )
159
159
}
160
160
}
161
+
162
+ func TestLoggerIdentity (t * testing.T ) {
163
+ type id struct { name , ver , url string }
164
+
165
+ ids := []id {
166
+ {"name-a" , "version-a" , "url-a" },
167
+ {"name-a" , "version-a" , "url-b" },
168
+ {"name-a" , "version-b" , "url-a" },
169
+ {"name-a" , "version-b" , "url-b" },
170
+ {"name-b" , "version-a" , "url-a" },
171
+ {"name-b" , "version-a" , "url-b" },
172
+ {"name-b" , "version-b" , "url-a" },
173
+ {"name-b" , "version-b" , "url-b" },
174
+ }
175
+
176
+ provider := & loggerProvider {}
177
+ newLogger := func (i id ) log.Logger {
178
+ return provider .Logger (
179
+ i .name ,
180
+ log .WithInstrumentationVersion (i .ver ),
181
+ log .WithSchemaURL (i .url ),
182
+ )
183
+ }
184
+
185
+ for i , id0 := range ids {
186
+ for j , id1 := range ids {
187
+ l0 , l1 := newLogger (id0 ), newLogger (id1 )
188
+
189
+ if i == j {
190
+ assert .Samef (t , l0 , l1 , "logger(%v) != logger(%v)" , id0 , id1 )
191
+ } else {
192
+ assert .NotSamef (t , l0 , l1 , "logger(%v) == logger(%v)" , id0 , id1 )
193
+ }
194
+ }
195
+ }
196
+ }
0 commit comments