Sha256: a18a2be9b7a9f60e65e042cda0021fddcdc089df35b6211bfff11452e75f644c

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

test_name "C64315: external facts that print messages to stderr should be seen on stderr" do
  tag 'risk:high'

  require 'facter/acceptance/user_fact_utils'
  extend Facter::Acceptance::UserFactUtils

  agents.each do |agent|
    factsd = get_factsd_dir(agent['platform'], on(agent, facter('kernelmajversion')).stdout.chomp.to_f)
    ext = get_external_fact_script_extension(agent['platform'])
    ext_fact = File.join(factsd, "external_fact#{ext}")

    if agent['platform'] =~ /windows/
      content = <<EOM
echo "SCRIPT STDERR" >&2
echo "test=value"
EOM
    else
      content = <<EOM
#!/bin/sh
echo "SCRIPT STDERR" >&2
echo "test=value"
EOM
    end

    teardown do
      on(agent, "rm -f '#{ext_fact}'")
    end

    step "Agent #{agent}: create facts.d directory and fact" do
      on(agent, "mkdir -p '#{factsd}'")
      create_remote_file(agent, ext_fact, content)
      on(agent, "chmod +x '#{ext_fact}'")
    end

    step "Agent #{agent}: external fact stderr messages should appear on stderr from facter" do
      on(agent, facter) do |facter_output|
        assert_match(/WARN.*SCRIPT STDERR/, facter_output.stderr,
                     "Expected facter to output a warning message with the stderr string from the external fact")
      end
    end

    step "Agent #{agent}: external fact stderr messages should appear on stderr from puppet facts" do
      on(agent, puppet("facts")) do |puppet_output|
        assert_match(/Warning.*SCRIPT STDERR/, puppet_output.stderr,
                     "Expected puppet facts to output a warning message with the stderr string from the external fact")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
facter-4.0.29 acceptance/tests/external_facts/external_fact_stderr_messages_output_to_stderr.rb
facter-4.0.28 acceptance/tests/external_facts/external_fact_stderr_messages_output_to_stderr.rb