Sha256: 06f7aa02a3552e4df7d9f010e7a2fde8f5daa08aee973d7657bd1f50a6335c20

Contents?: true

Size: 1.67 KB

Versions: 10

Compression:

Stored size: 1.67 KB

Contents

#! /usr/bin/env ruby

require 'spec_helper'
require 'shared_formats/parses'
require 'facter/util/ip'

shared_examples_for "netmask_* from ifconfig output" do |platform, interface, address, fixture|
  it "correctly on #{platform} interface #{interface}" do
    Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read(fixture))
    Facter::Util::IP.stubs(:get_output_for_interface_and_label).
      returns(my_fixture_read("#{fixture}.#{interface}"))
    Facter.collection.internal_loader.load(:interfaces)

    fact = Facter.fact("netmask_#{interface}".intern)
    fact.value.should eq(address)
  end
end

describe "Per Interface IP facts" do
  it "should replace the ':' in an interface list with '_'" do
    # So we look supported
    Facter.fact(:kernel).stubs(:value).returns("SunOS")

    Facter::Util::IP.stubs(:get_interfaces).returns %w{eth0:1 eth1:2}
    Facter.fact(:interfaces).value.should == %{eth0_1,eth1_2}
  end

  it "should replace non-alphanumerics in an interface list with '_'" do
    Facter.fact(:kernel).stubs(:value).returns("windows")

    Facter::Util::IP.stubs(:get_interfaces).returns ["Local Area Connection", "Loopback \"Pseudo-Interface\" (#1)"]
    Facter.fact(:interfaces).value.should == %{Local_Area_Connection,Loopback__Pseudo_Interface____1_}
  end
end

describe "Netmask handling on Linux" do
  before :each do
    Facter.fact(:kernel).stubs(:value).returns("Linux")
  end

  example_behavior_for "netmask_* from ifconfig output",
    "Archlinux (net-tools 1.60)", "em1",
    "255.255.255.0", "ifconfig_net_tools_1.60.txt"
  example_behavior_for "netmask_* from ifconfig output",
    "Archlinux (net-tools 1.60)", "lo",
    "255.0.0.0", "ifconfig_net_tools_1.60.txt"
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
facter-1.7.6 spec/unit/interfaces_spec.rb
facter-1.7.5 spec/unit/interfaces_spec.rb
facter-1.7.5.rc2 spec/unit/interfaces_spec.rb
facter-1.7.5.rc1 spec/unit/interfaces_spec.rb
facter-1.7.4 spec/unit/interfaces_spec.rb
facter-1.7.4.rc1 spec/unit/interfaces_spec.rb
facter-1.7.3 spec/unit/interfaces_spec.rb
facter-1.7.3.rc1 spec/unit/interfaces_spec.rb
facter-1.7.2 spec/unit/interfaces_spec.rb
facter-1.7.2.rc1 spec/unit/interfaces_spec.rb