@@ -3,6 +3,7 @@ package local
3
3
import (
4
4
"io/ioutil"
5
5
"os"
6
+ "path/filepath"
6
7
"reflect"
7
8
"runtime"
8
9
"strings"
@@ -133,6 +134,11 @@ func TestCreate(t *testing.T) {
133
134
}
134
135
}
135
136
}
137
+
138
+ r , err = New (rootDir , 0 , 0 )
139
+ if err != nil {
140
+ t .Fatal (err )
141
+ }
136
142
}
137
143
138
144
func TestValidateName (t * testing.T ) {
@@ -262,3 +268,61 @@ func TestCreateWithOpts(t *testing.T) {
262
268
t .Fatal ("missing volume options on restart" )
263
269
}
264
270
}
271
+
272
+ func TestRealodNoOpts (t * testing.T ) {
273
+ rootDir , err := ioutil .TempDir ("" , "volume-test-reload-no-opts" )
274
+ if err != nil {
275
+ t .Fatal (err )
276
+ }
277
+ defer os .RemoveAll (rootDir )
278
+
279
+ r , err := New (rootDir , 0 , 0 )
280
+ if err != nil {
281
+ t .Fatal (err )
282
+ }
283
+
284
+ if _ , err := r .Create ("test1" , nil ); err != nil {
285
+ t .Fatal (err )
286
+ }
287
+ if _ , err := r .Create ("test2" , nil ); err != nil {
288
+ t .Fatal (err )
289
+ }
290
+ // make sure a file with `null` (.e.g. empty opts map from older daemon) is ok
291
+ if err := ioutil .WriteFile (filepath .Join (rootDir , "test2" ), []byte ("null" ), 600 ); err != nil {
292
+ t .Fatal (err )
293
+ }
294
+
295
+ if _ , err := r .Create ("test3" , nil ); err != nil {
296
+ t .Fatal (err )
297
+ }
298
+ // make sure an empty opts file doesn't break us too
299
+ if err := ioutil .WriteFile (filepath .Join (rootDir , "test3" ), nil , 600 ); err != nil {
300
+ t .Fatal (err )
301
+ }
302
+
303
+ if _ , err := r .Create ("test4" , map [string ]string {}); err != nil {
304
+ t .Fatal (err )
305
+ }
306
+
307
+ r , err = New (rootDir , 0 , 0 )
308
+ if err != nil {
309
+ t .Fatal (err )
310
+ }
311
+
312
+ for _ , name := range []string {"test1" , "test2" , "test3" , "test4" } {
313
+ v , err := r .Get (name )
314
+ if err != nil {
315
+ t .Fatal (err )
316
+ }
317
+ lv , ok := v .(* localVolume )
318
+ if ! ok {
319
+ t .Fatalf ("expected *localVolume got: %v" , reflect .TypeOf (v ))
320
+ }
321
+ if lv .opts != nil {
322
+ t .Fatalf ("expected opts to be nil, got: %v" , lv .opts )
323
+ }
324
+ if _ , err := lv .Mount ("1234" ); err != nil {
325
+ t .Fatal (err )
326
+ }
327
+ }
328
+ }
0 commit comments