#!/usr/bin/env ruby

LKP_SRC = ENV['LKP_SRC'] || File.dirname(File.dirname(File.realpath($PROGRAM_NAME)))

require "#{LKP_SRC}/lib/tests/stats"

stats = LKP::Stats.new

results = {}
leaking_number = 0

while (line = $stdin.gets)
  case line
  when /Total number of results.*: (.*)/
    total_number = $1
  when /^\[ +([\d\.]+)\](.*)/
    results['dmesg.' + $2.sub!(/\b(0x)?ffff[[:xdigit:]]{12}\b/, '').delete(' ')] = 1
    leaking_number += 1
  when /^\[\d+ ([^\d])([^\]]+)\](.*)/
    results['proc.' + $1 + $2 + '.' + $3.sub!(/\b(0x)?ffff[[:xdigit:]]{12}\b/, '').gsub(/\s+/, '')] = 1
    leaking_number += 1
  end
end

results['leaking_number'] = leaking_number
results['total_number'] = total_number.to_i

if results.empty?
  results['result.pass'] = 1
else
  results['result.fail'] = 1
end

results.each do |k, v|
  stats.add k, v
end

stats.dump
