Skip to content

Commit 900e3fc

Browse files
committed
fix: stop when dropped
1 parent f9eef12 commit 900e3fc

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/test_util.rs

+26-1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ pub struct Nginx {
8686
http_uwsgi_temp_path: PathBuf,
8787
http_scgi_temp_path: PathBuf,
8888
// here all path are absolute
89+
status: Status,
90+
}
91+
92+
#[derive(PartialEq, Eq)]
93+
enum Status {
94+
Unknown,
95+
Running,
96+
Stopped,
8997
}
9098

9199
/// nginx harness builder
@@ -179,6 +187,7 @@ impl NginxBuilder {
179187
http_fastcgi_temp_path,
180188
http_uwsgi_temp_path,
181189
http_scgi_temp_path,
190+
status: Status::Unknown,
182191
}
183192
}
184193
}
@@ -202,12 +211,19 @@ impl Nginx {
202211

203212
/// complete stop the nginx binary
204213
pub fn stop(&mut self) -> Result<Output> {
214+
self.status = Status::Stopped;
205215
self.cmd(&["-s", "stop"])
206216
}
207217

208218
/// start the nginx binary
209219
pub fn start(&mut self) -> Result<Output> {
210-
self.cmd(&[])
220+
let output = self.cmd(&[]);
221+
if let Ok(output) = &output {
222+
if output.status.success() {
223+
self.status = Status::Running;
224+
}
225+
}
226+
output
211227
}
212228

213229
/// make sure we stop existing nginx and start new master process
@@ -336,3 +352,12 @@ impl Nginx {
336352
&self.http_scgi_temp_path
337353
}
338354
}
355+
356+
impl Drop for Nginx {
357+
fn drop(&mut self) {
358+
// exec stop if running or unknown
359+
if self.status != Status::Stopped {
360+
let _ = self.stop();
361+
}
362+
}
363+
}

0 commit comments

Comments
 (0)