test-domains.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var assert = require('assert');
  2. var domain = require('domain');
  3. var d1 = domain.create();
  4. var d2 = domain.create();
  5. var d3 = domain.create();
  6. var d4 = domain.create();
  7. var err1, err2, err3, err4;
  8. d1.run(function() {
  9. var common = require('../../common');
  10. var connection = common.createConnection();
  11. var assert = require('assert');
  12. d2.run(function() {
  13. connection.query('SELECT 1', function(err, _rows, _fields) {
  14. if (err) throw err;
  15. throw new Error('inside domain 2');
  16. });
  17. });
  18. d3.run(function() {
  19. connection.execute('SELECT 1', function(err, _rows, _fields) {
  20. connection.end();
  21. if (err) throw err;
  22. throw new Error('inside domain 3');
  23. });
  24. });
  25. d4.run(function() {
  26. connection.ping(function() {
  27. throw new Error('inside domain 4');
  28. });
  29. });
  30. setTimeout(function() {
  31. throw new Error('inside domain 1');
  32. }, 100);
  33. d2.on('error', function(err) {
  34. err2 = err;
  35. });
  36. d3.on('error', function(err) {
  37. err3 = err;
  38. });
  39. d4.on('error', function(err) {
  40. err4 = err;
  41. });
  42. });
  43. d1.on('error', function(err) {
  44. err1 = err;
  45. });
  46. process.on('exit', function() {
  47. assert.equal(''+err1, 'Error: inside domain 1')
  48. assert.equal(''+err2, 'Error: inside domain 2')
  49. assert.equal(''+err3, 'Error: inside domain 3')
  50. assert.equal(''+err4, 'Error: inside domain 4')
  51. });