etest 0.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|