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")); } }