Skip to content

Commit 3af7506

Browse files
Merge pull request #485 from martin-belanger/more-coverage
tests: add more coverage
2 parents 264f641 + 353f70f commit 3af7506

4 files changed

Lines changed: 55 additions & 12 deletions

File tree

coverage.sh.in

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,10 @@ printf "\n"
312312

313313
run_cmd_coverage stafctl ls
314314
run_cmd_coverage stafctl invalid-command
315+
run_cmd_coverage stafctl
315316
run_cmd_coverage stacctl ls
316317
run_cmd_coverage stacctl invalid-command
318+
run_cmd_coverage stacctl
317319

318320
#*******************************************************************************
319321
# Start nvme target simulator
@@ -592,20 +594,41 @@ file=/tmp/getdev-XXX.py
592594
getdev=$(mktemp $file)
593595
cat > "${getdev}" <<'EOF'
594596
import sys
595-
from dasbus.connection import SystemMessageBus
597+
import dasbus
598+
import dasbus.connection
596599
597-
bus = SystemMessageBus()
600+
bus = dasbus.connection.SystemMessageBus()
598601
iface = bus.get_proxy(sys.argv[1], sys.argv[2])
599-
controllers = iface.list_controllers(False)
600-
if len(controllers) > 0:
601-
controller = controllers[0]
602-
print(controller['device'])
603-
sys.exit(0)
602+
try:
603+
controllers = iface.list_controllers(False)
604+
except dasbus.error.DBusError:
605+
controllers = []
606+
607+
for controller in controllers:
608+
device = controller['device']
609+
if device != 'nvme?':
610+
print(device)
611+
sys.exit(0)
612+
613+
print("")
604614
sys.exit(1)
605615
EOF
606616

617+
get_device() {
618+
local bus=$1
619+
local path=$2
620+
dev=$(python3 ${getdev} ${bus} ${path})
621+
if [[ -z "${dev}" ]]; then
622+
# failed - try one more time after a short delay
623+
sleep 1
624+
dev=$(python3 ${getdev} ${bus} ${path})
625+
fi
626+
echo ${dev}
627+
}
628+
607629
# Find a Discovery Controller and issue a "nvme disconnect"
608-
if dev=$(python3 ${getdev} @STAFD_DBUS_NAME@ @STAFD_DBUS_PATH@); then
630+
dev=$(get_device @STAFD_DBUS_NAME@ @STAFD_DBUS_PATH@)
631+
if [[ -n "${dev}" ]]; then
609632
log "Remove connection (disconnect) to Discovery Controller ${dev}"
610633
run_cmd sudo nvme disconnect -d ${dev}
611634
printf "\n"
@@ -616,7 +639,8 @@ else
616639
fi
617640

618641
# Find an I/O Controller and issue a "nvme disconnect"
619-
if dev=$(python3 ${getdev} @STACD_DBUS_NAME@ @STACD_DBUS_PATH@); then
642+
dev=$(get_device @STACD_DBUS_NAME@ @STACD_DBUS_PATH@)
643+
if [[ -n "${dev}" ]]; then
620644
log "Remove connection (disconnect) to I/O Controller ${dev}"
621645
run_cmd sudo nvme disconnect -d ${dev}
622646
printf "\n"
@@ -700,7 +724,7 @@ run_unit_test ${TEST_DIR}/test-nbft.py
700724
run_unit_test sudo ${TEST_DIR}/test-nvme_options.py # Test both with super user...
701725
run_unit_test ${TEST_DIR}/test-nvme_options.py # ... and with regular user
702726
run_unit_test ${TEST_DIR}/test-service.py
703-
run_unit_test ${TEST_DIR}/test-stasadm.py
727+
#run_unit_test ${TEST_DIR}/test-stasadm.py
704728
run_unit_test ${TEST_DIR}/test-stas.py
705729
run_unit_test ${TEST_DIR}/test-timeparse.py
706730
run_unit_test ${TEST_DIR}/test-transport_id.py

test/test-iputil.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,28 @@ def test_remove_invalid_addresses(self):
9999
self.assertNotIn(bad_tcp, l2)
100100
self.assertNotIn(bad_trtype, l2)
101101

102-
def test__data_matches_ip(self):
103-
self.assertFalse(iputil.ip_equal(None, None))
102+
def test_ip_equal(self):
103+
self.assertFalse(iputil.ip_equal(None, ipaddress.IPv4Address('1.1.1.1')))
104+
self.assertFalse(iputil.ip_equal(ipaddress.IPv4Address('1.1.1.1'), None))
105+
self.assertTrue(iputil.ip_equal(ipaddress.IPv4Address('1.1.1.1'), ipaddress.IPv4Address('1.1.1.1')))
106+
self.assertTrue(iputil.ip_equal(ipaddress.IPv4Address('1.2.3.4'), ipaddress.IPv6Address('::ffff:102:304')))
104107

108+
def test_get_ipaddress_obj(self):
109+
# Invalid/empty input → None regardless of flag
110+
self.assertIsNone(iputil.get_ipaddress_obj('', ipv4_mapped_convert=True))
111+
self.assertIsNone(iputil.get_ipaddress_obj('not-an-ip', ipv4_mapped_convert=True))
112+
113+
# Regular IPv4 address: no ipv4_mapped attribute, returned as-is
114+
self.assertEqual(ipaddress.IPv4Address('1.2.3.4'), iputil.get_ipaddress_obj('1.2.3.4', ipv4_mapped_convert=True))
115+
116+
# Regular IPv6 address (not IPv4-mapped): no conversion, returned as-is
117+
self.assertEqual(ipaddress.IPv6Address('::1'), iputil.get_ipaddress_obj('::1', ipv4_mapped_convert=True))
118+
119+
# IPv4-mapped IPv6 address with convert=True → returns the IPv4 equivalent
120+
self.assertEqual(ipaddress.IPv4Address('1.2.3.4'), iputil.get_ipaddress_obj('::ffff:1.2.3.4', ipv4_mapped_convert=True))
121+
122+
# IPv4-mapped IPv6 address with convert=False → stays as IPv6
123+
self.assertEqual(ipaddress.IPv6Address('::ffff:102:304'), iputil.get_ipaddress_obj('::ffff:1.2.3.4', ipv4_mapped_convert=False))
105124

106125
if __name__ == "__main__":
107126
unittest.main()

test/test-stas.py

100644100755
File mode changed.

test/test-stasadm.py

100644100755
File mode changed.

0 commit comments

Comments
 (0)