jettywrapper 0.0.3 → 0.0.4
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/.rvmrc +1 -1
- data/README.textile +32 -1
- data/lib/jettywrapper.rb +11 -12
- data/lib/jettywrapper/version.rb +1 -1
- data/spec/lib/jettywrapper_spec.rb +10 -0
- metadata +26 -26
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use 1.8.7@
|
1
|
+
rvm use ree-1.8.7@jettywrapper --create
|
data/README.textile
CHANGED
@@ -13,7 +13,7 @@ bc..
|
|
13
13
|
:jetty_home => File.expand_path(File.dirname(__FILE__) + '/../../jetty'),
|
14
14
|
:quiet => false,
|
15
15
|
:jetty_port => 8983,
|
16
|
-
:solr_home => File.expand_path(File.dirname(__FILE__) + '/../../jetty/solr'),
|
16
|
+
:solr_home => File.expand_path(File.dirname(__FILE__) + '/../../jetty/solr/test-core'),
|
17
17
|
:fedora_home => File.expand_path(File.dirname(__FILE__) + '/../../jetty/fedora/default'),
|
18
18
|
:startup_wait => 30
|
19
19
|
}
|
@@ -29,5 +29,36 @@ bc..
|
|
29
29
|
raise "test failures: #{error}" if error
|
30
30
|
else
|
31
31
|
system("rake hudson RAILS_ENV=test")
|
32
|
+
fail unless $?.success?
|
32
33
|
end
|
33
34
|
end
|
35
|
+
|
36
|
+
h2. Important note on creating nested rake tasks:
|
37
|
+
|
38
|
+
When creating your rake tasks, keep in mind that rake does not by default propogate up errors raised from system commands.
|
39
|
+
If you use system(), the return value will be false for any exit codes other than 0. If you use backticks or %x(), you must use $? to check the exit status code
|
40
|
+
after the call. Failure to do so could result in false successes.
|
41
|
+
|
42
|
+
h3. Example 1: Checking return value from system()
|
43
|
+
|
44
|
+
bc..
|
45
|
+
#retval should return false for non-zero exit codes
|
46
|
+
retval = system("rake hudson RAILS_ENV=test")
|
47
|
+
fail unless retval
|
48
|
+
|
49
|
+
h3. Example 2: Checking $? with system()
|
50
|
+
|
51
|
+
bc..
|
52
|
+
system("rake hudson RAILS_ENV=test")
|
53
|
+
raise "rake hudson encoutered errors" unless $?.success?
|
54
|
+
|
55
|
+
h3. Example 3: An alternative method: using %x[] or backticks with $?
|
56
|
+
|
57
|
+
bc..
|
58
|
+
# %x[] or `` will return everything sent to stdout from the command
|
59
|
+
puts %x[cucumber --tags ~@pending --tags ~@overwritten features]
|
60
|
+
raise "Cucumber failed." unless $?.success?
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
data/lib/jettywrapper.rb
CHANGED
@@ -5,6 +5,7 @@ class Jettywrapper
|
|
5
5
|
require 'singleton'
|
6
6
|
include Singleton
|
7
7
|
|
8
|
+
attr_accessor :pid # If Jettywrapper is running, what pid is it running as?
|
8
9
|
attr_accessor :port # What port should jetty start on? Default is 8888
|
9
10
|
attr_accessor :jetty_home # Where is jetty located?
|
10
11
|
attr_accessor :startup_wait # After jetty starts, how long to wait until starting the tests?
|
@@ -13,9 +14,9 @@ class Jettywrapper
|
|
13
14
|
attr_accessor :fedora_home # Where is fedora located? Default is jetty_home/fedora
|
14
15
|
|
15
16
|
# configure the singleton with some defaults
|
16
|
-
def initialize
|
17
|
-
|
18
|
-
end
|
17
|
+
# def initialize
|
18
|
+
# @pid = nil
|
19
|
+
# end
|
19
20
|
|
20
21
|
class << self
|
21
22
|
|
@@ -109,8 +110,9 @@ class Jettywrapper
|
|
109
110
|
if RUBY_PLATFORM =~ /mswin32/
|
110
111
|
require 'win32/process'
|
111
112
|
|
112
|
-
# start
|
113
|
+
# start jetty for windows
|
113
114
|
def platform_specific_start
|
115
|
+
puts "Starting Jetty on windows"
|
114
116
|
Dir.chdir(@jetty_home) do
|
115
117
|
@pid = Process.create(
|
116
118
|
:app_name => jetty_command,
|
@@ -122,7 +124,7 @@ class Jettywrapper
|
|
122
124
|
end
|
123
125
|
end
|
124
126
|
|
125
|
-
# stop
|
127
|
+
# stop jetty for windows
|
126
128
|
def platform_specific_stop
|
127
129
|
Process.kill(1, @pid)
|
128
130
|
Process.wait
|
@@ -133,21 +135,18 @@ class Jettywrapper
|
|
133
135
|
raise 'JRuby requires that you start solr manually, then run "rake spec" or "rake features"' if defined?(JRUBY_VERSION)
|
134
136
|
end
|
135
137
|
|
136
|
-
# start
|
138
|
+
# start jetty for *nix
|
137
139
|
def platform_specific_start
|
138
|
-
|
139
|
-
jruby_raise_error?
|
140
|
-
|
141
|
-
puts self.inspect
|
140
|
+
jruby_raise_error?
|
142
141
|
Dir.chdir(@jetty_home) do
|
143
|
-
|
142
|
+
self.pid = fork do
|
144
143
|
STDERR.close if @quiet
|
145
144
|
exec jetty_command
|
146
145
|
end
|
147
146
|
end
|
148
147
|
end
|
149
148
|
|
150
|
-
# stop
|
149
|
+
# stop jetty for *nix
|
151
150
|
def platform_specific_stop
|
152
151
|
jruby_raise_error?
|
153
152
|
Process.kill('TERM', @pid)
|
data/lib/jettywrapper/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
GEMVERSION = "0.0.
|
1
|
+
GEMVERSION = "0.0.4"
|
@@ -64,6 +64,16 @@ module Hydra
|
|
64
64
|
|
65
65
|
end
|
66
66
|
|
67
|
+
it "has a pid if it has been started" do
|
68
|
+
jetty_params = {
|
69
|
+
:jetty_home => '/tmp'
|
70
|
+
}
|
71
|
+
ts = Jettywrapper.configure(jetty_params)
|
72
|
+
Jettywrapper.any_instance.stubs(:fork).returns(5454)
|
73
|
+
ts.start
|
74
|
+
ts.pid.should eql(5454)
|
75
|
+
end
|
76
|
+
|
67
77
|
end # end of instantiation context
|
68
78
|
|
69
79
|
context "wrapping a task" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jettywrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bess Sadler
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-06-21 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -28,10 +28,10 @@ dependencies:
|
|
28
28
|
segments:
|
29
29
|
- 0
|
30
30
|
version: "0"
|
31
|
-
type: :development
|
32
31
|
requirement: *id001
|
33
|
-
|
32
|
+
type: :development
|
34
33
|
name: ruby-debug
|
34
|
+
prerelease: false
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
37
37
|
none: false
|
@@ -42,10 +42,10 @@ dependencies:
|
|
42
42
|
segments:
|
43
43
|
- 0
|
44
44
|
version: "0"
|
45
|
-
type: :development
|
46
45
|
requirement: *id002
|
47
|
-
|
46
|
+
type: :development
|
48
47
|
name: ruby-debug-base
|
48
|
+
prerelease: false
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
- 2
|
58
58
|
- 0
|
59
59
|
version: "2.0"
|
60
|
-
type: :development
|
61
60
|
requirement: *id003
|
62
|
-
|
61
|
+
type: :development
|
63
62
|
name: rspec
|
63
|
+
prerelease: false
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
66
66
|
none: false
|
@@ -73,10 +73,10 @@ dependencies:
|
|
73
73
|
- 0
|
74
74
|
- 0
|
75
75
|
version: 2.0.0
|
76
|
-
type: :development
|
77
76
|
requirement: *id004
|
78
|
-
|
77
|
+
type: :development
|
79
78
|
name: rspec-rails
|
79
|
+
prerelease: false
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
82
82
|
none: false
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
segments:
|
88
88
|
- 0
|
89
89
|
version: "0"
|
90
|
-
type: :development
|
91
90
|
requirement: *id005
|
92
|
-
|
91
|
+
type: :development
|
93
92
|
name: mocha
|
93
|
+
prerelease: false
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
@@ -103,10 +103,10 @@ dependencies:
|
|
103
103
|
- 8
|
104
104
|
- 5
|
105
105
|
version: 0.8.5
|
106
|
-
type: :development
|
107
106
|
requirement: *id006
|
108
|
-
|
107
|
+
type: :development
|
109
108
|
name: cucumber
|
109
|
+
prerelease: false
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
111
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
112
112
|
none: false
|
@@ -117,10 +117,10 @@ dependencies:
|
|
117
117
|
segments:
|
118
118
|
- 0
|
119
119
|
version: "0"
|
120
|
-
type: :development
|
121
120
|
requirement: *id007
|
122
|
-
|
121
|
+
type: :development
|
123
122
|
name: cucumber-rails
|
123
|
+
prerelease: false
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
126
126
|
none: false
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
segments:
|
132
132
|
- 0
|
133
133
|
version: "0"
|
134
|
-
type: :development
|
135
134
|
requirement: *id008
|
136
|
-
|
135
|
+
type: :development
|
137
136
|
name: gherkin
|
137
|
+
prerelease: false
|
138
138
|
- !ruby/object:Gem::Dependency
|
139
139
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
140
140
|
none: false
|
@@ -145,10 +145,10 @@ dependencies:
|
|
145
145
|
segments:
|
146
146
|
- 0
|
147
147
|
version: "0"
|
148
|
-
type: :development
|
149
148
|
requirement: *id009
|
150
|
-
|
149
|
+
type: :development
|
151
150
|
name: rcov
|
151
|
+
prerelease: false
|
152
152
|
- !ruby/object:Gem::Dependency
|
153
153
|
version_requirements: &id010 !ruby/object:Gem::Requirement
|
154
154
|
none: false
|
@@ -161,10 +161,10 @@ dependencies:
|
|
161
161
|
- 6
|
162
162
|
- 5
|
163
163
|
version: 0.6.5
|
164
|
-
type: :development
|
165
164
|
requirement: *id010
|
166
|
-
|
165
|
+
type: :development
|
167
166
|
name: yard
|
167
|
+
prerelease: false
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
version_requirements: &id011 !ruby/object:Gem::Requirement
|
170
170
|
none: false
|
@@ -175,10 +175,10 @@ dependencies:
|
|
175
175
|
segments:
|
176
176
|
- 0
|
177
177
|
version: "0"
|
178
|
-
type: :development
|
179
178
|
requirement: *id011
|
180
|
-
|
179
|
+
type: :development
|
181
180
|
name: RedCloth
|
181
|
+
prerelease: false
|
182
182
|
description: Spin up a jetty instance (e.g., the one at https://github.com/projecthydra/hydra-jetty) and wrap test in it. This lets us run tests against a real copy of solr and fedora.
|
183
183
|
email:
|
184
184
|
- bess@stanford.edu
|