@@ -15,7 +15,6 @@ package ecscollector
15
15
16
16
import (
17
17
"bytes"
18
- _ "embed"
19
18
"flag"
20
19
"fmt"
21
20
"io"
@@ -33,7 +32,16 @@ import (
33
32
34
33
// Create a metadata client that will always receive the given fixture API
35
34
// responses.
36
- func fixtureClient (taskMetadata , taskStats []byte ) (* ecsmetadata.Client , * httptest.Server ) {
35
+ func fixtureClient (taskMetadataPath , taskStatsPath string ) (* ecsmetadata.Client , * httptest.Server , error ) {
36
+ taskMetadata , err := os .ReadFile (taskMetadataPath )
37
+ if err != nil {
38
+ return nil , nil , fmt .Errorf ("failed to read task metadata fixture: %w" , err )
39
+ }
40
+ taskStats , err := os .ReadFile (taskStatsPath )
41
+ if err != nil {
42
+ return nil , nil , fmt .Errorf ("failed to read task stats fixture: %w" , err )
43
+ }
44
+
37
45
mux := http .NewServeMux ()
38
46
mux .HandleFunc ("GET /task" , func (w http.ResponseWriter , r * http.Request ) {
39
47
w .Header ().Add ("content-type" , "application/json" )
@@ -45,7 +53,7 @@ func fixtureClient(taskMetadata, taskStats []byte) (*ecsmetadata.Client, *httpte
45
53
})
46
54
47
55
server := httptest .NewServer (mux )
48
- return ecsmetadata .NewClient (server .URL ), server
56
+ return ecsmetadata .NewClient (server .URL ), server , nil
49
57
}
50
58
51
59
// Renders ecs_exporter metrics from the given metadata client to the prometheus
@@ -89,20 +97,14 @@ func assertSnapshot(t *testing.T, path string, actual []byte) {
89
97
}
90
98
}
91
99
92
- //go:embed testdata/fixtures/fargate_task_metadata.json
93
- var fargateTaskMetadata []byte
94
-
95
- //go:embed testdata/fixtures/fargate_task_stats.json
96
- var fargateTaskStats []byte
97
-
98
- //go:embed testdata/fixtures/ec2_task_metadata.json
99
- var ec2TaskMetadata []byte
100
-
101
- //go:embed testdata/fixtures/ec2_task_stats.json
102
- var ec2TaskStats []byte
103
-
104
100
func TestFargateMetrics (t * testing.T ) {
105
- metadataClient , metadataServer := fixtureClient (fargateTaskMetadata , fargateTaskStats )
101
+ metadataClient , metadataServer , err := fixtureClient (
102
+ "testdata/fixtures/fargate_task_metadata.json" ,
103
+ "testdata/fixtures/fargate_task_stats.json" ,
104
+ )
105
+ if err != nil {
106
+ t .Fatalf ("failed to load test fixtures: %v" , err )
107
+ }
106
108
defer metadataServer .Close ()
107
109
metrics , err := renderMetrics (metadataClient )
108
110
if err != nil {
@@ -112,7 +114,13 @@ func TestFargateMetrics(t *testing.T) {
112
114
}
113
115
114
116
func TestEc2Metrics (t * testing.T ) {
115
- metadataClient , metadataServer := fixtureClient (ec2TaskMetadata , ec2TaskStats )
117
+ metadataClient , metadataServer , err := fixtureClient (
118
+ "testdata/fixtures/ec2_task_metadata.json" ,
119
+ "testdata/fixtures/ec2_task_stats.json" ,
120
+ )
121
+ if err != nil {
122
+ t .Fatalf ("failed to load test fixtures: %v" , err )
123
+ }
116
124
defer metadataServer .Close ()
117
125
metrics , err := renderMetrics (metadataClient )
118
126
if err != nil {
0 commit comments