Skip to content

Commit f161e3a

Browse files
committed
Fixing win_perf_counters tests
1 parent 5f88be0 commit f161e3a

File tree

3 files changed

+75
-62
lines changed

3 files changed

+75
-62
lines changed

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@ test: vet docker-kill docker-run
115115
test-short: vet
116116
go test -short ./...
117117

118+
# Run windows specific tests
119+
test-windows: vet
120+
go test ./plugins/inputs/ping/...
121+
go test ./plugins/inputs/win_perf_counters/...
122+
118123
vet:
119124
go vet ./...
120125

plugins/inputs/win_perf_counters/win_perf_counters.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ func (m *Win_PerfCounters) ParseConfig() error {
173173
}
174174
}
175175

176+
func (m *Win_PerfCounters) GetParsedItemsForTesting() []*item {
177+
return m.itemCache
178+
}
179+
176180
func (m *Win_PerfCounters) Gather(acc telegraf.Accumulator) error {
177181
// Parse the config once
178182
if !m.configParsed {

plugins/inputs/win_perf_counters/win_perf_counters_test.go

Lines changed: 66 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
)
1313

1414
func TestWinPerfcountersConfigGet1(t *testing.T) {
15-
validmetrics := itemList{}
1615

1716
var instances = make([]string, 1)
1817
var counters = make([]string, 1)
@@ -39,14 +38,13 @@ func TestWinPerfcountersConfigGet1(t *testing.T) {
3938

4039
perfobjects[0] = PerfObject
4140

42-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet1", Object: perfobjects}
41+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
4342

44-
err := m.ParseConfig(&validmetrics)
43+
err := m.ParseConfig()
4544
require.NoError(t, err)
4645
}
4746

4847
func TestWinPerfcountersConfigGet2(t *testing.T) {
49-
metrics := itemList{}
5048

5149
var instances = make([]string, 1)
5250
var counters = make([]string, 1)
@@ -73,26 +71,27 @@ func TestWinPerfcountersConfigGet2(t *testing.T) {
7371

7472
perfobjects[0] = PerfObject
7573

76-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet2", Object: perfobjects}
74+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
7775

78-
err := m.ParseConfig(&metrics)
76+
err := m.ParseConfig()
7977
require.NoError(t, err)
8078

81-
if len(metrics.items) == 1 {
79+
var parsedItems = m.GetParsedItemsForTesting()
80+
81+
if len(parsedItems) == 1 {
8282
require.NoError(t, nil)
83-
} else if len(metrics.items) == 0 {
84-
var errorstring1 string = "No results returned from the query: " + string(len(metrics.items))
83+
} else if len(parsedItems) == 0 {
84+
var errorstring1 string = "No results returned from the query: " + string(len(parsedItems))
8585
err2 := errors.New(errorstring1)
8686
require.NoError(t, err2)
87-
} else if len(metrics.items) > 1 {
88-
var errorstring1 string = "Too many results returned from the query: " + string(len(metrics.items))
87+
} else if len(parsedItems) > 1 {
88+
var errorstring1 string = "Too many results returned from the query: " + string(len(parsedItems))
8989
err2 := errors.New(errorstring1)
9090
require.NoError(t, err2)
9191
}
9292
}
9393

9494
func TestWinPerfcountersConfigGet3(t *testing.T) {
95-
metrics := itemList{}
9695

9796
var instances = make([]string, 1)
9897
var counters = make([]string, 2)
@@ -120,36 +119,37 @@ func TestWinPerfcountersConfigGet3(t *testing.T) {
120119

121120
perfobjects[0] = PerfObject
122121

123-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet3", Object: perfobjects}
122+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
124123

125-
err := m.ParseConfig(&metrics)
124+
err := m.ParseConfig()
126125
require.NoError(t, err)
127126

128-
if len(metrics.items) == 2 {
127+
var parsedItems = m.GetParsedItemsForTesting()
128+
129+
if len(parsedItems) == 2 {
129130
require.NoError(t, nil)
130-
} else if len(metrics.items) < 2 {
131+
} else if len(parsedItems) < 2 {
131132

132-
var errorstring1 string = "Too few results returned from the query. " + string(len(metrics.items))
133+
var errorstring1 string = "Too few results returned from the query. " + string(len(parsedItems))
133134
err2 := errors.New(errorstring1)
134135
require.NoError(t, err2)
135-
} else if len(metrics.items) > 2 {
136+
} else if len(parsedItems) > 2 {
136137

137-
var errorstring1 string = "Too many results returned from the query: " + string(len(metrics.items))
138+
var errorstring1 string = "Too many results returned from the query: " + string(len(parsedItems))
138139
err2 := errors.New(errorstring1)
139140
require.NoError(t, err2)
140141
}
141142
}
142143

143144
func TestWinPerfcountersConfigGet4(t *testing.T) {
144-
metrics := itemList{}
145145

146146
var instances = make([]string, 2)
147147
var counters = make([]string, 1)
148148
var perfobjects = make([]perfobject, 1)
149149

150150
objectname := "Processor Information"
151151
instances[0] = "_Total"
152-
instances[1] = "0"
152+
instances[1] = "0,1"
153153
counters[0] = "% Processor Time"
154154

155155
var measurement string = "test"
@@ -169,36 +169,37 @@ func TestWinPerfcountersConfigGet4(t *testing.T) {
169169

170170
perfobjects[0] = PerfObject
171171

172-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet4", Object: perfobjects}
172+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
173173

174-
err := m.ParseConfig(&metrics)
174+
err := m.ParseConfig()
175175
require.NoError(t, err)
176176

177-
if len(metrics.items) == 2 {
177+
var parsedItems = m.GetParsedItemsForTesting()
178+
179+
if len(parsedItems) == 2 {
178180
require.NoError(t, nil)
179-
} else if len(metrics.items) < 2 {
181+
} else if len(parsedItems) < 2 {
180182

181-
var errorstring1 string = "Too few results returned from the query: " + string(len(metrics.items))
183+
var errorstring1 string = "Too few results returned from the query: " + string(len(parsedItems))
182184
err2 := errors.New(errorstring1)
183185
require.NoError(t, err2)
184-
} else if len(metrics.items) > 2 {
186+
} else if len(parsedItems) > 2 {
185187

186-
var errorstring1 string = "Too many results returned from the query: " + string(len(metrics.items))
188+
var errorstring1 string = "Too many results returned from the query: " + string(len(parsedItems))
187189
err2 := errors.New(errorstring1)
188190
require.NoError(t, err2)
189191
}
190192
}
191193

192194
func TestWinPerfcountersConfigGet5(t *testing.T) {
193-
metrics := itemList{}
194195

195196
var instances = make([]string, 2)
196197
var counters = make([]string, 2)
197198
var perfobjects = make([]perfobject, 1)
198199

199200
objectname := "Processor Information"
200201
instances[0] = "_Total"
201-
instances[1] = "0"
202+
instances[1] = "0,1"
202203
counters[0] = "% Processor Time"
203204
counters[1] = "% Idle Time"
204205

@@ -219,28 +220,29 @@ func TestWinPerfcountersConfigGet5(t *testing.T) {
219220

220221
perfobjects[0] = PerfObject
221222

222-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet5", Object: perfobjects}
223+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
223224

224-
err := m.ParseConfig(&metrics)
225+
err := m.ParseConfig()
225226
require.NoError(t, err)
226227

227-
if len(metrics.items) == 4 {
228+
var parsedItems = m.GetParsedItemsForTesting()
229+
230+
if len(parsedItems) == 4 {
228231
require.NoError(t, nil)
229-
} else if len(metrics.items) < 4 {
232+
} else if len(parsedItems) < 4 {
230233
var errorstring1 string = "Too few results returned from the query: " +
231-
string(len(metrics.items))
234+
string(len(parsedItems))
232235
err2 := errors.New(errorstring1)
233236
require.NoError(t, err2)
234-
} else if len(metrics.items) > 4 {
237+
} else if len(parsedItems) > 4 {
235238
var errorstring1 string = "Too many results returned from the query: " +
236-
string(len(metrics.items))
239+
string(len(parsedItems))
237240
err2 := errors.New(errorstring1)
238241
require.NoError(t, err2)
239242
}
240243
}
241244

242245
func TestWinPerfcountersConfigGet6(t *testing.T) {
243-
validmetrics := itemList{}
244246

245247
var instances = make([]string, 1)
246248
var counters = make([]string, 1)
@@ -267,14 +269,13 @@ func TestWinPerfcountersConfigGet6(t *testing.T) {
267269

268270
perfobjects[0] = PerfObject
269271

270-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet6", Object: perfobjects}
272+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
271273

272-
err := m.ParseConfig(&validmetrics)
274+
err := m.ParseConfig()
273275
require.NoError(t, err)
274276
}
275277

276278
func TestWinPerfcountersConfigGet7(t *testing.T) {
277-
metrics := itemList{}
278279

279280
var instances = make([]string, 1)
280281
var counters = make([]string, 3)
@@ -303,28 +304,29 @@ func TestWinPerfcountersConfigGet7(t *testing.T) {
303304

304305
perfobjects[0] = PerfObject
305306

306-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigGet7", Object: perfobjects}
307+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
307308

308-
err := m.ParseConfig(&metrics)
309+
err := m.ParseConfig()
309310
require.NoError(t, err)
310311

311-
if len(metrics.items) == 2 {
312+
var parsedItems = m.GetParsedItemsForTesting()
313+
314+
if len(parsedItems) == 2 {
312315
require.NoError(t, nil)
313-
} else if len(metrics.items) < 2 {
316+
} else if len(parsedItems) < 2 {
314317
var errorstring1 string = "Too few results returned from the query: " +
315-
string(len(metrics.items))
318+
string(len(parsedItems))
316319
err2 := errors.New(errorstring1)
317320
require.NoError(t, err2)
318-
} else if len(metrics.items) > 2 {
321+
} else if len(parsedItems) > 2 {
319322
var errorstring1 string = "Too many results returned from the query: " +
320-
string(len(metrics.items))
323+
string(len(parsedItems))
321324
err2 := errors.New(errorstring1)
322325
require.NoError(t, err2)
323326
}
324327
}
325328

326329
func TestWinPerfcountersConfigError1(t *testing.T) {
327-
metrics := itemList{}
328330

329331
var instances = make([]string, 1)
330332
var counters = make([]string, 1)
@@ -351,14 +353,13 @@ func TestWinPerfcountersConfigError1(t *testing.T) {
351353

352354
perfobjects[0] = PerfObject
353355

354-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigError1", Object: perfobjects}
356+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
355357

356-
err := m.ParseConfig(&metrics)
358+
err := m.ParseConfig()
357359
require.Error(t, err)
358360
}
359361

360362
func TestWinPerfcountersConfigError2(t *testing.T) {
361-
metrics := itemList{}
362363

363364
var instances = make([]string, 1)
364365
var counters = make([]string, 1)
@@ -385,14 +386,13 @@ func TestWinPerfcountersConfigError2(t *testing.T) {
385386

386387
perfobjects[0] = PerfObject
387388

388-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigError2", Object: perfobjects}
389+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
389390

390-
err := m.ParseConfig(&metrics)
391+
err := m.ParseConfig()
391392
require.Error(t, err)
392393
}
393394

394395
func TestWinPerfcountersConfigError3(t *testing.T) {
395-
metrics := itemList{}
396396

397397
var instances = make([]string, 1)
398398
var counters = make([]string, 1)
@@ -419,9 +419,9 @@ func TestWinPerfcountersConfigError3(t *testing.T) {
419419

420420
perfobjects[0] = PerfObject
421421

422-
m := Win_PerfCounters{PrintValid: false, TestName: "ConfigError3", Object: perfobjects}
422+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
423423

424-
err := m.ParseConfig(&metrics)
424+
err := m.ParseConfig()
425425
require.Error(t, err)
426426
}
427427

@@ -435,6 +435,8 @@ func TestWinPerfcountersCollect1(t *testing.T) {
435435
instances[0] = "_Total"
436436
counters[0] = "Parking Status"
437437

438+
var expectedCounter string = "Parking_Status"
439+
438440
var measurement string = "test"
439441
var warnonmissing bool = false
440442
var failonmissing bool = true
@@ -452,7 +454,7 @@ func TestWinPerfcountersCollect1(t *testing.T) {
452454

453455
perfobjects[0] = PerfObject
454456

455-
m := Win_PerfCounters{PrintValid: false, TestName: "Collect1", Object: perfobjects}
457+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
456458
var acc testutil.Accumulator
457459
err := m.Gather(&acc)
458460
require.NoError(t, err)
@@ -465,7 +467,7 @@ func TestWinPerfcountersCollect1(t *testing.T) {
465467
"objectname": objectname,
466468
}
467469
fields := map[string]interface{}{
468-
counters[0]: float32(0),
470+
expectedCounter: float32(0),
469471
}
470472
acc.AssertContainsTaggedFields(t, measurement, fields, tags)
471473

@@ -481,6 +483,8 @@ func TestWinPerfcountersCollect2(t *testing.T) {
481483
instances[1] = "0,0"
482484
counters[0] = "Performance Limit Flags"
483485

486+
var expectedCounter string = "Performance_Limit_Flags"
487+
484488
var measurement string = "test"
485489
var warnonmissing bool = false
486490
var failonmissing bool = true
@@ -498,7 +502,7 @@ func TestWinPerfcountersCollect2(t *testing.T) {
498502

499503
perfobjects[0] = PerfObject
500504

501-
m := Win_PerfCounters{PrintValid: false, TestName: "Collect2", Object: perfobjects}
505+
m := Win_PerfCounters{PrintValid: false, Object: perfobjects}
502506
var acc testutil.Accumulator
503507
err := m.Gather(&acc)
504508
require.NoError(t, err)
@@ -511,7 +515,7 @@ func TestWinPerfcountersCollect2(t *testing.T) {
511515
"objectname": objectname,
512516
}
513517
fields := map[string]interface{}{
514-
counters[0]: float32(0),
518+
expectedCounter: float32(0),
515519
}
516520

517521
acc.AssertContainsTaggedFields(t, measurement, fields, tags)
@@ -520,7 +524,7 @@ func TestWinPerfcountersCollect2(t *testing.T) {
520524
"objectname": objectname,
521525
}
522526
fields = map[string]interface{}{
523-
counters[0]: float32(0),
527+
expectedCounter: float32(0),
524528
}
525529
acc.AssertContainsTaggedFields(t, measurement, fields, tags)
526530

0 commit comments

Comments
 (0)