| #!/usr/bin/env ruby |
| # |
| # This script allows you to compare the tests in the current directory |
| # (Ruby) against the tests of other languages to see which ones are missing |
| # |
| # |
| # |
| # |
| # |
| |
| |
| ignore = ['ruby','std','typemaps'] |
| |
| curr = Dir.pwd.sub(/.*\//, '') |
| |
| langs = Dir.glob('../*').select { |x| File.directory?("../#{x}") } |
| langs.map! { |x| x.sub(/^\.\.\/*/, '') } |
| langs -= ignore |
| |
| # Add generic test directory, too |
| langs << '' |
| |
| testsB = Dir.glob("*runme*").map { |x| x.sub(/\.\w+$/, '') } |
| |
| |
| all_tests = [] |
| |
| langs.each do |lang| |
| testsA = Dir.glob("../#{lang}/*runme*") |
| testsA.map! { |x| x.sub(/.*\/(\w+)\.\w+$/, '\1') } |
| testsA.delete_if { |x| x =~ /~$/ } # ignore emacs backups |
| |
| diff = testsA - testsB |
| |
| unless diff.empty? |
| puts '-'*70 |
| title = !lang.empty? ? "#{lang[0,1].upcase}#{lang[1..-1]}" : 'Generic' |
| title = "Missing #{title} tests" |
| puts title |
| puts '='*title.size |
| puts diff.join(', ') |
| all_tests += diff |
| end |
| |
| end |
| |
| |
| all_tests.uniq! |
| |
| puts '-'*70 |
| puts 'All missing tests' |
| puts '=================' |
| puts all_tests.join(', ') |