Skip to content

Commit

Permalink
Adding tests to ensure geoip emits UTF-8 encoded fields.
Browse files Browse the repository at this point in the history
  • Loading branch information
nickethier committed Feb 12, 2014
1 parent d4bca8a commit d8a432d
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ COLLECTD_VERSION=5.4.0
TYPESDB_URL=https://collectd.org/files/collectd-$(COLLECTD_VERSION).tar.gz
GEOIP=vendor/geoip/GeoLiteCity.dat
GEOIP_URL=http://logstash.objects.dreamhost.com/maxmind/GeoLiteCity-2013-01-18.dat.gz
GEOIP_ASN=vendor/geoip/GeoIPASNum.dat
GEOIP_ASN_URL=http://logstash.objects.dreamhost.com/maxmind/GeoIPASNum-2014-02-12.dat.gz
KIBANA_URL=https://download.elasticsearch.org/kibana/kibana/kibana-3.0.0milestone5.tar.gz
PLUGIN_FILES=$(shell git ls-files | egrep '^lib/logstash/(inputs|outputs|filters|codecs)/[^/]+$$' | egrep -v '/(base|threadable).rb$$|/inputs/ganglia/')
QUIET=@
Expand Down Expand Up @@ -165,6 +167,13 @@ $(GEOIP): | vendor/geoip
$(QUIET)rm "$@.tmp.gz"
$(QUIET)mv $@.tmp $@

$(GEOIP_ASN): | vendor/geoip
$(QUIET)$(DOWNLOAD_COMMAND) $@.tmp.gz $(GEOIP_ASN_URL)
$(QUIET)gzip -dc $@.tmp.gz > $@.tmp
$(QUIET)rm "$@.tmp.gz"
$(QUIET)mv $@.tmp $@

vendor/collectd: | vendor
vendor/collectd: | vendor
$(QUIET)mkdir $@

Expand Down
50 changes: 50 additions & 0 deletions spec/filters/geoip.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,54 @@
reject { subject }.include?("src_ip")
end
end

describe "correct encodings with default db" do
config <<-CONFIG
filter {
geoip {
source => "ip"
}
}
CONFIG
expected_fields = %w(ip country_code2 country_code3 country_name
continent_code region_name city_name postal_code
dma_code area_code timezone)

sample("ip" => "1.1.1.1") do
expected_fields.each do |f|
insist { subject["geoip"][f].encoding } == Encoding::UTF_8
end
end
sample("ip" => "189.2.0.0") do
expected_fields.each do |f|
insist { subject["geoip"][f].encoding } == Encoding::UTF_8
end
end

end

describe "correct encodings with ASN db" do
config <<-CONFIG
filter {
geoip {
source => "ip"
database => "vendor/geoip/GeoIPASNum.dat"
}
}
CONFIG


sample("ip" => "1.1.1.1") do
insist { subject["geoip"]["asn"].encoding } == Encoding::UTF_8
end
sample("ip" => "187.2.0.0") do
insist { subject["geoip"]["asn"].encoding } == Encoding::UTF_8
end
sample("ip" => "189.2.0.0") do
insist { subject["geoip"]["asn"].encoding } == Encoding::UTF_8
end
sample("ip" => "161.24.0.0") do
insist { subject["geoip"]["asn"].encoding } == Encoding::UTF_8
end
end
end

0 comments on commit d8a432d

Please sign in to comment.