From 6d79572a3aecd1081c110b631d9a39da9059d679 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 17 Mar 2014 10:43:55 +0100 Subject: [PATCH] Add pending test for backend crash (#135) --- test/acceptance/backend_crash.js | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 test/acceptance/backend_crash.js diff --git a/test/acceptance/backend_crash.js b/test/acceptance/backend_crash.js new file mode 100644 index 00000000..ae75f882 --- /dev/null +++ b/test/acceptance/backend_crash.js @@ -0,0 +1,69 @@ +require('../helper'); +require('../support/assert'); + +var assert = require('assert') + , App = require(global.settings.app_root + '/app/controllers/app') + , querystring = require('querystring') + , _ = require('underscore') + , Step = require('step') + , net = require('net') + ; + +var sql_server_port = 5556; +var sql_server = net.createServer(function(c) { + console.log('server connected'); + c.destroy(); + console.log('server socket destroyed.'); + sql_server.close(function() { + console.log('server closed'); + }); +}); + +suite('backend crash', function() { + +suiteSetup(function(done){ + sql_server.listen(sql_server_port, done); +}); + +// See https://github.com/CartoDB/CartoDB-SQL-API/issues/135 +test.skip('does not hang server', function(done){ +//console.log("settings:"); console.dir(global.settings); + var db_host_backup = global.settings.db_host; + var db_port_backup = global.settings.db_port; + global.settings.db_host = 'localhost'; + global.settings.db_port = sql_server_port; + var app = App(); + Step( + function sendQuery() { + var next = this; + assert.response(app, { + url: '/api/v1/sql?q=SELECT+1', + method: 'GET', + headers: {host: 'vizzuality.localhost' } + },{}, function(res, err) { + next(err, res); + }); + }, + function checkResponse(err, res) { + assert.ok(err); + assert.ok(err.message.match(/hang up/), err); + return null; + }, + function finish(err) { + global.settings.db_host = db_host_backup; + global.settings.db_port = db_port_backup; + done(err); + } + ); +}); + +suiteTeardown(function(done) { + try { + sql_server.close(done); + } catch (er) { + console.log(er); + done(); // error expected as server is probably closed already + } +}); + +});