Sha256: 36135ee1ef96ddb24c66e0a5bf5e057cffb96ea2ff79aef1c45e1501910abe5c

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

test_name "C96148: verify dmi facts" do
  tag 'risk:med'

  confine :except, :platform => 'aix' # no dmi support
  confine :except, :platform => 'huawei' # no dmi support
  confine :except, :platform => 'osx' # no dmi support
  confine :except, :platform => 'sparc' # no dmi support
  confine :except, :platform => 'ppc64' # no dmi support on linux on powerpc

  require 'json'
  require 'facter/acceptance/base_fact_utils'
  extend Facter::Acceptance::BaseFactUtils

  agents.each do |agent|
    expected_facts = {
        'dmi.manufacturer' => /\w+/,
        'dmi.product.name' => /\w+/,
        'dmi.product.uuid' => /[-0-9A-Fa-f]+/,
    }
    unless agent['platform'] =~ /windows/
      expected_facts.merge!({'dmi.bios.release_date' => /\d+\/\d+\/\d+/,
                             'dmi.bios.vendor'       => /\w+/,
                             'dmi.bios.version'      => /\d+/,
                             'dmi.chassis.type'      => /\w+/,
                            })
    end
    unless agent['platform'] =~ /windows|cisco|aarch64|el-/
      expected_facts.merge!({'dmi.chassis.asset_tag' => /\w+/})
    end
    unless agent['platform'] =~ /cisco|aarch64|el-/
      expected_facts.merge!({'dmi.product.serial_number' => /\w+/})
    end
    unless agent['platform'] =~ /windows|cisco|solaris|aarch64|el-/
      expected_facts.merge!({'dmi.board.asset_tag'     => /\w+|/,
                             'dmi.board.manufacturer'  => /\w+/,
                             'dmi.board.product'       => /\w+/,
                             'dmi.board.serial_number' => /None|\w+/
                            })
    end

    step("verify that dmi structured fact contains facts") do
      on(agent, facter("--json dmi")) do |facter_results|
        json_facts = JSON.parse(facter_results.stdout)
        expected_facts.each do |fact, value|
          actual_fact = json_result_fact_by_key_path(json_facts, fact)
          assert_match(value, actual_fact.to_s, "Incorrect fact pattern for '#{fact}'")
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
facter-4.0.29 acceptance/tests/facts/dmi.rb
facter-4.0.28 acceptance/tests/facts/dmi.rb
facter-3.12.2.cfacter.20181217 ext/facter/facter/acceptance/tests/facts/dmi.rb
facter-3.12.1.cfacter.20181031 ext/facter/facter/acceptance/tests/facts/dmi.rb
facter-3.11.6.cfacter.20181031 ext/facter/facter/acceptance/tests/facts/dmi.rb
facter-3.12.1.cfacter.20181023 ext/facter/facter/acceptance/tests/facts/dmi.rb
facter-3.11.5.cfacter.20181022 ext/facter/facter/acceptance/tests/facts/dmi.rb