#!/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(', ')