@@ -126,15 +126,21 @@ func TestRenderTargetDeltaComputesCommonPlaceholderWithoutTs0Delta(t *testing.T)
126126 saved0Delta := decoder .TargetStamp0Delta
127127 saved16Delta := decoder .TargetStamp16Delta
128128 saved32Delta := decoder .TargetStamp32Delta
129+ saved16Passed := decoder .ShowTargetStamp16DeltaPassed
130+ saved32Passed := decoder .ShowTargetStamp32DeltaPassed
129131 defer func () {
130132 decoder .TargetStamp0Delta = saved0Delta
131133 decoder .TargetStamp16Delta = saved16Delta
132134 decoder .TargetStamp32Delta = saved32Delta
135+ decoder .ShowTargetStamp16DeltaPassed = saved16Passed
136+ decoder .ShowTargetStamp32DeltaPassed = saved32Passed
133137 }()
134138
135139 decoder .TargetStamp0Delta = ""
136140 decoder .TargetStamp16Delta = "us"
137141 decoder .TargetStamp32Delta = ""
142+ decoder .ShowTargetStamp16DeltaPassed = false
143+ decoder .ShowTargetStamp32DeltaPassed = false
138144
139145 state := targetStampState {}
140146 got := renderTargetDelta (4 , 123 , & state )
@@ -144,6 +150,72 @@ func TestRenderTargetDeltaComputesCommonPlaceholderWithoutTs0Delta(t *testing.T)
144150 }
145151}
146152
153+ func TestRenderTargetDeltaExplicitEmptyDisablesTs16Placeholder (t * testing.T ) {
154+ saved16Delta := decoder .TargetStamp16Delta
155+ saved32Delta := decoder .TargetStamp32Delta
156+ saved16Passed := decoder .ShowTargetStamp16DeltaPassed
157+ saved32Passed := decoder .ShowTargetStamp32DeltaPassed
158+ defer func () {
159+ decoder .TargetStamp16Delta = saved16Delta
160+ decoder .TargetStamp32Delta = saved32Delta
161+ decoder .ShowTargetStamp16DeltaPassed = saved16Passed
162+ decoder .ShowTargetStamp32DeltaPassed = saved32Passed
163+ }()
164+
165+ decoder .TargetStamp16Delta = ""
166+ decoder .TargetStamp32Delta = "dt:%5d"
167+ decoder .ShowTargetStamp16DeltaPassed = true
168+ decoder .ShowTargetStamp32DeltaPassed = true
169+
170+ state := targetStampState {}
171+ if got := renderTargetDelta (2 , 123 , & state ); got != "" {
172+ t .Fatalf ("expected explicit empty ts16delta to suppress placeholder, got %q" , got )
173+ }
174+ }
175+
176+ func TestRenderTargetDeltaExplicitEmptyDisablesTs32Placeholder (t * testing.T ) {
177+ saved16Delta := decoder .TargetStamp16Delta
178+ saved32Delta := decoder .TargetStamp32Delta
179+ saved16Passed := decoder .ShowTargetStamp16DeltaPassed
180+ saved32Passed := decoder .ShowTargetStamp32DeltaPassed
181+ defer func () {
182+ decoder .TargetStamp16Delta = saved16Delta
183+ decoder .TargetStamp32Delta = saved32Delta
184+ decoder .ShowTargetStamp16DeltaPassed = saved16Passed
185+ decoder .ShowTargetStamp32DeltaPassed = saved32Passed
186+ }()
187+
188+ decoder .TargetStamp16Delta = "dt:%4d"
189+ decoder .TargetStamp32Delta = ""
190+ decoder .ShowTargetStamp16DeltaPassed = true
191+ decoder .ShowTargetStamp32DeltaPassed = true
192+
193+ state := targetStampState {}
194+ if got := renderTargetDelta (4 , 123 , & state ); got != "" {
195+ t .Fatalf ("expected explicit empty ts32delta to suppress placeholder, got %q" , got )
196+ }
197+ }
198+
199+ func TestRenderTargetDeltaExplicitEmptyDisablesTs0Placeholder (t * testing.T ) {
200+ saved0Delta := decoder .TargetStamp0Delta
201+ saved16Delta := decoder .TargetStamp16Delta
202+ saved0Passed := decoder .ShowTargetStamp0DeltaPassed
203+ defer func () {
204+ decoder .TargetStamp0Delta = saved0Delta
205+ decoder .TargetStamp16Delta = saved16Delta
206+ decoder .ShowTargetStamp0DeltaPassed = saved0Passed
207+ }()
208+
209+ decoder .TargetStamp0Delta = ""
210+ decoder .TargetStamp16Delta = "dt:%4d"
211+ decoder .ShowTargetStamp0DeltaPassed = true
212+
213+ state := targetStampState {}
214+ if got := renderTargetDelta (0 , 0 , & state ); got != "" {
215+ t .Fatalf ("expected explicit empty ts0delta to suppress placeholder, got %q" , got )
216+ }
217+ }
218+
147219func TestTargetStampDisplayWidthUsesGenericTagPrefix (t * testing.T ) {
148220 if got := targetStampDisplayWidth (4 , "time:%12d" ); got != 12 {
149221 t .Fatalf ("unexpected display width for time tag: %d" , got )
0 commit comments