etest 0.1 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +0 -13
- data/Rakefile +3 -15
- data/VERSION +2 -0
- data/etest.gemspec +7 -7
- data/gem.yml +12 -0
- data/lib/dlog_ext.rb +38 -3
- data/lib/etest/assertions.rb +108 -32
- data/lib/etest/comparison_assertions.rb +47 -0
- data/lib/etest.rb +21 -4
- data/lib/module_ext.rb +13 -6
- data/lib/string_ext.rb +12 -9
- data/tasks/echoe.rake +31 -0
- data/test/test.rb +7 -1
- metadata +22 -8
data/Manifest
CHANGED
data/Rakefile
CHANGED
@@ -12,18 +12,6 @@ task :rdoc do
|
|
12
12
|
sh "rdoc -o doc/rdoc"
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
Echoe.new('etest', '0.1') do |p|
|
20
|
-
p.description = "Embedded tests"
|
21
|
-
p.url = "http://github.com/pboy/etest"
|
22
|
-
p.author = "pboy"
|
23
|
-
p.email = "eno-pboy@open-lab.org"
|
24
|
-
p.ignore_pattern = ["tmp/*"]
|
25
|
-
# p.runtime_dependencies = %w(nokogiri htmlentities rdiscount)
|
26
|
-
end
|
27
|
-
|
28
|
-
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
29
|
-
|
15
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext|
|
16
|
+
puts ext
|
17
|
+
load ext }
|
data/VERSION
ADDED
data/etest.gemspec
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{etest}
|
5
|
-
s.version = "0.1"
|
5
|
+
s.version = "0.3.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["pboy"]
|
9
|
-
s.date = %q{2010-
|
10
|
-
s.description = %q{Embedded
|
9
|
+
s.date = %q{2010-05-23}
|
10
|
+
s.description = %q{Embedded testing}
|
11
11
|
s.email = %q{eno-pboy@open-lab.org}
|
12
|
-
s.extra_rdoc_files = ["lib/dlog_ext.rb", "lib/etest.rb", "lib/etest/assertions.rb", "lib/etest/grep.rb", "lib/module_ext.rb", "lib/string_ext.rb"]
|
13
|
-
s.files = ["Manifest", "Rakefile", "
|
12
|
+
s.extra_rdoc_files = ["lib/dlog_ext.rb", "lib/etest.rb", "lib/etest/assertions.rb", "lib/etest/comparison_assertions.rb", "lib/etest/grep.rb", "lib/module_ext.rb", "lib/string_ext.rb", "tasks/echoe.rake"]
|
13
|
+
s.files = ["Manifest", "Rakefile", "VERSION", "gem.yml", "init.rb", "lib/dlog_ext.rb", "lib/etest.rb", "lib/etest/assertions.rb", "lib/etest/comparison_assertions.rb", "lib/etest/grep.rb", "lib/module_ext.rb", "lib/string_ext.rb", "script/console", "script/rebuild", "tasks/echoe.rake", "test/test.rb", "etest.gemspec"]
|
14
14
|
s.homepage = %q{http://github.com/pboy/etest}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Etest"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{etest}
|
18
|
-
s.rubygems_version = %q{1.3.
|
19
|
-
s.summary = %q{Embedded
|
18
|
+
s.rubygems_version = %q{1.3.6}
|
19
|
+
s.summary = %q{Embedded testing}
|
20
20
|
|
21
21
|
if s.respond_to? :specification_version then
|
22
22
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
data/gem.yml
ADDED
data/lib/dlog_ext.rb
CHANGED
@@ -14,14 +14,49 @@ module Dlog
|
|
14
14
|
|
15
15
|
HOME = ENV["HOME"] + "/"
|
16
16
|
|
17
|
+
def self.release!
|
18
|
+
@release = true
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.release?
|
22
|
+
@release
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.debug!
|
26
|
+
@release = false
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.debug?
|
30
|
+
!@release
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.quiet!
|
34
|
+
@quiet = true
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.quiet?
|
38
|
+
@quiet
|
39
|
+
end
|
40
|
+
|
17
41
|
def dlog(*args)
|
42
|
+
return if Dlog.quiet?
|
43
|
+
|
18
44
|
msg = ""
|
19
45
|
was_string = true
|
20
46
|
args.map do |s|
|
21
47
|
msg += was_string ? " " : ", " unless msg.empty?
|
22
48
|
msg += ((was_string = s.is_a?(String)) ? s : s.inspect)
|
23
49
|
end
|
24
|
-
STDERR.puts "#{dlog_caller}
|
50
|
+
STDERR.puts "#{Dlog.release? ? rlog_caller : dlog_caller} #{msg}"
|
51
|
+
end
|
52
|
+
|
53
|
+
def rlog_caller
|
54
|
+
if caller[1] =~ /^(.*):(\d+)/
|
55
|
+
file, line = $1, $2
|
56
|
+
"[" + File.basename(file).sub(/\.[^\.]*$/, "") + "]"
|
57
|
+
else
|
58
|
+
"[log]"
|
59
|
+
end
|
25
60
|
end
|
26
61
|
|
27
62
|
def dlog_caller
|
@@ -32,9 +67,9 @@ module Dlog
|
|
32
67
|
file.gsub!(ROOT, ".") or
|
33
68
|
file.gsub!(HOME, "~/")
|
34
69
|
|
35
|
-
"#{file}(#{line})"
|
70
|
+
"#{file}(#{line}):"
|
36
71
|
else
|
37
|
-
"<dlog
|
72
|
+
"<dlog>:"
|
38
73
|
end
|
39
74
|
end
|
40
75
|
end
|
data/lib/etest/assertions.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# Some assertions
|
4
4
|
module Etest::Assertions
|
5
|
+
def assert_not_equal(unexpected, actual)
|
6
|
+
assert unexpected != actual, "#{actual} equals #{unexpected}, when it shouldn't"
|
7
|
+
end
|
8
|
+
|
5
9
|
def assert_respond_to(obj, *args)
|
6
10
|
raise ArgumentError, "Missing argument(s)" if args.length < 1
|
7
11
|
|
@@ -45,6 +49,7 @@ module Etest::Assertions
|
|
45
49
|
#
|
46
50
|
#
|
47
51
|
def assert_valid_xml(*args)
|
52
|
+
return unless libxml_installed?
|
48
53
|
args.push @response.body if args.empty?
|
49
54
|
|
50
55
|
args.each do |xml|
|
@@ -52,8 +57,27 @@ module Etest::Assertions
|
|
52
57
|
end
|
53
58
|
end
|
54
59
|
|
60
|
+
def assert_invalid_xml(*args)
|
61
|
+
return unless libxml_installed?
|
62
|
+
args.push @response.body if args.empty?
|
63
|
+
|
64
|
+
args.each do |xml|
|
65
|
+
assert !xml_valid?(xml), "XML should not be valid: #{xml}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def libxml_installed?
|
70
|
+
return @libxml_installed unless @libxml_installed.nil?
|
71
|
+
@libxml_installed = begin
|
72
|
+
require "libxml"
|
73
|
+
true
|
74
|
+
rescue LoadError
|
75
|
+
STDERR.puts "*** Skipping xml_validation. Please install the 'libxml' gem"
|
76
|
+
false
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
55
80
|
def xml_valid?(xml)
|
56
|
-
require "libxml"
|
57
81
|
LibXML::XML::Error.reset_handler
|
58
82
|
|
59
83
|
LibXML::XML::Document.io StringIO.new(xml)
|
@@ -62,49 +86,99 @@ module Etest::Assertions
|
|
62
86
|
false
|
63
87
|
end
|
64
88
|
|
65
|
-
def assert_invalid_xml(*args)
|
66
|
-
args.push @response.body if args.empty?
|
67
|
-
|
68
|
-
args.each do |xml|
|
69
|
-
assert !xml_valid?(xml), "XML should not be valid: #{xml}"
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
89
|
def assert_route(uri_path, params)
|
74
90
|
assert_recognizes params, uri_path
|
75
91
|
end
|
76
92
|
|
77
|
-
def
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
93
|
+
def catch_exception_on(&block)
|
94
|
+
yield
|
95
|
+
nil
|
96
|
+
rescue Exception
|
97
|
+
$!
|
98
|
+
end
|
99
|
+
|
100
|
+
def assert_raise(klass, msg=nil, &block)
|
101
|
+
ex = catch_exception_on(&block)
|
102
|
+
if ex.nil?
|
103
|
+
assert false, msg || "Should raise a #{klass} exception, but didn't raise at all"
|
104
|
+
else
|
105
|
+
assert ex.class.name == klass.name, msg || "Should raise a #{klass} exception, but raised a #{ex.class.name} exception"
|
83
106
|
end
|
84
107
|
end
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
108
|
+
|
109
|
+
def assert_nothing_raised(msg=nil, &block)
|
110
|
+
ex = catch_exception_on(&block)
|
111
|
+
assert ex.nil?, msg || "Should not raise an exception, but raised a #{ex.class.name} exception"
|
112
|
+
end
|
113
|
+
|
114
|
+
def assert_raises_kind_of(klass, msg=nil, &block)
|
115
|
+
ex = catch_exception_on(&block)
|
116
|
+
if ex.nil?
|
117
|
+
assert false, msg || "Should raise a #{klass} exception, but didn't raise at all"
|
118
|
+
else
|
119
|
+
assert ex.is_a?(klass), msg || "Should raise a #{klass} exception, but raised a #{ex.class.name} exception"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def assert_not_nil(v)
|
124
|
+
assert !v.nil?, "Should be nil, but is an #{v.class.name} object"
|
96
125
|
end
|
97
126
|
|
98
|
-
|
127
|
+
def assert_file_exist(*paths)
|
128
|
+
paths.flatten.each do |path|
|
129
|
+
assert File.exist?(path), "Missing file: #{path}"
|
130
|
+
end
|
131
|
+
end
|
99
132
|
|
100
|
-
def
|
101
|
-
|
102
|
-
|
133
|
+
def assert_file_doesnt_exist(*paths)
|
134
|
+
paths.flatten.each do |path|
|
135
|
+
assert !File.exist?(path), "File should not exist: #{path}"
|
103
136
|
end
|
104
137
|
end
|
105
138
|
|
106
|
-
def
|
107
|
-
|
139
|
+
def assert_not_equal(unexpected, actual)
|
140
|
+
assert unexpected != actual, "#{actual.inspect} should be != #{unexpected.inspect}"
|
141
|
+
end
|
142
|
+
|
143
|
+
def assert_not_nil(actual)
|
144
|
+
assert !actual.nil?, "#{actual.inspect} should not be nil"
|
145
|
+
end
|
146
|
+
|
147
|
+
def assert_nil(actual)
|
148
|
+
assert actual.nil?, "#{actual.inspect} should be nil"
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
class MiniTest::Unit::TestCase
|
153
|
+
include Etest::Assertions
|
154
|
+
end
|
155
|
+
|
156
|
+
unless defined?(ETEST_TEST)
|
157
|
+
|
158
|
+
module Etest::Assertions::Etest
|
159
|
+
#
|
160
|
+
# this actually tests the existance of an assertion and one successful
|
161
|
+
# assertion, nothing less, and nothing more...
|
162
|
+
def test_asserts
|
163
|
+
assert_respond_to "nsn", :upcase
|
164
|
+
assert respond_to?(:assert_invalid)
|
165
|
+
assert respond_to?(:assert_valid)
|
166
|
+
end
|
167
|
+
|
168
|
+
class TestError < RuntimeError; end
|
169
|
+
|
170
|
+
def test_assert_raises_kind_of
|
171
|
+
assert_raises_kind_of RuntimeError do
|
172
|
+
raise TestError
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def test_assert_file_exist
|
177
|
+
assert_file_exist __FILE__
|
178
|
+
end
|
179
|
+
|
180
|
+
def test_xml
|
181
|
+
assert_valid_xml <<-XML
|
108
182
|
<root>
|
109
183
|
<p> lkhj </p>
|
110
184
|
</root>
|
@@ -114,5 +188,7 @@ XML
|
|
114
188
|
<root>
|
115
189
|
<p> lkhj </p>
|
116
190
|
XML
|
191
|
+
end
|
117
192
|
end
|
118
193
|
end
|
194
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Etest::ComparisonAssertions
|
2
|
+
def assert_lt(p1, p2)
|
3
|
+
assert(p1 < p2, "#{p1.inspect} should be less than #{p2.inspect} but is not")
|
4
|
+
end
|
5
|
+
|
6
|
+
def assert_le(p1, p2)
|
7
|
+
assert(p1 <= p2, "#{p1.inspect} should be less than or equal #{p2.inspect} but is not")
|
8
|
+
end
|
9
|
+
|
10
|
+
def assert_ge(p1, p2)
|
11
|
+
assert(p1 >= p2, "#{p1.inspect} should be greater than or equal #{p2.inspect} but is not")
|
12
|
+
end
|
13
|
+
|
14
|
+
def assert_gt(p1, p2)
|
15
|
+
assert(p1 > p2, "#{p1.inspect} should be greater than #{p2.inspect} but is not")
|
16
|
+
end
|
17
|
+
|
18
|
+
# for reasons of API completeness and orthogonality only.
|
19
|
+
|
20
|
+
def assert_eq(p1, p2)
|
21
|
+
assert_equal(p1, p2)
|
22
|
+
end
|
23
|
+
|
24
|
+
def assert_ne(p1, p2)
|
25
|
+
assert_not_equal(p1, p2)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class MiniTest::Unit::TestCase
|
30
|
+
include ::Etest::ComparisonAssertions
|
31
|
+
end
|
32
|
+
|
33
|
+
unless defined?(ETEST_TEST)
|
34
|
+
|
35
|
+
module Etest::ComparisonAssertions::Etest
|
36
|
+
# I don't know how to test asserts. This, at least, give (fake) C0 coverage
|
37
|
+
def test_comparision_assertions
|
38
|
+
assert_lt 1, 2
|
39
|
+
assert_le 1, 1
|
40
|
+
assert_ge 2, 2
|
41
|
+
assert_gt 2, 1
|
42
|
+
assert_eq 2, 2
|
43
|
+
assert_ne 1, 2
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
data/lib/etest.rb
CHANGED
@@ -10,24 +10,38 @@ require File.dirname(__FILE__) + "/dlog_ext"
|
|
10
10
|
# The Etest module contains methods to run etests.
|
11
11
|
#
|
12
12
|
module Etest
|
13
|
+
VERSION=File.read(File.dirname(__FILE__) + "/../VERSION")
|
13
14
|
end
|
14
15
|
|
15
16
|
require File.dirname(__FILE__) + "/etest/assertions"
|
17
|
+
require File.dirname(__FILE__) + "/etest/comparison_assertions"
|
16
18
|
|
17
19
|
class MiniTest::Unit::TestCase
|
18
20
|
def self.run_etests(*test_cases)
|
21
|
+
outside_etests = @@test_suites
|
22
|
+
reset
|
23
|
+
|
19
24
|
MiniTest::Unit::TestCase.reset
|
20
25
|
|
21
26
|
test_cases.each do |test_case|
|
22
27
|
MiniTest::Unit::TestCase.inherited test_case
|
23
28
|
end
|
24
29
|
|
25
|
-
MiniTest::Unit.new.run(
|
26
|
-
|
30
|
+
MiniTest::Unit.new.run(ARGV.dup)
|
31
|
+
ensure
|
32
|
+
@@test_suites = outside_etests
|
27
33
|
end
|
28
34
|
end
|
29
35
|
|
30
36
|
module Etest
|
37
|
+
|
38
|
+
class TestCase < MiniTest::Unit::TestCase
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.autorun
|
42
|
+
auto_run
|
43
|
+
end
|
44
|
+
|
31
45
|
def self.auto_run
|
32
46
|
#
|
33
47
|
# find all modules that are not named /::Etest$/, and try to load
|
@@ -56,11 +70,14 @@ module Etest
|
|
56
70
|
#
|
57
71
|
# convert an Etest moodule into a MiniTest testcase
|
58
72
|
def self.to_test_case(mod)
|
59
|
-
klass = Class.new
|
73
|
+
klass = Class.new TestCase
|
60
74
|
klass.send :include, mod
|
61
75
|
klass.send :include, Assertions
|
62
76
|
|
63
|
-
|
77
|
+
Kernel.silent do
|
78
|
+
mod.const_set("TestCase", klass)
|
79
|
+
end
|
64
80
|
klass
|
65
81
|
end
|
66
82
|
end
|
83
|
+
|
data/lib/module_ext.rb
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
module Kernel
|
2
|
+
def self.silent(&block)
|
3
|
+
old_verbose, $VERBOSE = $VERBOSE, nil
|
4
|
+
yield
|
5
|
+
ensure
|
6
|
+
$VERBOSE = old_verbose
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
1
10
|
#
|
2
11
|
# TDD helpers for modules.
|
3
12
|
class Module
|
@@ -19,14 +28,12 @@ class Module
|
|
19
28
|
#
|
20
29
|
# load a module by name.
|
21
30
|
def self.by_name(name) #:nodoc:
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
31
|
+
Kernel.silent do
|
32
|
+
r = eval(name, nil, __FILE__, __LINE__)
|
33
|
+
r if r.is_a?(Module) && r.name == name
|
34
|
+
end
|
26
35
|
rescue NameError, LoadError
|
27
36
|
nil
|
28
|
-
ensure
|
29
|
-
$VERBOSE = old_verbose
|
30
37
|
end
|
31
38
|
|
32
39
|
#
|
data/lib/string_ext.rb
CHANGED
@@ -13,15 +13,18 @@ class String
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
unless defined?(TEST_ETEST)
|
17
|
+
|
18
|
+
module String::Etest
|
19
|
+
def test_camelize
|
20
|
+
assert_equal "x", "X".underscore
|
21
|
+
assert_equal "xa_la_nder", "XaLaNder".underscore
|
22
|
+
end
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
24
|
+
def test_underscore
|
25
|
+
assert_equal "X", "x".camelize
|
26
|
+
assert_equal "XaLaNder", "xa_la_nder".camelize
|
27
|
+
end
|
25
28
|
end
|
26
|
-
end
|
27
29
|
|
30
|
+
end
|
data/tasks/echoe.rake
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
# GEM settings
|
3
|
+
#
|
4
|
+
GEM_ROOT = File.expand_path("#{File.dirname(__FILE__)}/..")
|
5
|
+
if gem_config = YAML.load(File.read("#{GEM_ROOT}/gem.yml"))["gem"]
|
6
|
+
require 'echoe'
|
7
|
+
|
8
|
+
GEM_NAME = File.basename(GEM_ROOT)
|
9
|
+
Echoe.new(File.basename(GEM_ROOT), File.read("#{GEM_ROOT}/VERSION")) do |p|
|
10
|
+
gem_config.each do |k,v|
|
11
|
+
p.send "#{k}=",v
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Rebuild and install the gem"
|
16
|
+
task :rebuild => %w(manifest default build_gemspec package) do
|
17
|
+
gem = Dir.glob("pkg/*.gem").sort_by do |filename|
|
18
|
+
File.new(filename).mtime
|
19
|
+
end.last
|
20
|
+
|
21
|
+
puts "============================================="
|
22
|
+
puts "Installing gem..."
|
23
|
+
|
24
|
+
system "gem install #{gem} > /dev/null 2>&1"
|
25
|
+
|
26
|
+
puts ""
|
27
|
+
puts "I built and installed the gem for you. To upload, run "
|
28
|
+
puts
|
29
|
+
puts " gem push #{gem}"
|
30
|
+
end
|
31
|
+
end
|
data/test/test.rb
CHANGED
@@ -2,10 +2,15 @@
|
|
2
2
|
DIRNAME = File.expand_path File.dirname(__FILE__)
|
3
3
|
Dir.chdir(DIRNAME)
|
4
4
|
|
5
|
+
ETEST_TEST=true
|
6
|
+
|
5
7
|
#
|
6
8
|
# initialize the gem
|
7
9
|
require '../init'
|
8
10
|
|
11
|
+
require "#{DIRNAME}/etest_assertions.rb"
|
12
|
+
require "#{DIRNAME}/etest_string.rb"
|
13
|
+
|
9
14
|
require 'logger'
|
10
15
|
require 'rubygems'
|
11
16
|
require 'ruby-debug'
|
@@ -20,6 +25,7 @@ RAILS_ENV="test"
|
|
20
25
|
RAILS_ROOT="#{DIRNAME}"
|
21
26
|
|
22
27
|
if !defined?(RAILS_DEFAULT_LOGGER)
|
28
|
+
require "fileutils"
|
23
29
|
FileUtils.mkdir_p File.dirname(LOGFILE)
|
24
30
|
RAILS_DEFAULT_LOGGER = Logger.new(LOGFILE)
|
25
31
|
RAILS_DEFAULT_LOGGER.level = Logger::DEBUG
|
@@ -46,7 +52,7 @@ end
|
|
46
52
|
|
47
53
|
$etests_did_run = false
|
48
54
|
Etest.reload
|
49
|
-
Etest.
|
55
|
+
Etest.autorun
|
50
56
|
|
51
57
|
unless $etests_did_run
|
52
58
|
STDERR.puts "Something's wrong with etests :("
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: etest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 3
|
8
|
+
- 1
|
9
|
+
version: 0.3.1
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- pboy
|
@@ -9,11 +14,11 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-05-23 00:00:00 +02:00
|
13
18
|
default_executable:
|
14
19
|
dependencies: []
|
15
20
|
|
16
|
-
description: Embedded
|
21
|
+
description: Embedded testing
|
17
22
|
email: eno-pboy@open-lab.org
|
18
23
|
executables: []
|
19
24
|
|
@@ -23,23 +28,29 @@ extra_rdoc_files:
|
|
23
28
|
- lib/dlog_ext.rb
|
24
29
|
- lib/etest.rb
|
25
30
|
- lib/etest/assertions.rb
|
31
|
+
- lib/etest/comparison_assertions.rb
|
26
32
|
- lib/etest/grep.rb
|
27
33
|
- lib/module_ext.rb
|
28
34
|
- lib/string_ext.rb
|
35
|
+
- tasks/echoe.rake
|
29
36
|
files:
|
30
37
|
- Manifest
|
31
38
|
- Rakefile
|
32
|
-
-
|
39
|
+
- VERSION
|
40
|
+
- gem.yml
|
33
41
|
- init.rb
|
34
42
|
- lib/dlog_ext.rb
|
35
43
|
- lib/etest.rb
|
36
44
|
- lib/etest/assertions.rb
|
45
|
+
- lib/etest/comparison_assertions.rb
|
37
46
|
- lib/etest/grep.rb
|
38
47
|
- lib/module_ext.rb
|
39
48
|
- lib/string_ext.rb
|
40
49
|
- script/console
|
41
50
|
- script/rebuild
|
51
|
+
- tasks/echoe.rake
|
42
52
|
- test/test.rb
|
53
|
+
- etest.gemspec
|
43
54
|
has_rdoc: true
|
44
55
|
homepage: http://github.com/pboy/etest
|
45
56
|
licenses: []
|
@@ -56,20 +67,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
56
67
|
requirements:
|
57
68
|
- - ">="
|
58
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
59
72
|
version: "0"
|
60
|
-
version:
|
61
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
74
|
requirements:
|
63
75
|
- - ">="
|
64
76
|
- !ruby/object:Gem::Version
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 2
|
65
80
|
version: "1.2"
|
66
|
-
version:
|
67
81
|
requirements: []
|
68
82
|
|
69
83
|
rubyforge_project: etest
|
70
|
-
rubygems_version: 1.3.
|
84
|
+
rubygems_version: 1.3.6
|
71
85
|
signing_key:
|
72
86
|
specification_version: 3
|
73
|
-
summary: Embedded
|
87
|
+
summary: Embedded testing
|
74
88
|
test_files: []
|
75
89
|
|