PageRenderTime 49ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/spec/unit/util/network_device/ipcalc_spec.rb

https://github.com/lutter/puppet
Ruby | 62 lines | 48 code | 13 blank | 1 comment | 0 complexity | 3fa03f8641c854364599cfa71074f5d1 MD5 | raw file
Possible License(s): Apache-2.0, CC-BY-3.0
  1. #! /usr/bin/env ruby
  2. require 'spec_helper'
  3. require 'puppet/util/network_device/ipcalc'
  4. describe Puppet::Util::NetworkDevice::IPCalc do
  5. class TestIPCalc
  6. include Puppet::Util::NetworkDevice::IPCalc
  7. end
  8. before(:each) do
  9. @ipcalc = TestIPCalc.new
  10. end
  11. describe "when parsing ip/prefix" do
  12. it "should parse ipv4 without prefixes" do
  13. expect(@ipcalc.parse('127.0.0.1')).to eq([32,IPAddr.new('127.0.0.1')])
  14. end
  15. it "should parse ipv4 with prefixes" do
  16. expect(@ipcalc.parse('127.0.1.2/8')).to eq([8,IPAddr.new('127.0.1.2')])
  17. end
  18. it "should parse ipv6 without prefixes" do
  19. expect(@ipcalc.parse('FE80::21A:2FFF:FE30:ECF0')).to eq([128,IPAddr.new('FE80::21A:2FFF:FE30:ECF0')])
  20. end
  21. it "should parse ipv6 with prefixes" do
  22. expect(@ipcalc.parse('FE80::21A:2FFF:FE30:ECF0/56')).to eq([56,IPAddr.new('FE80::21A:2FFF:FE30:ECF0')])
  23. end
  24. end
  25. describe "when building netmask" do
  26. it "should produce the correct ipv4 netmask from prefix length" do
  27. expect(@ipcalc.netmask(Socket::AF_INET, 27)).to eq(IPAddr.new('255.255.255.224'))
  28. end
  29. it "should produce the correct ipv6 netmask from prefix length" do
  30. expect(@ipcalc.netmask(Socket::AF_INET6, 56)).to eq(IPAddr.new('ffff:ffff:ffff:ff00::0'))
  31. end
  32. end
  33. describe "when building wildmask" do
  34. it "should produce the correct ipv4 wildmask from prefix length" do
  35. expect(@ipcalc.wildmask(Socket::AF_INET, 27)).to eq(IPAddr.new('0.0.0.31'))
  36. end
  37. it "should produce the correct ipv6 wildmask from prefix length" do
  38. expect(@ipcalc.wildmask(Socket::AF_INET6, 126)).to eq(IPAddr.new('::3'))
  39. end
  40. end
  41. describe "when computing prefix length from netmask" do
  42. it "should produce the correct ipv4 prefix length" do
  43. expect(@ipcalc.prefix_length(IPAddr.new('255.255.255.224'))).to eq(27)
  44. end
  45. it "should produce the correct ipv6 prefix length" do
  46. expect(@ipcalc.prefix_length(IPAddr.new('fffe::0'))).to eq(15)
  47. end
  48. end
  49. end