test/cxx/ApplicationPool2/SmartSpawnerTest.cpp in passenger-4.0.0.rc6 vs test/cxx/ApplicationPool2/SmartSpawnerTest.cpp in passenger-4.0.1
- old
+ new
@@ -30,11 +30,10 @@
}
~ApplicationPool2_SmartSpawnerTest() {
setLogLevel(DEFAULT_LOG_LEVEL);
unlink("stub/wsgi/passenger_wsgi.pyc");
- Process::maybeShutdown(process);
PipeWatcher::onData = PipeWatcher::DataCallback();
}
shared_ptr<SmartSpawner> createSpawner(const Options &options, bool exitImmediately = false) {
char buf[PATH_MAX + 1];
@@ -77,19 +76,21 @@
Options options = createOptions();
options.appRoot = "stub/rack";
options.startCommand = "ruby\1" "start.rb";
options.startupFile = "start.rb";
shared_ptr<SmartSpawner> spawner = createSpawner(options);
- spawner->spawn(options)->shutdown();
+ process = spawner->spawn(options);
+ process->requiresShutdown = false;
kill(spawner->getPreloaderPid(), SIGTERM);
// Give it some time to exit.
usleep(300000);
// No exception at next spawn.
setLogLevel(-1);
- spawner->spawn(options)->shutdown();
+ process = spawner->spawn(options);
+ process->requiresShutdown = false;
}
TEST_METHOD(81) {
// If the preloader still crashes after the restart then
// SmartSpawner will throw an exception.
@@ -98,11 +99,12 @@
options.startCommand = "ruby\1" "start.rb";
options.startupFile = "start.rb";
setLogLevel(-1);
shared_ptr<SmartSpawner> spawner = createSpawner(options, true);
try {
- spawner->spawn(options)->shutdown();
+ process = spawner->spawn(options);
+ process->requiresShutdown = false;
fail("SpawnException expected");
} catch (const SpawnException &) {
// Pass.
}
}
@@ -128,11 +130,12 @@
options);
spawner.getConfig()->forwardStdout = false;
spawner.getConfig()->forwardStderr = false;
try {
- spawner.spawn(options)->shutdown();
+ process = spawner.spawn(options);
+ process->requiresShutdown = false;
fail("SpawnException expected");
} catch (const SpawnException &e) {
ensure_equals(e.getErrorKind(),
SpawnException::PRELOADER_STARTUP_TIMEOUT);
ensure(e.getErrorPage().find("hello world\n") != string::npos);
@@ -159,11 +162,12 @@
options);
spawner.getConfig()->forwardStdout = false;
spawner.getConfig()->forwardStderr = false;
try {
- spawner.spawn(options)->shutdown();
+ process = spawner.spawn(options);
+ process->requiresShutdown = false;
fail("SpawnException expected");
} catch (const SpawnException &e) {
ensure_equals(e.getErrorKind(),
SpawnException::PRELOADER_STARTUP_PROTOCOL_ERROR);
ensure(e.getErrorPage().find("hello world\n") != string::npos);
@@ -190,10 +194,11 @@
options);
spawner.getConfig()->forwardStdout = false;
spawner.getConfig()->forwardStderr = false;
try {
- spawner.spawn(options)->shutdown();
+ process = spawner.spawn(options);
+ process->requiresShutdown = false;
fail("SpawnException expected");
} catch (const SpawnException &e) {
ensure(containsSubstring(e["envvars"], "PASSENGER_FOO=foo\n"));
}
}