Sha256: 9ca3b4684970ff3933db2c6c2e06633a186318ab4a82e2f993d80b6a53221774

Contents?: true

Size: 1.28 KB

Versions: 13

Compression:

Stored size: 1.28 KB

Contents

#
# parser benchmark
#

require 'tmail'


if ARGV.empty? then
  $stderr.puts "usage: #{$0} <mhdir> <mhdir>..."
  exit 0
end
ARGV.each do |dname|
  unless File.directory? dname then
    $stderr.puts "not directory: #{dname}"
    exit 1
  end
end

$stdout.sync = true

$count   = 0
$failnum = 0
$dirfail = 0
$fieldname = ''
$dirname   = ''
$port  = nil

begin
  ARGV.each do |dirname|
    $dirname = dirname

    TMail::MhLoader.new( dirname ).each do |port|
      begin
        t = TMail::Mail.new( port )
        $port = port

        t.each_header do |key, field|
          $fieldname = key
          next if /received/i === key
          if ::TMail::StructH === field then
            field.instance_eval { parse unless @parsed }
          end
        end
      rescue TMail::SyntaxError
        $stderr.puts "fail in #{$count+1}, field #{$fieldname}"
        $stderr.puts $!.to_s
        $failnum += 1
        $dirfail += 1

        if $failnum % 10 == 0 then
          puts 'fail = ' + $failnum.to_s
          #raise
        end
      end

      $count += 1
      puts "end #{$count}" if $count % 50 == 0
    end

    puts "directory #{dirname} end, fail=#{$dirfail}"
    $dirfail = 0
  end
rescue
  puts "at #{$port.inspect}, non ParseError raised"
  raise
end

puts "parse #{$count} files, fail=#{$failnum}"

Version data entries

13 entries across 13 versions & 7 rubygems

Version Path
japetheape-tmail-1.2.3.4 sample/parse-bench.rb
ledermann-tmail-1.2.5 sample/parse-bench.rb
lonbaker-tmail-1.2.3.1 sample/parse-bench.rb
valodzka-tmail-1.2.3.2 sample/parse-bench.rb
valodzka-tmail-1.2.3.3 sample/parse-bench.rb
valodzka-valodzka-tmail-1.2.3.2 sample/parse-bench.rb
sa-tmail-1.2.5.1 sample/parse-bench.rb
tmail-1.2.3.1 sample/parse-bench.rb
tmail-1.1.1 sample/parse-bench.rb
tmail-1.2.0 sample/parse-bench.rb
tmail-1.2.2 sample/parse-bench.rb
tmail-1.2.3 sample/parse-bench.rb
tmail-1.2.1 sample/parse-bench.rb