dns.tap.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. 'use strict';
  2. var dns = require('dns')
  3. , tap = require('tap')
  4. , test = tap.test
  5. , createNamespace = require('../context.js').createNamespace
  6. ;
  7. test("continuation-local state with MakeCallback and DNS module", function (t) {
  8. t.plan(11);
  9. var namespace = createNamespace('dns');
  10. namespace.run(function () {
  11. namespace.set('test', 0xabad1dea);
  12. t.test("dns.lookup", function (t) {
  13. namespace.run(function () {
  14. namespace.set('test', 808);
  15. t.equal(namespace.get('test'), 808, "state has been mutated");
  16. dns.lookup('www.newrelic.com', 4, function (err, addresses) {
  17. t.notOk(err, "lookup succeeded");
  18. t.ok(addresses.length > 0, "some results were found");
  19. t.equal(namespace.get('test'), 808,
  20. "mutated state has persisted to dns.lookup's callback");
  21. t.end();
  22. });
  23. });
  24. });
  25. t.test("dns.resolve", function (t) {
  26. namespace.run(function () {
  27. namespace.set('test', 909);
  28. t.equal(namespace.get('test'), 909, "state has been mutated");
  29. dns.resolve('newrelic.com', 'NS', function (err, addresses) {
  30. t.notOk(err, "lookup succeeded");
  31. t.ok(addresses.length > 0, "some results were found");
  32. t.equal(namespace.get('test'), 909,
  33. "mutated state has persisted to dns.resolve's callback");
  34. t.end();
  35. });
  36. });
  37. });
  38. t.test("dns.resolve4", function (t) {
  39. namespace.run(function () {
  40. namespace.set('test', 303);
  41. t.equal(namespace.get('test'), 303, "state has been mutated");
  42. dns.resolve4('www.newrelic.com', function (err, addresses) {
  43. t.notOk(err, "lookup succeeded");
  44. t.ok(addresses.length > 0, "some results were found");
  45. t.equal(namespace.get('test'), 303,
  46. "mutated state has persisted to dns.resolve4's callback");
  47. t.end();
  48. });
  49. });
  50. });
  51. t.test("dns.resolve6", function (t) {
  52. namespace.run(function () {
  53. namespace.set('test', 101);
  54. t.equal(namespace.get('test'), 101, "state has been mutated");
  55. dns.resolve6('google.com', function (err, addresses) {
  56. t.notOk(err, "lookup succeeded");
  57. t.ok(addresses.length > 0, "some results were found");
  58. t.equal(namespace.get('test'), 101,
  59. "mutated state has persisted to dns.resolve6's callback");
  60. t.end();
  61. });
  62. });
  63. });
  64. t.test("dns.resolveCname", function (t) {
  65. namespace.run(function () {
  66. namespace.set('test', 212);
  67. t.equal(namespace.get('test'), 212, "state has been mutated");
  68. dns.resolveCname('mail.newrelic.com', function (err, addresses) {
  69. t.notOk(err, "lookup succeeded");
  70. t.ok(addresses.length > 0, "some results were found");
  71. t.equal(namespace.get('test'), 212,
  72. "mutated state has persisted to dns.resolveCname's callback");
  73. t.end();
  74. });
  75. });
  76. });
  77. t.test("dns.resolveMx", function (t) {
  78. namespace.run(function () {
  79. namespace.set('test', 707);
  80. t.equal(namespace.get('test'), 707, "state has been mutated");
  81. dns.resolveMx('newrelic.com', function (err, addresses) {
  82. t.notOk(err, "lookup succeeded");
  83. t.ok(addresses.length > 0, "some results were found");
  84. t.equal(namespace.get('test'), 707,
  85. "mutated state has persisted to dns.resolveMx's callback");
  86. t.end();
  87. });
  88. });
  89. });
  90. t.test("dns.resolveNs", function (t) {
  91. namespace.run(function () {
  92. namespace.set('test', 717);
  93. t.equal(namespace.get('test'), 717, "state has been mutated");
  94. dns.resolveNs('newrelic.com', function (err, addresses) {
  95. t.notOk(err, "lookup succeeded");
  96. t.ok(addresses.length > 0, "some results were found");
  97. t.equal(namespace.get('test'), 717,
  98. "mutated state has persisted to dns.resolveNs's callback");
  99. t.end();
  100. });
  101. });
  102. });
  103. t.test("dns.resolveTxt", function (t) {
  104. namespace.run(function () {
  105. namespace.set('test', 2020);
  106. t.equal(namespace.get('test'), 2020, "state has been mutated");
  107. dns.resolveTxt('newrelic.com', function (err, addresses) {
  108. t.notOk(err, "lookup succeeded");
  109. t.ok(addresses.length > 0, "some results were found");
  110. t.equal(namespace.get('test'), 2020,
  111. "mutated state has persisted to dns.resolveTxt's callback");
  112. t.end();
  113. });
  114. });
  115. });
  116. t.test("dns.resolveSrv", function (t) {
  117. namespace.run(function () {
  118. namespace.set('test', 9000);
  119. t.equal(namespace.get('test'), 9000, "state has been mutated");
  120. dns.resolveSrv('_xmpp-server._tcp.google.com', function (err, addresses) {
  121. t.notOk(err, "lookup succeeded");
  122. t.ok(addresses.length > 0, "some results were found");
  123. t.equal(namespace.get('test'), 9000,
  124. "mutated state has persisted to dns.resolveSrv's callback");
  125. t.end();
  126. });
  127. });
  128. });
  129. t.test("dns.resolveNaptr", function (t) {
  130. // dns.resolveNaptr only in Node > 0.9.x
  131. if (!dns.resolveNaptr) return t.end();
  132. namespace.run(function () {
  133. namespace.set('test', 'Polysix');
  134. t.equal(namespace.get('test'), 'Polysix', "state has been mutated");
  135. dns.resolveNaptr('columbia.edu', function (err, addresses) {
  136. t.notOk(err, "lookup succeeded");
  137. t.ok(addresses.length > 0, "some results were found");
  138. t.equal(namespace.get('test'), 'Polysix',
  139. "mutated state has persisted to dns.resolveNaptr's callback");
  140. t.end();
  141. });
  142. });
  143. });
  144. t.test("dns.reverse", function (t) {
  145. namespace.run(function () {
  146. namespace.set('test', 1000);
  147. t.equal(namespace.get('test'), 1000, "state has been mutated");
  148. dns.reverse('204.93.223.144', function (err, addresses) {
  149. t.notOk(err, "lookup succeeded");
  150. t.ok(addresses.length > 0, "some results were found");
  151. t.equal(namespace.get('test'), 1000,
  152. "mutated state has persisted to dns.reverse's callback");
  153. t.end();
  154. });
  155. });
  156. });
  157. });
  158. });