rcodetools 0.7.0.0 → 0.8.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +12 -0
- data/README +1 -1
- data/README.emacs +21 -4
- data/README.ja +1 -1
- data/README.xmpfilter +159 -74
- data/Rakefile +3 -37
- data/anything-rcodetools.el +142 -0
- data/bin/rct-complete +1 -1
- data/bin/rct-doc +1 -1
- data/bin/rct-meth-args +33 -2
- data/bin/xmpfilter +5 -1
- data/lib/rcodetools/compat.rb +14 -0
- data/lib/rcodetools/completion.rb +8 -6
- data/lib/rcodetools/fork.rb +15 -8
- data/lib/rcodetools/options.rb +8 -0
- data/lib/rcodetools/xmpfilter.rb +80 -33
- data/lib/rcodetools/xmptestunitfilter.rb +76 -21
- data/lib/ruby_toggle_file.rb +1 -1
- data/rcodetools.el +213 -20
- data/test/test_functional.rb +36 -68
- data/test/test_method_analyzer.rb +28 -20
- data/test/test_ruby_toggle_file.rb +118 -69
- data/test/test_xmpfilter.rb +75 -47
- data/test/test_xmptestunitfilter.rb +12 -11
- metadata +83 -133
- data/test/data/add_markers-input.rb +0 -2
- data/test/data/add_markers-output.rb +0 -2
- data/test/data/bindings-input.rb +0 -26
- data/test/data/bindings-output.rb +0 -31
- data/test/data/completion-input.rb +0 -1
- data/test/data/completion-output.rb +0 -2
- data/test/data/completion_class_info-input.rb +0 -1
- data/test/data/completion_class_info-output.rb +0 -10
- data/test/data/completion_class_info_no_candidates-input.rb +0 -1
- data/test/data/completion_class_info_no_candidates-output.rb +0 -1
- data/test/data/completion_detect_rbtest-input.rb +0 -7
- data/test/data/completion_detect_rbtest-output.rb +0 -2
- data/test/data/completion_detect_rbtest2-input.rb +0 -1
- data/test/data/completion_detect_rbtest2-output.rb +0 -2
- data/test/data/completion_emacs-input.rb +0 -1
- data/test/data/completion_emacs-output.rb +0 -6
- data/test/data/completion_emacs_icicles-input.rb +0 -1
- data/test/data/completion_emacs_icicles-output.rb +0 -6
- data/test/data/completion_in_method-input.rb +0 -3
- data/test/data/completion_in_method-output.rb +0 -1
- data/test/data/completion_in_method-test.rb +0 -6
- data/test/data/completion_rbtest-input.rb +0 -7
- data/test/data/completion_rbtest-output.rb +0 -2
- data/test/data/doc-input.rb +0 -1
- data/test/data/doc-output.rb +0 -1
- data/test/data/doc_detect_rbtest-input.rb +0 -1
- data/test/data/doc_detect_rbtest-output.rb +0 -1
- data/test/data/doc_detect_rbtest2-input.rb +0 -7
- data/test/data/doc_detect_rbtest2-output.rb +0 -1
- data/test/data/doc_rbtest-input.rb +0 -7
- data/test/data/doc_rbtest-output.rb +0 -1
- data/test/data/no_warnings-input.rb +0 -3
- data/test/data/no_warnings-output.rb +0 -4
- data/test/data/refe-input.rb +0 -1
- data/test/data/refe-output.rb +0 -1
- data/test/data/ri-input.rb +0 -1
- data/test/data/ri-output.rb +0 -1
- data/test/data/ri_emacs-input.rb +0 -1
- data/test/data/ri_emacs-output.rb +0 -1
- data/test/data/ri_vim-input.rb +0 -1
- data/test/data/ri_vim-output.rb +0 -1
- data/test/data/rspec-input.rb +0 -48
- data/test/data/rspec-output.rb +0 -52
- data/test/data/rspec_poetry-input.rb +0 -48
- data/test/data/rspec_poetry-output.rb +0 -52
- data/test/data/simple_annotation-input.rb +0 -8
- data/test/data/simple_annotation-output.rb +0 -8
- data/test/data/unit_test-input.rb +0 -50
- data/test/data/unit_test-output.rb +0 -52
- data/test/data/unit_test_detect_rbtest-input.rb +0 -50
- data/test/data/unit_test_detect_rbtest-output.rb +0 -52
- data/test/data/unit_test_detect_rbtest2-input.rb +0 -6
- data/test/data/unit_test_detect_rbtest2-output.rb +0 -6
- data/test/data/unit_test_poetry-input.rb +0 -50
- data/test/data/unit_test_poetry-output.rb +0 -52
- data/test/data/unit_test_rbtest-input.rb +0 -6
- data/test/data/unit_test_rbtest-output.rb +0 -6
- data/test/test_run.rb +0 -45
data/test/test_functional.rb
CHANGED
@@ -1,79 +1,47 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
def define_functional_tests(exec, tests)
|
9
|
-
tests.each_pair do |test, opts|
|
10
|
-
define_method("test_#{test}") do
|
11
|
-
|
12
|
-
output = `ruby -I#{LIBDIR} #{exec} #{opts.join(" ")} #{DIR}/data/#{test}-input.rb`
|
13
|
-
outputfile = "#{DIR}/data/#{test}-output.rb"
|
14
|
-
assert_equal(File.read(outputfile), output)
|
15
|
-
end
|
16
|
-
end
|
2
|
+
require 'tempfile'
|
3
|
+
class TestFunctional < Test::Unit::TestCase
|
4
|
+
def self.parse_taf(filename)
|
5
|
+
open(filename) do |io|
|
6
|
+
delimiter=Regexp.union(io.gets)
|
7
|
+
io.read.split(delimiter)
|
17
8
|
end
|
18
9
|
end
|
19
10
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
:add_markers => ["-m"], :unit_test_rbtest => ["-u", "--rbtest"],
|
26
|
-
:unit_test_detect_rbtest => ["-u", "--detect-rbtest"],
|
27
|
-
:unit_test_detect_rbtest2 => ["--detect-rbtest"],
|
28
|
-
}
|
29
|
-
define_functional_tests File.expand_path(DIR + '/../bin/xmpfilter'), tests
|
30
|
-
end
|
31
|
-
|
32
|
-
class TestRctComplete < Test::Unit::TestCase
|
33
|
-
extend DefineFunctionalTests
|
34
|
-
tests = {
|
35
|
-
:completion_rbtest => [ "--rbtest", "--line=6" ],
|
36
|
-
:completion_detect_rbtest => [ "--detect-rbtest", "--line=6" ],
|
37
|
-
:completion_detect_rbtest2 => [ "--detect-rbtest", "--line=1" ],
|
38
|
-
}
|
39
|
-
define_functional_tests File.expand_path(DIR + '/../bin/rct-complete'), tests
|
40
|
-
end
|
41
|
-
|
42
|
-
class TestRctDoc < Test::Unit::TestCase
|
43
|
-
extend DefineFunctionalTests
|
44
|
-
tests = {
|
45
|
-
:doc_rbtest => [ "--rbtest", "--line=6" ],
|
46
|
-
:doc_detect_rbtest => [ "--detect-rbtest", "--line=1" ],
|
47
|
-
:doc_detect_rbtest2 => [ "--detect-rbtest", "--line=6" ],
|
48
|
-
}
|
49
|
-
define_functional_tests File.expand_path(DIR + '/../bin/rct-doc'), tests
|
11
|
+
def tempfile_with_contents(contents)
|
12
|
+
input = Tempfile.new("rct-test")
|
13
|
+
input.write(contents)
|
14
|
+
input.close
|
15
|
+
input.path
|
50
16
|
end
|
51
17
|
|
18
|
+
DIR = File.expand_path(File.dirname(__FILE__))
|
19
|
+
LIBDIR = File.expand_path(DIR + '/../lib')
|
20
|
+
BINDIR = File.expand_path(DIR + '/../bin')
|
52
21
|
|
53
|
-
#
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
tests = {
|
64
|
-
:completion_in_method__testscript =>
|
65
|
-
[ common_opts + ["-t #{test_script}"], right_output ],
|
66
|
-
:completion_in_method__testmethod =>
|
67
|
-
[ common_opts + ["-t #{test_script}@test_fooz"], right_output ],
|
68
|
-
:completion_in_method__wrong_testmethod =>
|
69
|
-
[ common_opts + ["-t #{test_script}@test_NOT_FOUND"], wrong_output ],
|
70
|
-
}
|
71
|
-
exec = File.expand_path(DIR + '/../bin/rct-complete')
|
72
|
-
tests.each_pair do |test, (opts, expected)|
|
73
|
-
define_method("test_#{test}") do
|
74
|
-
output = `ruby -I#{LIBDIR} #{exec} #{opts.join(" ")} #{inputfile}`
|
75
|
-
assert_equal(expected, output)
|
22
|
+
# rct-complete-TDC
|
23
|
+
%w[xmpfilter rct-complete rct-doc].each do |subdir|
|
24
|
+
Dir["#{DIR}/data/#{subdir}/*.taf"].each do |taf|
|
25
|
+
desc, cmdline, input, output = parse_taf(taf)
|
26
|
+
[desc, cmdline].each{|x| x.chomp! }
|
27
|
+
define_method("test_#{desc}") do
|
28
|
+
inputfile = tempfile_with_contents(input)
|
29
|
+
actual_output = `ruby -I#{LIBDIR} #{BINDIR}/#{cmdline} #{inputfile}`
|
30
|
+
assert_equal output, actual_output
|
76
31
|
end
|
77
32
|
end
|
78
33
|
end
|
34
|
+
|
35
|
+
# TODO
|
36
|
+
Dir["#{DIR}/data/rct-complete-TDC/*.taf"].each do |taf|
|
37
|
+
desc, cmdline, input, output, test = parse_taf(taf)
|
38
|
+
[desc, cmdline].each{|x| x.chomp! }
|
39
|
+
define_method("test_#{desc}") do
|
40
|
+
inputfile = tempfile_with_contents(input)
|
41
|
+
testfile = tempfile_with_contents(test)
|
42
|
+
actual_output = `ruby -I#{LIBDIR} #{BINDIR}/#{cmdline % [inputfile, testfile]} #{inputfile}`
|
43
|
+
assert_equal output, actual_output
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
79
47
|
end
|
@@ -9,7 +9,7 @@ end
|
|
9
9
|
class MethodAnalyzerTextOutput < Test::Unit::TestCase
|
10
10
|
include ScriptConfig
|
11
11
|
|
12
|
-
# test (find-sh "ruby -r../method_analyzer data/method_analyzer-data.rb")
|
12
|
+
# test (find-sh "ruby -r../method_analyzer data/method_analyzer-data.rb")
|
13
13
|
|
14
14
|
# attr_accessor is actually Module#attr_accessor.
|
15
15
|
# But `f?ri Module.attr_accessor' answers correctly.
|
@@ -68,17 +68,6 @@ class MethodAnalyzerMarshalOutput < Test::Unit::TestCase
|
|
68
68
|
METHOD_ANALYSIS = File.join(DIR, "method_analysis")
|
69
69
|
at_exit { File.unlink METHOD_ANALYSIS rescue nil}
|
70
70
|
|
71
|
-
def setup
|
72
|
-
ENV['METHOD_ANALYZER_FORMAT'] = 'marshal'
|
73
|
-
@pwd = Dir.pwd
|
74
|
-
Dir.chdir DIR
|
75
|
-
end
|
76
|
-
|
77
|
-
def teardown
|
78
|
-
ENV['METHOD_ANALYZER_FORMAT'] = nil
|
79
|
-
Dir.chdir @pwd
|
80
|
-
end
|
81
|
-
|
82
71
|
def write_temp_file(str, file)
|
83
72
|
file.replace File.expand_path(file)
|
84
73
|
at_exit { File.unlink file }
|
@@ -86,14 +75,33 @@ class MethodAnalyzerMarshalOutput < Test::Unit::TestCase
|
|
86
75
|
end
|
87
76
|
|
88
77
|
def test_marshal_merged
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
78
|
+
begin
|
79
|
+
ENV['METHOD_ANALYZER_FORMAT'] = 'marshal'
|
80
|
+
@pwd = Dir.pwd
|
81
|
+
Dir.chdir DIR
|
82
|
+
a = write_temp_file "z=1+2", "mergeA.rb"
|
83
|
+
system "ruby -r#{SCRIPT} mergeA.rb"
|
84
|
+
method_analysis = Marshal.load(File.read(METHOD_ANALYSIS))
|
85
|
+
assert_equal ["Fixnum#+"], method_analysis[File.join(DIR, "mergeA.rb")][1]
|
86
|
+
ensure
|
87
|
+
ENV.delete 'METHOD_ANALYZER_FORMAT'
|
88
|
+
Dir.chdir @pwd
|
89
|
+
end
|
90
|
+
end
|
94
91
|
|
95
|
-
|
96
|
-
|
97
|
-
|
92
|
+
def test_marshal_merged
|
93
|
+
begin
|
94
|
+
ENV['METHOD_ANALYZER_FORMAT'] = 'marshal'
|
95
|
+
@pwd = Dir.pwd
|
96
|
+
Dir.chdir DIR
|
97
|
+
|
98
|
+
b = write_temp_file "[].empty?", "mergeB.rb"
|
99
|
+
system "ruby -r#{SCRIPT} mergeB.rb"
|
100
|
+
method_analysis = Marshal.load(File.read(METHOD_ANALYSIS))
|
101
|
+
assert_equal ["Array#empty?"], method_analysis[File.join(DIR, "mergeB.rb")][1]
|
102
|
+
ensure
|
103
|
+
ENV.delete 'METHOD_ANALYZER_FORMAT'
|
104
|
+
Dir.chdir @pwd
|
105
|
+
end
|
98
106
|
end
|
99
107
|
end
|
@@ -7,105 +7,148 @@ class TestRubyToggleFile < Test::Unit::TestCase
|
|
7
7
|
WORK_DIR = "#{Dir.tmpdir}/zdsfwfwejiotest".freeze
|
8
8
|
FileUtils.rm_rf WORK_DIR
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
:two => %w[lib/two/two.rb test/test_two.rb],
|
14
|
-
:three => %w[three.rb test_three.rb],
|
15
|
-
:four => %w[four.rb],
|
16
|
-
:five => %w[lib/five.rb],
|
17
|
-
:six => %w[lib/six/six/six.rb],
|
18
|
-
:seven => %w[ test_seven.rb],
|
19
|
-
:eight => %w[ test/test_eight.rb],
|
20
|
-
:nine => %w[ test/nine/nine/nine.rb],
|
21
|
-
|
22
|
-
# Rails
|
23
|
-
:rcontrollers => %w[app/controllers/c.rb test/functional/c_test.rb],
|
24
|
-
:rmodels => %w[app/models/m.rb test/unit/m_test.rb],
|
25
|
-
:rlib => %w[lib/l.rb test/unit/test_l.rb app/models/m.rb],
|
26
|
-
}
|
27
|
-
|
28
|
-
def use_file_map(key, &block)
|
29
|
-
Dir.mkdir(WORK_DIR)
|
30
|
-
Dir.chdir(WORK_DIR) do
|
31
|
-
FILE_MAP[key].each do |file|
|
32
|
-
FileUtils.mkpath(File.dirname(file))
|
33
|
-
open(file, "w"){}
|
34
|
-
end
|
35
|
-
end
|
10
|
+
def teardown
|
11
|
+
FileUtils.rm_rf WORK_DIR
|
12
|
+
end
|
36
13
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
14
|
+
def create(*files)
|
15
|
+
for file in files.map{|f| _(f) }
|
16
|
+
FileUtils.mkpath(File.dirname(file))
|
17
|
+
open(file,"w"){}
|
41
18
|
end
|
42
19
|
end
|
43
20
|
|
44
|
-
def
|
45
|
-
|
21
|
+
def _(path) # make full path
|
22
|
+
WORK_DIR + "/" + path
|
46
23
|
end
|
47
24
|
|
48
|
-
|
49
|
-
|
25
|
+
###########################################################################
|
26
|
+
# naming convention #
|
27
|
+
# test_METHOD__EXISTP__IMPLEMENTDIR_TESTDIR #
|
28
|
+
###########################################################################
|
29
|
+
def test_test_file__exist__lib_test
|
30
|
+
create "lib/zero.rb", "test/test_zero.rb"
|
31
|
+
rtf = RubyToggleFile.new
|
32
|
+
assert_equal _("test/test_zero.rb"), rtf.ruby_toggle_file(_("lib/zero.rb"))
|
50
33
|
end
|
51
34
|
|
52
|
-
def
|
53
|
-
|
35
|
+
def test_test_file__exist__libone_testone
|
36
|
+
create "lib/one/one.rb", "test/one/test_one.rb"
|
37
|
+
rtf = RubyToggleFile.new
|
38
|
+
assert_equal _("test/one/test_one.rb"), rtf.ruby_toggle_file(_("lib/one/one.rb"))
|
54
39
|
end
|
55
40
|
|
56
|
-
def
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
41
|
+
def test_test_file__exist__libtwo_test
|
42
|
+
create "lib/two/two.rb", "test/test_two.rb"
|
43
|
+
rtf = RubyToggleFile.new
|
44
|
+
assert_equal _("test/test_two.rb"), rtf.ruby_toggle_file(_("lib/two/two.rb"))
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_test_file__exist__top_test
|
48
|
+
create "three.rb", "test_three.rb"
|
49
|
+
rtf = RubyToggleFile.new
|
50
|
+
assert_equal _("test_three.rb"), rtf.ruby_toggle_file(_("three.rb"))
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_test_file__not_exist__top
|
54
|
+
create "four.rb"
|
55
|
+
rtf = RubyToggleFile.new
|
56
|
+
assert_equal _("test_four.rb"), rtf.ruby_toggle_file(_("four.rb"))
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_test_file__not_exist__lib
|
60
|
+
create "lib/five.rb"
|
61
|
+
rtf = RubyToggleFile.new
|
62
|
+
assert_equal _("test/test_five.rb"), rtf.ruby_toggle_file(_("lib/five.rb"))
|
63
|
+
end
|
62
64
|
|
63
|
-
def
|
64
|
-
|
65
|
-
|
66
|
-
|
65
|
+
def test_test_file__not_exist__libsixsix
|
66
|
+
create "lib/six/six/six.rb"
|
67
|
+
rtf = RubyToggleFile.new
|
68
|
+
assert_equal _("test/six/six/test_six.rb"), rtf.ruby_toggle_file(_("lib/six/six/six.rb"))
|
67
69
|
end
|
68
70
|
|
69
|
-
def
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
use_file_map(:three) { check "three.rb", "test_three.rb" }
|
71
|
+
def test_implementation_file__exist__lib_test
|
72
|
+
create "lib/zero.rb", "test/test_zero.rb"
|
73
|
+
rtf = RubyToggleFile.new
|
74
|
+
assert_equal _("lib/zero.rb"), rtf.ruby_toggle_file(_("test/test_zero.rb"))
|
74
75
|
end
|
75
76
|
|
76
|
-
def
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
def test_implementation_file__exist__libone_testone
|
78
|
+
create "lib/one/one.rb", "test/one/test_one.rb"
|
79
|
+
rtf = RubyToggleFile.new
|
80
|
+
assert_equal _("lib/one/one.rb"), rtf.ruby_toggle_file(_("test/one/test_one.rb"))
|
80
81
|
end
|
81
82
|
|
82
|
-
|
83
|
-
|
84
|
-
|
83
|
+
def test_implementation_file__exist__libtwo_test
|
84
|
+
create "lib/two/two.rb", "test/test_two.rb"
|
85
|
+
rtf = RubyToggleFile.new
|
86
|
+
assert_equal _("lib/two/two.rb"), rtf.ruby_toggle_file(_("test/test_two.rb"))
|
85
87
|
end
|
86
88
|
|
87
|
-
def
|
88
|
-
|
89
|
+
def test_implementation_file__exist__top_test
|
90
|
+
create "three.rb", "test_three.rb"
|
91
|
+
rtf = RubyToggleFile.new
|
92
|
+
assert_equal _("three.rb"), rtf.ruby_toggle_file(_("test_three.rb"))
|
89
93
|
end
|
90
94
|
|
91
|
-
def
|
92
|
-
|
95
|
+
def test_implementation_file__not_exist__none_top
|
96
|
+
create "test_seven.rb"
|
97
|
+
rtf = RubyToggleFile.new
|
98
|
+
assert_equal _("seven.rb"), rtf.ruby_toggle_file(_("test_seven.rb"))
|
93
99
|
end
|
94
100
|
|
101
|
+
def test_implementation_file__not_exist__none_test
|
102
|
+
create "test/test_eight.rb"
|
103
|
+
rtf = RubyToggleFile.new
|
104
|
+
assert_equal _("lib/eight.rb"), rtf.ruby_toggle_file(_("test/test_eight.rb"))
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_implementation_file__not_exist__none_testninenine
|
108
|
+
create "test/nine/nine/nine.rb"
|
109
|
+
rtf = RubyToggleFile.new
|
110
|
+
assert_equal _("lib/nine/nine/nine.rb"), rtf.ruby_toggle_file(_("test/nine/nine/test_nine.rb"))
|
111
|
+
end
|
95
112
|
|
96
|
-
|
97
|
-
|
113
|
+
###########################################################################
|
114
|
+
# Rails test #
|
115
|
+
###########################################################################
|
116
|
+
def test_test_file__rails_controllers
|
117
|
+
create "app/controllers/c.rb", "test/functional/c_test.rb"
|
118
|
+
rtf = RubyToggleFile.new
|
119
|
+
assert_equal _("test/functional/c_test.rb"), rtf.ruby_toggle_file(_("app/controllers/c.rb"))
|
98
120
|
end
|
99
121
|
|
100
|
-
def
|
101
|
-
|
122
|
+
def test_test_file__rails_models
|
123
|
+
create "app/models/m.rb", "test/unit/m_test.rb"
|
124
|
+
rtf = RubyToggleFile.new
|
125
|
+
assert_equal _("test/unit/m_test.rb"), rtf.ruby_toggle_file(_("app/models/m.rb"))
|
102
126
|
end
|
103
127
|
|
104
|
-
def
|
105
|
-
|
128
|
+
def test_test_file__rails_lib
|
129
|
+
create "lib/l.rb", "test/unit/test_l.rb", "app/models/m.rb"
|
130
|
+
rtf = RubyToggleFile.new
|
131
|
+
assert_equal _("test/unit/test_l.rb"), rtf.ruby_toggle_file(_("lib/l.rb"))
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
def test_implementation_file__rails_controllers
|
136
|
+
create "app/controllers/c.rb", "test/functional/c_test.rb"
|
137
|
+
rtf = RubyToggleFile.new
|
138
|
+
assert_equal _("app/controllers/c.rb"), rtf.ruby_toggle_file(_("test/functional/c_test.rb"))
|
106
139
|
end
|
107
140
|
|
141
|
+
def test_implementation_file__rails_models
|
142
|
+
create "app/models/m.rb", "test/unit/m_test.rb"
|
143
|
+
rtf = RubyToggleFile.new
|
144
|
+
assert_equal _("app/models/m.rb"), rtf.ruby_toggle_file(_("test/unit/m_test.rb"))
|
145
|
+
end
|
108
146
|
|
147
|
+
def test_implementation_file__rails_lib
|
148
|
+
create "lib/l.rb", "test/unit/test_l.rb", "app/models/m.rb"
|
149
|
+
rtf = RubyToggleFile.new
|
150
|
+
assert_equal _("lib/l.rb"), rtf.ruby_toggle_file(_("test/unit/test_l.rb"))
|
151
|
+
end
|
109
152
|
end
|
110
153
|
|
111
154
|
|
@@ -117,9 +160,15 @@ class TestRunHooksWithArgsUntilSuccess < Test::Unit::TestCase
|
|
117
160
|
def m004(x) 200 end
|
118
161
|
|
119
162
|
public
|
120
|
-
def
|
163
|
+
def test_run_hooks_with_args_until_success__m003
|
121
164
|
assert_equal 1000, run_hooks_with_args_until_success(/^m\d+$/, 10)
|
165
|
+
end
|
166
|
+
|
167
|
+
def test_run_hooks_with_args_until_success__m001
|
122
168
|
assert_nil run_hooks_with_args_until_success(/^m001$/, 10)
|
169
|
+
end
|
170
|
+
|
171
|
+
def test_run_hooks_with_args_until_success__m004
|
123
172
|
assert_equal 200, run_hooks_with_args_until_success(/^m004$/, 10)
|
124
173
|
end
|
125
174
|
end
|
data/test/test_xmpfilter.rb
CHANGED
@@ -2,29 +2,56 @@
|
|
2
2
|
require 'test/unit'
|
3
3
|
$: << ".." << "../lib"
|
4
4
|
require "rcodetools/xmpfilter"
|
5
|
+
require 'rubygems'
|
6
|
+
require 'mocha'
|
5
7
|
|
6
8
|
class TestXMPFilter < Test::Unit::TestCase
|
7
9
|
include Rcodetools
|
8
|
-
def
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
def test_extract_data__results
|
11
|
+
marker = XMPFilter::MARKER
|
12
|
+
str = <<-EOF
|
13
|
+
#{marker}[1] => Fixnum 42
|
14
|
+
#{marker}[1] => Fixnum 0
|
15
|
+
#{marker}[1] ==> var
|
16
|
+
#{marker}[1] ==> var2
|
17
|
+
#{marker}[4] ==> var3
|
18
|
+
#{marker}[2] ~> some exception
|
19
|
+
#{marker}[10] => Fixnum 42
|
20
|
+
EOF
|
21
|
+
xmp = XMPFilter.new
|
22
|
+
data = xmp.extract_data(str)
|
23
|
+
assert_equal([[1, [["Fixnum", "42"], ["Fixnum", "0"]]], [10, [["Fixnum", "42"]]]], data.results.sort)
|
12
24
|
end
|
13
25
|
|
14
|
-
def
|
26
|
+
def test_extract_data__exceptions
|
27
|
+
marker = XMPFilter::MARKER
|
15
28
|
str = <<-EOF
|
16
|
-
#{
|
17
|
-
#{
|
18
|
-
#{
|
19
|
-
#{
|
20
|
-
#{
|
21
|
-
#{
|
22
|
-
#{
|
29
|
+
#{marker}[1] => Fixnum 42
|
30
|
+
#{marker}[1] => Fixnum 0
|
31
|
+
#{marker}[1] ==> var
|
32
|
+
#{marker}[1] ==> var2
|
33
|
+
#{marker}[4] ==> var3
|
34
|
+
#{marker}[2] ~> some exception
|
35
|
+
#{marker}[10] => Fixnum 42
|
23
36
|
EOF
|
24
|
-
|
25
|
-
|
26
|
-
assert_equal([[1, [["Fixnum", "42"], ["Fixnum", "0"]]], [10, [["Fixnum", "42"]]]], data.results.sort)
|
37
|
+
xmp = XMPFilter.new
|
38
|
+
data = xmp.extract_data(str)
|
27
39
|
assert_equal([[2, ["some exception"]]], data.exceptions.sort)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_extract_data__bindings
|
43
|
+
marker = XMPFilter::MARKER
|
44
|
+
str = <<-EOF
|
45
|
+
#{marker}[1] => Fixnum 42
|
46
|
+
#{marker}[1] => Fixnum 0
|
47
|
+
#{marker}[1] ==> var
|
48
|
+
#{marker}[1] ==> var2
|
49
|
+
#{marker}[4] ==> var3
|
50
|
+
#{marker}[2] ~> some exception
|
51
|
+
#{marker}[10] => Fixnum 42
|
52
|
+
EOF
|
53
|
+
xmp = XMPFilter.new
|
54
|
+
data = xmp.extract_data(str)
|
28
55
|
assert_equal([[1, ["var", "var2"]], [4, ["var3"]]], data.bindings.sort)
|
29
56
|
end
|
30
57
|
|
@@ -34,13 +61,9 @@ class TestXMPFilter < Test::Unit::TestCase
|
|
34
61
|
end
|
35
62
|
|
36
63
|
def test_interpreter_command_detect_rct_fork
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
assert_equal(%w[ruby -S rct-fork-client], xmp.interpreter_command)
|
41
|
-
ensure
|
42
|
-
def Fork::run?() false end
|
43
|
-
end
|
64
|
+
Fork.stubs(:run?).returns true
|
65
|
+
xmp = XMPFilter.new(:interpreter=>"ruby", :detect_rct_fork => true)
|
66
|
+
assert_equal(%w[ruby -S rct-fork-client], xmp.interpreter_command)
|
44
67
|
end
|
45
68
|
|
46
69
|
def test_interpreter_command_use_rbtest
|
@@ -49,7 +72,8 @@ class TestXMPFilter < Test::Unit::TestCase
|
|
49
72
|
end
|
50
73
|
|
51
74
|
def test_initialize__test_script_1
|
52
|
-
|
75
|
+
XMPFilter.any_instance.stubs(:safe_require_code).returns("require 'test/unit'")
|
76
|
+
xmp = XMPFilter.new(:test_script=>"/path/to/test/test_ruby_toggle_file.rb",
|
53
77
|
:test_method=>"test_implementation_file_file_exist",
|
54
78
|
:filename=>"/path/to/lib/ruby_toggle_file.rb")
|
55
79
|
|
@@ -59,11 +83,12 @@ class TestXMPFilter < Test::Unit::TestCase
|
|
59
83
|
%q!load "/path/to/test/test_ruby_toggle_file.rb"!,
|
60
84
|
%q!Test::Unit::AutoRunner.run(false, nil, ["-n", "test_implementation_file_file_exist"])!
|
61
85
|
]
|
62
|
-
assert_equal evals_expected,
|
86
|
+
assert_equal evals_expected, xmp.instance_variable_get(:@evals)
|
63
87
|
end
|
64
88
|
|
65
89
|
def test_initialize__test_script_2
|
66
|
-
|
90
|
+
XMPFilter.any_instance.stubs(:safe_require_code).returns("require 'test/unit'")
|
91
|
+
xmp = XMPFilter.new(:test_script=>"/path/to/test_ruby_toggle_file.rb",
|
67
92
|
:test_method=>"test_implementation_file_file_exist",
|
68
93
|
:filename=>"/path/to/ruby_toggle_file.rb")
|
69
94
|
|
@@ -73,13 +98,14 @@ class TestXMPFilter < Test::Unit::TestCase
|
|
73
98
|
%q!load "/path/to/test_ruby_toggle_file.rb"!,
|
74
99
|
%q!Test::Unit::AutoRunner.run(false, nil, ["-n", "test_implementation_file_file_exist"])!
|
75
100
|
]
|
76
|
-
assert_equal evals_expected,
|
101
|
+
assert_equal evals_expected, xmp.instance_variable_get(:@evals)
|
77
102
|
end
|
78
103
|
|
79
104
|
def test_initialize__test_script_3
|
80
|
-
test_script = File.join(
|
81
|
-
filename = File.join(
|
82
|
-
|
105
|
+
test_script = File.join(File.dirname(__FILE__), "data/sample_test_script.rb")
|
106
|
+
filename = File.join(File.dirname(__FILE__), "data/sample.rb")
|
107
|
+
XMPFilter.any_instance.stubs(:safe_require_code).returns("require 'test/unit'")
|
108
|
+
xmp = XMPFilter.new(:test_script=>test_script, :test_method=>"4", :filename=>filename)
|
83
109
|
|
84
110
|
evals_expected = [
|
85
111
|
%q!$LOADED_FEATURES << "sample.rb"!,
|
@@ -87,33 +113,34 @@ class TestXMPFilter < Test::Unit::TestCase
|
|
87
113
|
%Q!load #{test_script.dump}!,
|
88
114
|
%q!Test::Unit::AutoRunner.run(false, nil, ["-n", "test_sample0"])!
|
89
115
|
]
|
90
|
-
assert_equal evals_expected,
|
116
|
+
assert_equal evals_expected, xmp.instance_variable_get(:@evals)
|
91
117
|
end
|
92
118
|
|
93
119
|
def test_initialize__test_script__filename_eq_test_script
|
94
|
-
test_script = File.join(
|
120
|
+
test_script = File.join(File.dirname(__FILE__), "data/sample_test_script.rb")
|
95
121
|
filename = test_script
|
96
|
-
|
122
|
+
xmp = XMPFilter.new(:test_script=>test_script, :test_method=>"4", :filename=>filename)
|
97
123
|
|
98
124
|
evals_expected = [
|
99
125
|
%q!Test::Unit::AutoRunner.run(false, nil, ["-n", "test_sample0"])!
|
100
126
|
]
|
101
|
-
assert_equal evals_expected,
|
127
|
+
assert_equal evals_expected, xmp.instance_variable_get(:@evals)
|
102
128
|
end
|
103
129
|
|
104
130
|
def test_get_test_method_from_lineno
|
105
|
-
file = File.join(
|
106
|
-
|
107
|
-
assert_equal("
|
108
|
-
assert_equal("test_sample1",
|
109
|
-
assert_equal(
|
131
|
+
file = File.join(File.dirname(__FILE__), "data/sample_test_script.rb")
|
132
|
+
xmp = XMPFilter.new
|
133
|
+
assert_equal("test_sample0", xmp.get_test_method_from_lineno(file, 4))
|
134
|
+
assert_equal("test_sample1", xmp.get_test_method_from_lineno(file, 7))
|
135
|
+
assert_equal("test_sample1", xmp.get_test_method_from_lineno(file, 8))
|
136
|
+
assert_equal(nil, xmp.get_test_method_from_lineno(file, 1))
|
110
137
|
end
|
111
138
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
139
|
+
# Use methods to avoid confusing syntax highlighting
|
140
|
+
def beg() "=begin" end
|
141
|
+
def ed() "=end" end
|
142
|
+
|
143
|
+
def test_s_detect_rbtest_1
|
117
144
|
rbtest_script_1 = <<XXX
|
118
145
|
#{beg} test_0
|
119
146
|
assert f(10)
|
@@ -130,9 +157,9 @@ XXX
|
|
130
157
|
opts = {:detect_rbtest => false, :use_rbtest => true}
|
131
158
|
assert_equal true, XMPFilter.detect_rbtest(rbtest_script_1, opts)
|
132
159
|
assert_equal true, opts[:use_rbtest]
|
160
|
+
end
|
133
161
|
|
134
|
-
|
135
|
-
|
162
|
+
def test_s_detect_rbtest_2
|
136
163
|
rbtest_script_2 = <<XXX
|
137
164
|
def f(x) x*100 end
|
138
165
|
#{beg} test_0
|
@@ -145,8 +172,9 @@ XXX
|
|
145
172
|
opts = {:detect_rbtest => false}
|
146
173
|
assert_equal false, XMPFilter.detect_rbtest(rbtest_script_2, opts)
|
147
174
|
assert_equal false, opts[:use_rbtest]
|
148
|
-
|
149
|
-
|
175
|
+
end
|
176
|
+
|
177
|
+
def test_s_detect_rbtest_3
|
150
178
|
no_rbtest_script = <<XXX
|
151
179
|
def f(x) x*100 end
|
152
180
|
XXX
|