require File.dirname(__FILE__) + '/helper' require 'fluent/config' require 'fluent/supervisor' require 'fluent/load' require 'fileutils' class ConfigTest < Test::Unit::TestCase include Fluent TMP_DIR = File.dirname(__FILE__) + "/tmp/config#{ENV['TEST_ENV_NUMBER']}" def prepare_config write_config "#{TMP_DIR}/config_test_1.conf", %[ k1 root_config include dir/config_test_2.conf # include #{TMP_DIR}/config_test_4.conf include file://#{TMP_DIR}/config_test_5.conf include config.d/*.conf ] write_config "#{TMP_DIR}/dir/config_test_2.conf", %[ k2 relative_path_include include ../config_test_3.conf ] write_config "#{TMP_DIR}/config_test_3.conf", %[ k3 relative_include_in_included_file ] write_config "#{TMP_DIR}/config_test_4.conf", %[ k4 absolute_path_include ] write_config "#{TMP_DIR}/config_test_5.conf", %[ k5 uri_include ] write_config "#{TMP_DIR}/config.d/config_test_6.conf", %[ k6 wildcard_include_1 include normal_parameter ] write_config "#{TMP_DIR}/config.d/config_test_7.conf", %[ k7 wildcard_include_2 ] end def test_include prepare_config c = Config.read("#{TMP_DIR}/config_test_1.conf") assert_equal 'root_config', c['k1'] assert_equal 'relative_path_include', c['k2'] assert_equal 'relative_include_in_included_file', c['k3'] assert_equal 'absolute_path_include', c['k4'] assert_equal 'uri_include', c['k5'] assert_equal 'wildcard_include_1', c['k6'] assert_equal 'wildcard_include_2', c['k7'] assert_equal 'elem', c.elements.first.name assert_equal 'name', c.elements.first.arg assert_equal 'normal_parameter', c.elements.first['include'] end def write_config(path, data) FileUtils.mkdir_p(File.dirname(path)) File.open(path, "w") {|f| f.write data } end def test_inline prepare_config opts = { :config_path => "#{TMP_DIR}/config_test_1.conf", :inline_config => "\n type http\n port 2222\n " } assert_nothing_raised do Fluent::Supervisor.new(opts) end end end