@@ -37,7 +37,9 @@ func TestGenerateSpec(t *testing.T) {
37
37
require .NoError (t , err )
38
38
39
39
driverRoot := filepath .Join (moduleRoot , "testdata" , "lookup" , "rootfs-1" )
40
- disableHook := cli .NewStringSlice ("enable-cuda-compat" , "create-symlinks" , "update-ldcache" )
40
+ disableHook1 := cli .NewStringSlice ("enable-cuda-compat" )
41
+ disableHook2 := cli .NewStringSlice ("enable-cuda-compat" , "update-ldcache" )
42
+ disableHook3 := cli .NewStringSlice ("all" )
41
43
42
44
logger , _ := testlog .NewNullLogger ()
43
45
testCases := []struct {
@@ -117,14 +119,14 @@ containerEdits:
117
119
` ,
118
120
},
119
121
{
120
- description : "disableHooks " ,
122
+ description : "disableHooks1 " ,
121
123
options : options {
122
- format : "yaml" ,
123
- mode : "nvml" ,
124
- vendor : "example.com" ,
125
- class : "device" ,
126
- driverRoot : driverRoot ,
127
- disableHooks : * disableHook ,
124
+ format : "yaml" ,
125
+ mode : "nvml" ,
126
+ vendor : "example.com" ,
127
+ class : "device" ,
128
+ driverRoot : driverRoot ,
129
+ disabledHooks : * disableHook1 ,
128
130
},
129
131
expectedOptions : options {
130
132
format : "yaml" ,
@@ -133,7 +135,128 @@ containerEdits:
133
135
class : "device" ,
134
136
nvidiaCDIHookPath : "/usr/bin/nvidia-cdi-hook" ,
135
137
driverRoot : driverRoot ,
136
- disableHooks : * disableHook ,
138
+ disabledHooks : * disableHook1 ,
139
+ },
140
+ expectedSpec : `---
141
+ cdiVersion: 0.5.0
142
+ kind: example.com/device
143
+ devices:
144
+ - name: "0"
145
+ containerEdits:
146
+ deviceNodes:
147
+ - path: /dev/nvidia0
148
+ hostPath: {{ .driverRoot }}/dev/nvidia0
149
+ - name: all
150
+ containerEdits:
151
+ deviceNodes:
152
+ - path: /dev/nvidia0
153
+ hostPath: {{ .driverRoot }}/dev/nvidia0
154
+ containerEdits:
155
+ env:
156
+ - NVIDIA_VISIBLE_DEVICES=void
157
+ deviceNodes:
158
+ - path: /dev/nvidiactl
159
+ hostPath: {{ .driverRoot }}/dev/nvidiactl
160
+ hooks:
161
+ - hookName: createContainer
162
+ path: /usr/bin/nvidia-cdi-hook
163
+ args:
164
+ - nvidia-cdi-hook
165
+ - create-symlinks
166
+ - --link
167
+ - libcuda.so.1::/lib/x86_64-linux-gnu/libcuda.so
168
+ - hookName: createContainer
169
+ path: /usr/bin/nvidia-cdi-hook
170
+ args:
171
+ - nvidia-cdi-hook
172
+ - update-ldcache
173
+ - --folder
174
+ - /lib/x86_64-linux-gnu
175
+ mounts:
176
+ - hostPath: {{ .driverRoot }}/lib/x86_64-linux-gnu/libcuda.so.999.88.77
177
+ containerPath: /lib/x86_64-linux-gnu/libcuda.so.999.88.77
178
+ options:
179
+ - ro
180
+ - nosuid
181
+ - nodev
182
+ - bind
183
+ ` ,
184
+ },
185
+ {
186
+ description : "disableHooks2" ,
187
+ options : options {
188
+ format : "yaml" ,
189
+ mode : "nvml" ,
190
+ vendor : "example.com" ,
191
+ class : "device" ,
192
+ driverRoot : driverRoot ,
193
+ disabledHooks : * disableHook2 ,
194
+ },
195
+ expectedOptions : options {
196
+ format : "yaml" ,
197
+ mode : "nvml" ,
198
+ vendor : "example.com" ,
199
+ class : "device" ,
200
+ nvidiaCDIHookPath : "/usr/bin/nvidia-cdi-hook" ,
201
+ driverRoot : driverRoot ,
202
+ disabledHooks : * disableHook2 ,
203
+ },
204
+ expectedSpec : `---
205
+ cdiVersion: 0.5.0
206
+ kind: example.com/device
207
+ devices:
208
+ - name: "0"
209
+ containerEdits:
210
+ deviceNodes:
211
+ - path: /dev/nvidia0
212
+ hostPath: {{ .driverRoot }}/dev/nvidia0
213
+ - name: all
214
+ containerEdits:
215
+ deviceNodes:
216
+ - path: /dev/nvidia0
217
+ hostPath: {{ .driverRoot }}/dev/nvidia0
218
+ containerEdits:
219
+ env:
220
+ - NVIDIA_VISIBLE_DEVICES=void
221
+ deviceNodes:
222
+ - path: /dev/nvidiactl
223
+ hostPath: {{ .driverRoot }}/dev/nvidiactl
224
+ hooks:
225
+ - hookName: createContainer
226
+ path: /usr/bin/nvidia-cdi-hook
227
+ args:
228
+ - nvidia-cdi-hook
229
+ - create-symlinks
230
+ - --link
231
+ - libcuda.so.1::/lib/x86_64-linux-gnu/libcuda.so
232
+ mounts:
233
+ - hostPath: {{ .driverRoot }}/lib/x86_64-linux-gnu/libcuda.so.999.88.77
234
+ containerPath: /lib/x86_64-linux-gnu/libcuda.so.999.88.77
235
+ options:
236
+ - ro
237
+ - nosuid
238
+ - nodev
239
+ - bind
240
+ ` ,
241
+ },
242
+ {
243
+ description : "disableHooksAll" ,
244
+ options : options {
245
+ format : "yaml" ,
246
+ mode : "nvml" ,
247
+ vendor : "example.com" ,
248
+ class : "device" ,
249
+ driverRoot : driverRoot ,
250
+ disabledHooks : * disableHook3 ,
251
+ },
252
+ expectedOptions : options {
253
+ format : "yaml" ,
254
+ mode : "nvml" ,
255
+ vendor : "example.com" ,
256
+ class : "device" ,
257
+ nvidiaCDIHookPath : "/usr/bin/nvidia-cdi-hook" ,
258
+ driverRoot : driverRoot ,
259
+ disabledHooks : * disableHook3 ,
137
260
},
138
261
expectedSpec : `---
139
262
cdiVersion: 0.5.0
0 commit comments