Skip to content

Commit b644c5e

Browse files
Merge pull request #192 from martin-belanger/plugins2
Add ability to override linux-nvme driver by other drivers
2 parents 880452b + 2013684 commit b644c5e

File tree

13 files changed

+1335
-1118
lines changed

13 files changed

+1335
-1118
lines changed

coverage.sh.in

Lines changed: 92 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,24 @@ PRIMARY_GRP=$( id -ng )
3838
PRIMARY_USR=$( id -nu )
3939
PYTHON_PATH=.:./subprojects/libnvme
4040

41+
log() {
42+
msg="$1"
43+
printf "%b[1;36m%s%b[0m\n" "\0033" "${msg}" "\0033"
44+
sudo logger -i "@@@@@ COVERAGE -" -p 4 "${msg}"
45+
}
46+
4147
sd_stop() {
42-
unit="$1"-cov.service
48+
app="$1"
49+
unit="${app}"-cov.service
50+
log "Stop ${app}"
4351
sudo systemctl stop "${unit}" >/dev/null 2>&1
4452
sudo systemctl reset-failed "${unit}" >/dev/null 2>&1
4553
}
4654

4755
sd_restart() {
48-
unit="$1"-cov.service
56+
app="$1"
57+
unit="${app}"-cov.service
58+
log "Restart ${app}"
4959
sudo systemctl restart "${unit}" >/dev/null 2>&1
5060
}
5161

@@ -61,7 +71,7 @@ sd_start() {
6171
cmd="${app} --syslog -f ${conf}"
6272
fi
6373

64-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Start ${app}" "\0033"
74+
log "Start ${app}"
6575

6676
RUNTIME_DIRECTORY=/tmp/${app}
6777
rm -rf ${RUNTIME_DIRECTORY}
@@ -75,23 +85,32 @@ reload_cfg() {
7585
app="$1"
7686
unit="${app}"-cov.service
7787
pid=$( systemctl show --property MainPID --value "${unit}" )
78-
printf "%b[1;36m%s%b[0m\n" "\0033" "Reload config ${app}" "\0033"
88+
log "Reload config ${app}"
7989
sudo kill -HUP "${pid}"
8090
}
8191

8292
if [ ! -d coverage ]; then
8393
mkdir coverage
8494
fi
8595

96+
97+
log "START-START-START-START-START-START-START-START-START-START-START-START"
98+
99+
100+
86101
################################################################################
87102
# Load nvme kernel module
103+
log "modprobe nvme-tcp"
88104
sudo /usr/sbin/modprobe nvme-tcp
89105

106+
log "nvme disconnect-all"
90107
sudo nvme disconnect-all
91108

92109
################################################################################
93110
# Create a dummy config file for @STAFD_PROCNAME@
94-
stafd_conf_fname=$(mktemp /tmp/@[email protected])
111+
112+
log "Create dummy config file $file"
113+
stafd_conf_fname=$(mktemp $file)
95114
cat > "${stafd_conf_fname}" <<'EOF'
96115
[Global]
97116
tron=true
@@ -102,7 +121,9 @@ EOF
102121

103122
################################################################################
104123
# Create a dummy config file for @STACD_PROCNAME@
105-
stacd_conf_fname=$(mktemp /tmp/@[email protected])
124+
125+
log "Create dummy config file $file"
126+
stacd_conf_fname=$(mktemp $file)
106127
cat > "${stacd_conf_fname}" <<'EOF'
107128
[Global]
108129
tron=true
@@ -111,18 +132,19 @@ udev-rule=disabled
111132
sticky-connections=enabled
112133
EOF
113134

135+
log "Stop & Mask Avahi daemon"
114136
sudo systemctl stop avahi-daemon.service
115137
sudo systemctl stop avahi-daemon.socket
116138
sudo systemctl mask avahi-daemon.service
117139
sudo systemctl mask avahi-daemon.socket
118140
sleep 1
119141

120142

121-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ status while @STAFD_PROCNAME@ is not running" "\0033"
143+
log "Invoking @STAFD_CTLNAME@ status while @STAFD_PROCNAME@ is not running"
122144
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ ls >/dev/null 2>&1
123145
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ invalid-command >/dev/null 2>&1
124146

125-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ status while @STACD_PROCNAME@ is not running" "\0033"
147+
log "Invoking @STACD_CTLNAME@ status while @STACD_PROCNAME@ is not running"
126148
coverage run --rcfile=.coveragerc @STACD_CTLNAME@ ls >/dev/null 2>&1
127149
coverage run --rcfile=.coveragerc @STACD_CTLNAME@ invalid-command >/dev/null 2>&1
128150

@@ -132,30 +154,33 @@ sd_start "@STAFD_PROCNAME@" "@STAFD_DBUS_NAME@" "${stafd_conf_fname}"
132154
sd_start "@STACD_PROCNAME@" "@STACD_DBUS_NAME@" "${stacd_conf_fname}"
133155
sleep 3
134156

135-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ status" "\0033"
157+
log "Invoking @STAFD_CTLNAME@ status"
136158
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ status >/dev/null 2>&1
137159

138160
reload_cfg "@STAFD_PROCNAME@"
139161
sleep 1
140162

163+
log "Restart Avahi daemon"
141164
sudo systemctl unmask avahi-daemon.socket
142165
sudo systemctl unmask avahi-daemon.service
143166
sudo systemctl start avahi-daemon.socket
144167
sudo systemctl start avahi-daemon.service
145168
sleep 2
146169

170+
log "Change stafd config: tron=true, persistent-connections=false, zeroconf=enable"
147171
cat > "${stafd_conf_fname}" <<'EOF'
148172
[Global]
149173
tron=true
150174
persistent-connections=false
151175
152176
[Service Discovery]
153-
zeroconf=disabled
177+
zeroconf=enabled
154178
EOF
155179
reload_cfg "@STAFD_PROCNAME@"
156180

157181
sleep 1
158182

183+
log "Change stafd config: ip-family=ipv4, kato=10, adding multiple controllers"
159184
cat > "${stafd_conf_fname}" <<'EOF'
160185
[Global]
161186
tron=true
@@ -172,11 +197,15 @@ controller=transport=tcp;traddr=abracadabra
172197
controller=
173198
controller=trsvcid
174199
controller=transport=rdma;traddr=!@#$
200+
controller=transport=fc;traddr=21:00:00:00:00:00:00:00;host-traddr=20:00:00:00:00:00:00:00
201+
controller=transport=XM;traddr=2.2.2.2
175202
blacklist=transport=tcp;traddr=1.1.1.1
176203
blacklist=transport=tcp;traddr=1000.1000.1000.1000
177204
EOF
178205
reload_cfg "@STAFD_PROCNAME@"
179206

207+
208+
log "Change stacd config: tron=true, udev-rule=disabled, sticky-connections=disabled"
180209
cat > "${stacd_conf_fname}" <<'EOF'
181210
[Global]
182211
tron=true
@@ -186,12 +215,12 @@ EOF
186215
reload_cfg "@STACD_PROCNAME@"
187216
sleep 3
188217

189-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ status" "\0033"
218+
log "Invoking @STAFD_CTLNAME@ status"
190219
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ status >/dev/null 2>&1
191220

192221
################################################################################
193222
# Fake mDNS packets from a CDC
194-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Start Avahi publisher" "\0033"
223+
log "Start Avahi publisher"
195224
AVAHI_PUBLISHER=mdns_publisher.service
196225
sudo systemctl stop ${AVAHI_PUBLISHER} >/dev/null 2>&1
197226
sudo systemctl reset-failed ${AVAHI_PUBLISHER} >/dev/null 2>&1
@@ -200,7 +229,7 @@ sleep 1
200229

201230
################################################################################
202231
# Start nvme target simulator
203-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Start nvmet" "\0033"
232+
log "Start nvmet"
204233
sudo ../utils/nvmet/nvmet.py clean
205234
sudo ../utils/nvmet/nvmet.py create -f ../utils/nvmet/nvmet.conf
206235
sleep 2
@@ -210,76 +239,76 @@ reload_cfg "@STACD_PROCNAME@"
210239
sleep 3
211240

212241
################################################################################
213-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_PROCNAME@ --version" "\0033"
242+
log "Invoking @STAFD_PROCNAME@ --version"
214243
coverage run --rcfile=.coveragerc @STAFD_PROCNAME@ --version
215-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_PROCNAME@ --idl" "\0033"
244+
log "Invoking @STAFD_PROCNAME@ --idl"
216245
coverage run --rcfile=.coveragerc @STAFD_PROCNAME@ --idl /tmp/@[email protected]
217246

218-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_PROCNAME@ --version" "\0033"
247+
log "Invoking @STACD_PROCNAME@ --version"
219248
coverage run --rcfile=.coveragerc @STACD_PROCNAME@ --version
220-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_PROCNAME@ --idl" "\0033"
249+
log "Invoking @STACD_PROCNAME@ --idl"
221250
coverage run --rcfile=.coveragerc @STACD_PROCNAME@ --idl /tmp/@[email protected]
222251

223252
################################################################################
224253
# Stimulate D-Bus activity
225-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ --version" "\0033"
254+
log "Invoking @STAFD_CTLNAME@ --version"
226255
sudo coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ --version
227-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ with a bad command" "\0033"
256+
log "Invoking @STAFD_CTLNAME@ with a bad command"
228257
sudo coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ blah
229-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ troff" "\0033"
258+
log "Invoking @STAFD_CTLNAME@ troff"
230259
sudo coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ troff
231-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ status" "\0033"
260+
log "Invoking @STAFD_CTLNAME@ status"
232261
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ status >/dev/null 2>&1
233-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ tron" "\0033"
262+
log "Invoking @STAFD_CTLNAME@ tron"
234263
sudo coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ tron
235-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ ls" "\0033"
264+
log "Invoking @STAFD_CTLNAME@ ls"
236265
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ ls -d >/dev/null 2>&1
237-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ adlp" "\0033"
266+
log "Invoking @STAFD_CTLNAME@ adlp"
238267
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ adlp -d >/dev/null 2>&1
239-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STAFD_CTLNAME@ dlp" "\0033"
268+
log "Invoking @STAFD_CTLNAME@ dlp"
240269
coverage run --rcfile=.coveragerc @STAFD_CTLNAME@ dlp -t tcp -a ::1 -s 8009 >/dev/null 2>&1
241270

242-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ --version" "\0033"
271+
log "Invoking @STACD_CTLNAME@ --version"
243272
sudo coverage run --rcfile=.coveragerc @STACD_CTLNAME@ --version
244-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ with a bad command" "\0033"
273+
log "Invoking @STACD_CTLNAME@ with a bad command"
245274
sudo coverage run --rcfile=.coveragerc @STACD_CTLNAME@ blah
246-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ troff" "\0033"
275+
log "Invoking @STACD_CTLNAME@ troff"
247276
sudo coverage run --rcfile=.coveragerc @STACD_CTLNAME@ troff
248-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ status" "\0033"
277+
log "Invoking @STACD_CTLNAME@ status"
249278
coverage run --rcfile=.coveragerc @STACD_CTLNAME@ status >/dev/null 2>&1
250-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ tron" "\0033"
279+
log "Invoking @STACD_CTLNAME@ tron"
251280
sudo coverage run --rcfile=.coveragerc @STACD_CTLNAME@ tron
252-
printf "%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ ls" "\0033"
281+
log "Invoking @STACD_CTLNAME@ ls"
253282
coverage run --rcfile=.coveragerc @STACD_CTLNAME@ ls -d >/dev/null 2>&1
254283

255284
################################################################################
256285
# Stimulate AENs activity by removing/restoring namespaces
257-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Remove namespace: klingons" "\0033"
286+
log "Remove namespace: klingons"
258287
sudo ../utils/nvmet/nvmet.py unlink -p 1 -s klingons
259288
sleep 2
260-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ ls" "\0033"
289+
log "Invoking @STACD_CTLNAME@ ls"
261290
coverage run --rcfile=.coveragerc @STACD_CTLNAME@ ls -d >/dev/null 2>&1
262291

263-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Restore namespace: klingons" "\0033"
292+
log "Restore namespace: klingons"
264293
sudo ../utils/nvmet/nvmet.py link -p 1 -s klingons
265294
sleep 2
266-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Invoking @STACD_CTLNAME@ ls" "\0033"
295+
log "Invoking @STACD_CTLNAME@ ls"
267296
coverage run --rcfile=.coveragerc @STACD_CTLNAME@ ls -d >/dev/null 2>&1
268297

269298
################################################################################
270299
# Stop Avahi Publisher
271-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Stop Avahi publisher" "\0033"
300+
log "Stop Avahi publisher"
272301
sudo systemctl stop ${AVAHI_PUBLISHER}
273302
sleep 1
274303

275304
################################################################################
276-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Restart Avahi publisher" "\0033"
305+
log "Restart Avahi publisher"
277306
sudo systemd-run --unit=${AVAHI_PUBLISHER} --working-directory=. avahi-publish -s SFSS _nvme-disc._tcp 8009 "p=tcp"
278307
sleep 2
279308

280309
################################################################################
281310
# Make config changes for @STAFD_PROCNAME@
282-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Empty configuration and disable zeroconf for @STAFD_PROCNAME@" "\0033"
311+
log "Empty configuration and disable zeroconf for @STAFD_PROCNAME@"
283312
cat > "${stafd_conf_fname}" <<'EOF'
284313
[Global]
285314
tron=true
@@ -293,7 +322,7 @@ sleep 1
293322

294323
################################################################################
295324
# Make more config changes for @STAFD_PROCNAME@
296-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Add single controller (::1) and re-enable zeroconf for @STAFD_PROCNAME@" "\0033"
325+
log "Add single controller (::1) and re-enable zeroconf for @STAFD_PROCNAME@"
297326
cat > "${stafd_conf_fname}" <<'EOF'
298327
[Global]
299328
tron=true
@@ -307,24 +336,23 @@ sleep 2
307336

308337
################################################################################
309338
# Stop Avahi Publisher
310-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Stop Avahi publisher" "\0033"
339+
log "Stop Avahi publisher"
311340
sudo systemctl stop ${AVAHI_PUBLISHER}
312341
sleep 2
313342

314343
################################################################################
315344
# Remove one of the NVMe device's
316-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Remove (disconnect) nvme1" "\0033"
345+
log "Remove (disconnect) nvme1"
317346
sudo nvme disconnect -d nvme1
318347
sleep 2
319348

320349

321350
################################################################################
322-
printf "%b[1;36m%s%b[0m\n" "\0033" "Restart @STAFD_PROCNAME@ and @STACD_PROCNAME@" "\0033"
323351
sd_restart "@STAFD_PROCNAME@"
324352
sd_restart "@STACD_PROCNAME@"
325353
sleep 1
326354

327-
printf "%b[1;36m%s%b[0m\n" "\0033" "Create invalid conditions for saving/loading @STAFD_PROCNAME@'s last known config" "\0033"
355+
log "Create invalid conditions for saving/loading @STAFD_PROCNAME@'s last known config"
328356
rm -rf "/tmp/@STAFD_PROCNAME@"
329357
sd_stop "@STAFD_PROCNAME@"
330358
sd_restart "@STACD_PROCNAME@"
@@ -334,7 +362,7 @@ sleep 2
334362

335363
################################################################################
336364
# Stop everything and collect coverage stats
337-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Stop @STAFD_PROCNAME@ and @STACD_PROCNAME@" "\0033"
365+
log "Stop @STAFD_PROCNAME@ and @STACD_PROCNAME@"
338366
sd_stop "@STAFD_PROCNAME@"
339367
sd_stop "@STACD_PROCNAME@"
340368
sleep 1
@@ -345,33 +373,49 @@ sudo chown -R "${PRIMARY_USR}":"${PRIMARY_GRP}" coverage >/dev/null 2>&1
345373
sudo chown -R "${PRIMARY_USR}":"${PRIMARY_GRP}" staslib/__pycache__ >/dev/null 2>&1
346374
sudo chown -R "${PRIMARY_USR}":"${PRIMARY_GRP}" subprojects/libnvme/libnvme/__pycache__ >/dev/null 2>&1
347375

376+
log "nvme disconnect-all"
348377
sudo nvme disconnect-all
349378

379+
log "Remove ${stafd_conf_fname} and ${stacd_conf_fname}"
350380
rm "${stafd_conf_fname}"
351381
rm "${stacd_conf_fname}"
352382

383+
log "Run unit test: test-udev"
353384
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-udev.py
385+
log "Run unit test: test-avahi"
354386
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-avahi.py
387+
log "Run unit test: test-gtimer"
355388
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-gtimer.py
389+
log "Run unit test: test-version"
356390
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-version.py
391+
log "Run unit test: test-transport_id"
357392
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-transport_id.py
393+
log "Run unit test: test-config"
358394
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-config.py
395+
log "Run unit test: test-controller"
359396
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-controller.py
397+
log "Run unit test: test-service"
360398
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-service.py
399+
log "Run unit test: test-log"
361400
PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-log.py
401+
log "Run unit test: test-nvme_options"
362402
sudo PYTHONPATH=${PYTHON_PATH} coverage run --rcfile=.coveragerc ../test/test-nvme_options.py
363403

364404
################################################################################
365405
# Stop nvme target simulator
366-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Stop nvmet" "\0033"
406+
log "Stop nvmet"
367407
sudo ../utils/nvmet/nvmet.py clean
368408

369-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Collect all coverage data" "\0033"
409+
log "Collect all coverage data"
370410
coverage combine --rcfile=.coveragerc
371411

372-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Generating coverage report" "\0033"
412+
log "Generating coverage report"
373413
coverage report -i --rcfile=.coveragerc
374414

375-
printf "\n%b[1;36m%s%b[0m\n" "\0033" "Generating coverage report (HTML)" "\0033"
415+
log "Generating coverage report (HTML)"
376416
coverage html -i --rcfile=.coveragerc
377417

418+
419+
log "All done!!!"
420+
421+
log "FINISHED-FINISHED-FINISHED-FINISHED-FINISHED-FINISHED-FINISHED-FINISHED"

0 commit comments

Comments
 (0)