@@ -25,7 +25,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys nqn.2014-08.org.nvmexpress.discovery
+ _nvme_connect_subsys --subsysnqn "nqn.2014-08.org.nvmexpress.discovery"
# This is ugly but checking for the absence of error messages is ...
sleep 10
@@ -38,7 +38,7 @@ test() {
echo "Fail"
fi
- _nvme_disconnect_subsys nqn.2014-08.org.nvmexpress.discovery
+ _nvme_disconnect_subsys --subsysnqn "nqn.2014-08.org.nvmexpress.discovery"
_nvmet_target_cleanup
@@ -24,13 +24,13 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
local nvmedev
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- _nvme_disconnect_subsys ${def_subsysnqn}
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -25,7 +25,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
@@ -24,12 +24,12 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -23,12 +23,12 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -32,7 +32,7 @@ test() {
_run_fio_verify_io --size="${nvme_img_size}" \
--filename="/dev/${nvmedev}n1"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -32,7 +32,7 @@ test() {
_run_fio_verify_io --size="${nvme_img_size}" \
--filename="/dev/${nvmedev}n1"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -28,7 +28,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -37,7 +37,7 @@ test() {
echo "FAIL: fio verify failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -27,7 +27,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -36,7 +36,7 @@ test() {
echo "FAIL: fio verify failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -27,7 +27,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -41,7 +41,7 @@ test() {
nvme flush "/dev/${nvmedev}" --namespace-id 1
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -27,7 +27,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -41,7 +41,7 @@ test() {
nvme flush "/dev/${nvmedev}n1" --namespace-id 1
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -25,7 +25,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -39,7 +39,7 @@ test() {
--block-count 0 --data-size "$bs" &>"$FULL" \
&& echo "ERROR: nvme read for out of range LBA was not rejected"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -26,7 +26,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -34,7 +34,7 @@ test() {
nvme dsm "/dev/${nvmedev}" --namespace-id 1 --ad \
--slbs "${sblk_range}" --blocks "${nblk_range}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -25,7 +25,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
nvme dsm "/dev/${nvmedev}" --namespace-id 1 --ad \
--slbs "${sblk_range}" --blocks "${nblk_range}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
echo "ERROR: device not listed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
echo "ERROR: reset failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -34,7 +34,7 @@ test() {
echo "ERROR: smart-log bdev-ns failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
>> "$FULL" 2>&1; then
echo "ERROR: smart-log file-ns failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
echo "ERROR: effects-log failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -34,7 +34,7 @@ test() {
echo "ERROR: ns-desc failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
echo "ERROR: ns-rescan failed"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -24,7 +24,7 @@ test() {
_nvmet_target_setup --blkdev file
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -33,7 +33,7 @@ test() {
echo "ERROR: list-subsys"
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -58,7 +58,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
@@ -84,7 +84,7 @@ test() {
echo 0 > /proc/sys/vm/nr_hugepages
fi
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -43,8 +43,8 @@ test() {
_nvmet_target_setup --subsysnqn "${subsys}$i" \
--blkdev "${loop_dev}"
- _nvme_connect_subsys "${subsys}$i"
- _nvme_disconnect_subsys "${subsys}$i" >> "${FULL}" 2>&1
+ _nvme_connect_subsys --subsysnqn "${subsys}$i"
+ _nvme_disconnect_subsys --subsysnqn "${subsys}$i" >> "${FULL}" 2>&1
_nvmet_target_cleanup --subsysnqn "${subsys}$i" \
--blkdev "${loop_dev}"
@@ -26,7 +26,7 @@ test() {
_nvmet_target_setup
- _nvme_connect_subsys "${def_subsysnqn}"
+ _nvme_connect_subsys
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
# start fio job
@@ -38,20 +38,18 @@ test() {
# Test unauthenticated connection (should fail)
echo "Test unauthenticated connection (should fail)"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
# Test authenticated connection
echo "Test authenticated connection"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -41,12 +41,11 @@ test() {
fi
_set_nvmet_hostkey "${def_hostnqn}" "${hostkey}"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
done
for key_len in 32 48 64; do
@@ -58,12 +57,11 @@ test() {
fi
_set_nvmet_hostkey "${def_hostnqn}" "${hostkey}"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
done
_nvmet_target_cleanup
@@ -45,12 +45,11 @@ test() {
_set_nvmet_hash "${def_hostnqn}" "${hash}"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
done
for dhgroup in "ffdhe2048" "ffdhe3072" "ffdhe4096" "ffdhe6144" "ffdhe8192" ; do
@@ -59,12 +58,11 @@ test() {
_set_nvmet_dhgroup "${def_hostnqn}" "${dhgroup}"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
done
_nvmet_target_cleanup
@@ -49,46 +49,42 @@ test() {
# Step 1: Connect with host authentication only
echo "Test host authentication"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
# Step 2: Connect with host authentication
# and invalid ctrl authentication
echo "Test invalid ctrl authentication (should fail)"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}" \
--dhchap-ctrl-secret "${hostkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
# Step 3: Connect with host authentication
# and valid ctrl authentication
echo "Test valid ctrl authentication"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}" \
--dhchap-ctrl-secret "${ctrlkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
# Step 4: Connect with host authentication
# and invalid ctrl key
echo "Test invalid ctrl key (should fail)"
invkey="DHHC-1:00:Jc/My1o0qtLCWRp+sHhAVafdfaS7YQOMYhk9zSmlatobqB8C:"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}" \
--dhchap-ctrl-secret "${invkey}"
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
@@ -51,8 +51,7 @@ test() {
_set_nvmet_dhgroup "${def_hostnqn}" "ffdhe2048"
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
--hostid "${def_hostid}" \
--dhchap-secret "${hostkey}" \
--dhchap-ctrl-secret "${ctrlkey}"
@@ -108,8 +107,7 @@ test() {
rand_io_size="$(_nvme_calc_rand_io_size 4m)"
_run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${nvmedev}n1"
- _nvme_disconnect_subsys "${def_subsysnqn}"
-
+ _nvme_disconnect_subsys
_nvmet_target_cleanup
echo "Test complete"
@@ -35,15 +35,15 @@ test() {
rand_io_size="$(_nvme_calc_rand_io_size 4M)"
_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
- _nvme_connect_subsys "${def_subsysnqn}" \
+ _nvme_connect_subsys \
--nr-write-queues 1 \
--nr-poll-queues 1 || echo FAIL
_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
- _nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
+ _nvme_disconnect_subsys >> "$FULL" 2>&1
_nvmet_target_cleanup
@@ -99,11 +99,10 @@ test() {
_nvmet_target_setup --blkdev file
if [[ -f "${cfs_path}/attr_qid_max" ]] ; then
- _nvme_connect_subsys "${def_subsysnqn}" \
- --hostnqn "${def_hostnqn}" \
- --hostid "${def_hostid}" \
- --keep-alive-tmo 1 \
- --reconnect-delay 2
+ _nvme_connect_subsys --hostnqn "${def_hostnqn}" \
+ --hostid "${def_hostid}" \
+ --keep-alive-tmo 1 \
+ --reconnect-delay 2
if ! nvmf_wait_for_state "${def_subsysnqn}" "live" ; then
echo FAIL
@@ -112,7 +111,7 @@ test() {
set_qid_max "${def_subsysnqn}" 2 || echo FAIL
fi
- _nvme_disconnect_subsys "${def_subsysnqn}"
+ _nvme_disconnect_subsys
else
SKIP_REASONS+=("missing attr_qid_max feature")
skipped=true
@@ -400,15 +400,27 @@ _nvme_disconnect_ctrl() {
}
_nvme_disconnect_subsys() {
- local subsysnqn="$1"
+ local subsysnqn="$def_subsysnqn"
+
+ while [[ $# -gt 0 ]]; do
+ case $1 in
+ --subsysnqn)
+ subsysnqn="$2"
+ shift 2
+ ;;
+ *)
+ echo "WARNING: unknown argument: $1"
+ shift
+ ;;
+ esac
+ done
nvme disconnect --nqn "${subsysnqn}" |& tee -a "$FULL" |
grep -o "disconnected.*"
}
_nvme_connect_subsys() {
- local positional_args=()
- local subsysnqn=""
+ local subsysnqn="$def_subsysnqn"
local hostnqn="$def_hostnqn"
local hostid="$def_hostid"
local hostkey=""
@@ -424,6 +436,10 @@ _nvme_connect_subsys() {
while [[ $# -gt 0 ]]; do
case $1 in
+ --subsysnqn)
+ subsysnqn="$2"
+ shift 2
+ ;;
--hostnqn)
hostnqn="$2"
shift 2
@@ -469,16 +485,12 @@ _nvme_connect_subsys() {
shift 1
;;
*)
- positional_args+=("$1")
+ echo "WARNING: unknown argument: $1"
shift
;;
esac
done
- set -- "${positional_args[@]}"
-
- subsysnqn="$1"
-
ARGS=(--transport "${nvme_trtype}" --nqn "${subsysnqn}")
if [[ "${nvme_trtype}" == "fc" ]] ; then
ARGS+=(--traddr "${def_traddr}" --host-traddr "${def_host_traddr}")
Remove the last positional argument for _nvme_connect_subsys which most test pass in the default subsysnqn anyway. There is little point in cluttering all the test textual noise. Signed-off-by: Daniel Wagner <dwagner@suse.de> --- tests/nvme/003 | 4 ++-- tests/nvme/004 | 4 ++-- tests/nvme/005 | 2 +- tests/nvme/008 | 4 ++-- tests/nvme/009 | 4 ++-- tests/nvme/010 | 4 ++-- tests/nvme/011 | 4 ++-- tests/nvme/012 | 4 ++-- tests/nvme/013 | 4 ++-- tests/nvme/014 | 4 ++-- tests/nvme/015 | 4 ++-- tests/nvme/018 | 4 ++-- tests/nvme/019 | 4 ++-- tests/nvme/020 | 4 ++-- tests/nvme/021 | 4 ++-- tests/nvme/022 | 4 ++-- tests/nvme/023 | 4 ++-- tests/nvme/024 | 4 ++-- tests/nvme/025 | 4 ++-- tests/nvme/026 | 4 ++-- tests/nvme/027 | 4 ++-- tests/nvme/028 | 4 ++-- tests/nvme/029 | 4 ++-- tests/nvme/031 | 4 ++-- tests/nvme/040 | 2 +- tests/nvme/041 | 10 ++++------ tests/nvme/042 | 10 ++++------ tests/nvme/043 | 10 ++++------ tests/nvme/044 | 20 ++++++++------------ tests/nvme/045 | 6 ++---- tests/nvme/047 | 6 +++--- tests/nvme/048 | 11 +++++------ tests/nvme/rc | 28 ++++++++++++++++++++-------- 33 files changed, 98 insertions(+), 99 deletions(-)