forked from ruby-gnome/ruby-gnome
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run-test.rb
executable file
·42 lines (32 loc) · 990 Bytes
/
run-test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env ruby
# quick & dirty script for running all available tests for each module
# Author: Joachim Glauche
require "rbconfig"
require "pathname"
ruby = File.join(RbConfig::CONFIG['bindir'],
RbConfig::CONFIG['RUBY_INSTALL_NAME'] + RbConfig::CONFIG['EXEEXT'])
# for creating a separating line
def separator
"-" * 80
end
targets = []
includes = []
base_dir = Pathname(File.dirname(__FILE__))
Pathname.glob((base_dir + "*").to_s) do |dir|
next unless dir.directory?
dir = dir.expand_path
ext_dir = dir + "ext" + dir.basename
includes.concat(["-I", (dir + "lib").to_s, "-I", ext_dir.to_s])
next unless (dir + "test").directory?
targets << dir
end
targets.each do |target|
Dir.chdir(target.to_s) do
puts "#{Time.now} running test for #{target}"
puts separator
args = includes + ["test/run-test.rb"]
command = [ruby, *args]
system(command.collect {|arg| "'#{arg.gsub(/'/, '\\\'')}'"}.join(' '))
puts separator
end
end