@@ -49,13 +49,16 @@ func TestEncryptionFormat(t *testing.T) {
49
49
50
50
func TestEncryptionLoad (t * testing.T ) {
51
51
conn := radosConnect (t )
52
+ defer conn .Shutdown ()
52
53
53
54
poolname := GetUUID ()
54
55
err := conn .MakePool (poolname )
55
56
assert .NoError (t , err )
57
+ defer conn .DeletePool (poolname )
56
58
57
59
ioctx , err := conn .OpenIOContext (poolname )
58
60
require .NoError (t , err )
61
+ defer ioctx .Destroy ()
59
62
60
63
name := GetUUID ()
61
64
testImageSize := uint64 (1 << 23 ) // format requires more than 4194304 bytes
@@ -78,55 +81,58 @@ func TestEncryptionLoad(t *testing.T) {
78
81
// then write some encrypted data at the end of the image
79
82
err = img .Close ()
80
83
assert .NoError (t , err )
81
- img , err = OpenImage ( ioctx , name , NoSnapshot )
82
- err = img .EncryptionLoad ( opts )
83
- assert . NoError ( t , err )
84
+ defer func () {
85
+ assert . NoError ( t , img .Remove () )
86
+ }( )
84
87
85
- outData := []byte ("Hi rbd! Nice to talk through go-ceph :)" )
86
-
87
- stats , err := img .Stat ()
88
- require .NoError (t , err )
89
- offset := int64 (stats .Size ) - int64 (len (outData ))
90
-
91
- nOut , err := img .WriteAt (outData , offset )
92
- assert .Equal (t , len (outData ), nOut )
93
- assert .NoError (t , err )
94
-
95
- err = img .Close ()
96
- assert .NoError (t , err )
88
+ testData := []byte ("Hi rbd! Nice to talk through go-ceph :)" )
89
+ var offset int64
97
90
98
- // Re-open the image, load the encryption format, and read the encrypted data
99
- img , err = OpenImage (ioctx , name , NoSnapshot )
100
- assert .NoError (t , err )
101
- err = img .EncryptionLoad (opts )
102
- assert .NoError (t , err )
91
+ t .Run ("prepare" , func (t * testing.T ) {
92
+ img , err = OpenImage (ioctx , name , NoSnapshot )
93
+ assert .NoError (t , err )
94
+ defer img .Close ()
95
+ err = img .EncryptionLoad (opts )
96
+ assert .NoError (t , err )
103
97
104
- inData := make ([]byte , len (outData ))
105
- nIn , err := img .ReadAt (inData , offset )
106
- assert .Equal (t , nIn , len (inData ))
107
- assert .Equal (t , inData , outData )
108
- assert .NoError (t , err )
98
+ stats , err := img .Stat ()
99
+ require .NoError (t , err )
100
+ offset = int64 (stats .Size ) - int64 (len (testData ))
109
101
110
- err = img .Close ()
111
- assert .NoError (t , err )
102
+ nOut , err := img .WriteAt (testData , offset )
103
+ assert .Equal (t , len (testData ), nOut )
104
+ assert .NoError (t , err )
105
+ })
112
106
113
- // Re-open the image and attempt to read the encrypted data without loading the encryption
114
- img , err = OpenImage (ioctx , name , NoSnapshot )
115
- assert .NoError (t , err )
107
+ t .Run ("readEnc" , func (t * testing.T ) {
108
+ require .NotEqual (t , offset , 0 )
109
+ // Re-open the image, load the encryption format, and read the encrypted data
110
+ img , err = OpenImage (ioctx , name , NoSnapshot )
111
+ assert .NoError (t , err )
112
+ defer img .Close ()
113
+ err = img .EncryptionLoad (opts )
114
+ assert .NoError (t , err )
116
115
117
- nIn , err = img .ReadAt (inData , offset )
118
- assert .Equal (t , nIn , len (inData ))
119
- assert .NotEqual (t , inData , outData )
120
- assert .NoError (t , err )
116
+ inData := make ([]byte , len (testData ))
117
+ nIn , err := img .ReadAt (inData , offset )
118
+ assert .Equal (t , nIn , len (inData ))
119
+ assert .Equal (t , inData , testData )
120
+ assert .NoError (t , err )
121
+ })
121
122
122
- err = img .Close ()
123
- assert .NoError (t , err )
124
- err = img .Remove ()
125
- assert .NoError (t , err )
123
+ t .Run ("noEnc" , func (t * testing.T ) {
124
+ require .NotEqual (t , offset , 0 )
125
+ // Re-open the image and attempt to read the encrypted data without loading the encryption
126
+ img , err = OpenImage (ioctx , name , NoSnapshot )
127
+ assert .NoError (t , err )
128
+ defer img .Close ()
126
129
127
- ioctx .Destroy ()
128
- conn .DeletePool (poolname )
129
- conn .Shutdown ()
130
+ inData := make ([]byte , len (testData ))
131
+ nIn , err := img .ReadAt (inData , offset )
132
+ assert .Equal (t , nIn , len (inData ))
133
+ assert .NotEqual (t , inData , testData )
134
+ assert .NoError (t , err )
135
+ })
130
136
}
131
137
132
138
func TestEncryptedResize (t * testing.T ) {
0 commit comments