Fix SNMPkit tests and add coverage for bang methods

Fixed 2 failing tests in HostParser that were using unreliable hostname resolution. Changed tests to use malformed IP addresses that will always fail validation consistently.

Added tests for SnmpKit.SNMP bang methods (get_bulk!, bulk_walk!) which have actual implementation logic beyond delegation.

All 954 SNMPkit tests now pass (0 failures).
This commit is contained in:
Graham McIntire 2026-02-05 16:46:36 -06:00 committed by Graham McIntire
parent 8ee39a2d36
commit 4e9a533106
No known key found for this signature in database
2 changed files with 35 additions and 4 deletions

View file

@ -322,9 +322,10 @@ defmodule SnmpKit.SnmpLib.HostParserTest do
assert HostParser.valid?("::1") == true
# "localhost" resolves to 127.0.0.1
assert HostParser.valid?("localhost") == true
# Unresolvable hostnames are invalid
assert HostParser.valid?("invalid") == false
# Invalid IP tuples are invalid
assert HostParser.valid?({256, 0, 0, 0}) == false
# Malformed IP strings with dots are invalid
assert HostParser.valid?("999.999.999.999") == false
end
test "parse_ip function" do
@ -333,8 +334,8 @@ defmodule SnmpKit.SnmpLib.HostParserTest do
assert {:ok, {192, 168, 1, 1}} = HostParser.parse_ip({192, 168, 1, 1})
# "localhost" resolves to an IP tuple
assert {:ok, {127, 0, 0, 1}} = HostParser.parse_ip("localhost")
# Unresolvable hostnames return error
assert {:error, :hostname_resolution_failed} = HostParser.parse_ip("invalid")
# Malformed IP strings return error
assert {:error, :invalid_ipv4} = HostParser.parse_ip("999.999.999.999")
end
test "parse_port function" do

View file

@ -6,5 +6,35 @@ defmodule SnmpKitTest do
# Simple test to verify module loads
test "module loads correctly" do
assert is_atom(SnmpKit)
assert is_atom(SnmpKit.SNMP)
assert is_atom(SnmpKit.MIB)
end
describe "SnmpKit.SNMP bang methods" do
test "get_bulk!/2 raises on error" do
# Bang method should raise when underlying function returns error
assert_raise RuntimeError, ~r/get_bulk! failed/, fn ->
SnmpKit.SNMP.get_bulk!("192.0.2.1", "1.3.6.1.2.1.1")
end
end
test "get_bulk!/3 raises on error with options" do
assert_raise RuntimeError, ~r/get_bulk! failed/, fn ->
SnmpKit.SNMP.get_bulk!("192.0.2.1", "1.3.6.1.2.1.1", timeout: 100)
end
end
test "bulk_walk!/2 raises on error" do
assert_raise RuntimeError, ~r/bulk_walk! failed/, fn ->
SnmpKit.SNMP.bulk_walk!("192.0.2.1", "1.3.6.1.2.1.1")
end
end
test "bulk_walk!/3 raises on error with options" do
assert_raise RuntimeError, ~r/bulk_walk! failed/, fn ->
SnmpKit.SNMP.bulk_walk!("192.0.2.1", "1.3.6.1.2.1.1", timeout: 100)
end
end
end
end