11
11
// See the License for the specific language governing permissions and
12
12
// limitations under the License.
13
13
14
- package natsreloadertest
14
+ package natsreloader
15
15
16
16
import (
17
17
"context"
@@ -27,8 +27,6 @@ import (
27
27
"syscall"
28
28
"testing"
29
29
"time"
30
-
31
- "github.com/nats-io/nack/pkg/natsreloader"
32
30
)
33
31
34
32
const (
@@ -62,6 +60,31 @@ tls: {
62
60
cert_file: "./test.pem"
63
61
key_file: "./testkey.pem"
64
62
}
63
+ `
64
+ includeTest_0 = `
65
+ include nats_0.conf
66
+ include nats_1.conf; // semicolon terminated
67
+ include "nats_2.conf" // quoted
68
+ include "nats_3.conf"; // quoted and semicolon terminated
69
+ include 'nats_4.conf' // are single quotes valid in nats conf? if so also need this
70
+ include 'nats_5.conf'; // are single quotes valid in nats conf? if so also need this
71
+ include $NATS; // ignore, this is a variable. let's not worry about variable interpolation
72
+ include "$NATS_6.conf" // don't ignore, this is a string not a variable
73
+ include includeTest_1.conf
74
+ `
75
+ includeTest_1 = `
76
+ tls: {
77
+ cert_file: ./nats_0.pem
78
+ key_file: 'nats_0.key'
79
+ }
80
+ tls: {
81
+ cert_file: "./nats_1.pem"
82
+ key_file: $test
83
+ }
84
+ tls: {
85
+ cert_file: "$nats_2.pem";
86
+ key_file: 'nats_1.key';
87
+ }
65
88
`
66
89
)
67
90
@@ -85,7 +108,7 @@ func TestReloader(t *testing.T) {
85
108
defer os .Remove (pidfile .Name ())
86
109
87
110
// Create tempfile with contents, then update it
88
- nconfig := & natsreloader. Config {
111
+ nconfig := & Config {
89
112
PidFile : pidfile .Name (),
90
113
WatchedFiles : []string {},
91
114
Signal : syscall .SIGHUP ,
@@ -106,7 +129,7 @@ func TestReloader(t *testing.T) {
106
129
nconfig .WatchedFiles = append (nconfig .WatchedFiles , configFile .Name ())
107
130
}
108
131
109
- r , err := natsreloader . NewReloader (nconfig )
132
+ r , err := NewReloader (nconfig )
110
133
if err != nil {
111
134
t .Fatal (err )
112
135
}
@@ -173,6 +196,74 @@ func TestReloader(t *testing.T) {
173
196
}
174
197
}
175
198
199
+ func TestInclude (t * testing.T ) {
200
+ directory , err := os .Getwd ()
201
+ if err != nil {
202
+ t .Fatal (err )
203
+ }
204
+
205
+ dummyFiles := []string {
206
+ "nats_0.conf" ,
207
+ "nats_1.conf" ,
208
+ "nats_2.conf" ,
209
+ "nats_3.conf" ,
210
+ "nats_4.conf" ,
211
+ "nats_5.conf" ,
212
+ "$NATS_6.conf" ,
213
+ "nats_0.pem" ,
214
+ "nats_1.pem" ,
215
+ "$nats_2.pem" ,
216
+ "nats_0.key" ,
217
+ "nats_1.key" ,
218
+ }
219
+
220
+ for _ , f := range dummyFiles {
221
+ p := filepath .Join (directory , f )
222
+ err = writeFile ("" , p )
223
+ defer os .Remove (p )
224
+ if err != nil {
225
+ t .Fatal (err )
226
+ }
227
+ }
228
+
229
+ includeTestConf_0 := filepath .Join (directory , "includeTest_0.conf" )
230
+ err = writeFile (includeTest_0 , includeTestConf_0 )
231
+ defer os .Remove (includeTestConf_0 )
232
+ if err != nil {
233
+ t .Fatal (err )
234
+ }
235
+
236
+ includeTestConf_1 := filepath .Join (directory , "includeTest_1.conf" )
237
+ err = writeFile (includeTest_1 , includeTestConf_1 )
238
+ defer os .Remove (includeTestConf_1 )
239
+ if err != nil {
240
+ t .Fatal (err )
241
+ }
242
+
243
+ includes , err := getServerFiles ("includeTest_0.conf" )
244
+ if err != nil {
245
+ t .Fatal (err )
246
+ }
247
+
248
+ includePaths := make ([]string , 0 )
249
+ for _ , p := range includes {
250
+ includePaths = append (includePaths , filepath .Base (p ))
251
+ }
252
+
253
+ dummyFiles = append (dummyFiles , "includeTest_0.conf" )
254
+ dummyFiles = append (dummyFiles , "includeTest_1.conf" )
255
+
256
+ sort .Strings (dummyFiles )
257
+ sort .Strings (includePaths )
258
+
259
+ for i , p := range dummyFiles {
260
+ if p != includePaths [i ] {
261
+ t .Fatal ("Expected include paths do not match" )
262
+ }
263
+ }
264
+
265
+ }
266
+
176
267
func TestFileFinder (t * testing.T ) {
177
268
directory , err := os .Getwd ()
178
269
if err != nil {
@@ -218,13 +309,13 @@ func TestFileFinder(t *testing.T) {
218
309
}
219
310
defer os .Remove (pidFile )
220
311
221
- nconfig := & natsreloader. Config {
312
+ nconfig := & Config {
222
313
PidFile : pidFile ,
223
314
WatchedFiles : []string {filepath .Join (directory , "testConfig_0.conf" )},
224
315
Signal : syscall .SIGHUP ,
225
316
}
226
317
227
- r , err := natsreloader . NewReloader (nconfig )
318
+ r , err := NewReloader (nconfig )
228
319
if err != nil {
229
320
t .Fatal (err )
230
321
}
0 commit comments