From 08eccf340ca6f79c881a81ce72b2b6ab78894d72 Mon Sep 17 00:00:00 2001 From: Oleg Efimov Date: Sun, 8 Apr 2012 23:01:45 +0400 Subject: [PATCH] Add slow nested tests for querySend, refs #116 --- ...test-nested-connect.js => test-connect.js} | 0 ...st-nested-fetchAll.js => test-fetchAll.js} | 0 .../{test-nested-query.js => test-query.js} | 6 +- tests/slow/test-querySend.js | 130 ++++++++++++++++++ 4 files changed, 133 insertions(+), 3 deletions(-) rename tests/slow/{test-nested-connect.js => test-connect.js} (100%) rename tests/slow/{test-nested-fetchAll.js => test-fetchAll.js} (100%) rename tests/slow/{test-nested-query.js => test-query.js} (95%) create mode 100644 tests/slow/test-querySend.js diff --git a/tests/slow/test-nested-connect.js b/tests/slow/test-connect.js similarity index 100% rename from tests/slow/test-nested-connect.js rename to tests/slow/test-connect.js diff --git a/tests/slow/test-nested-fetchAll.js b/tests/slow/test-fetchAll.js similarity index 100% rename from tests/slow/test-nested-fetchAll.js rename to tests/slow/test-fetchAll.js diff --git a/tests/slow/test-nested-query.js b/tests/slow/test-query.js similarity index 95% rename from tests/slow/test-nested-query.js rename to tests/slow/test-query.js index f93c96f..0d075ab 100644 --- a/tests/slow/test-nested-query.js +++ b/tests/slow/test-query.js @@ -22,7 +22,7 @@ exports.Setup = function (test) { test.done(); }; -exports.QueriesNested = function (test) { +exports.QueryNested = function (test) { test.expect(2); var @@ -69,7 +69,7 @@ exports.QueriesNested = function (test) { test_order += "f"; }; -exports.ManyQueriesNested = function (test) { +exports.QueryNestedDeeper = function (test) { test.expect(1); var @@ -100,7 +100,7 @@ exports.ManyQueriesNested = function (test) { helper(); }; -exports.ManyQueriesInLoop = function (test) { +exports.QueryInLoop = function (test) { test.expect(1); var diff --git a/tests/slow/test-querySend.js b/tests/slow/test-querySend.js new file mode 100644 index 0000000..812c6e6 --- /dev/null +++ b/tests/slow/test-querySend.js @@ -0,0 +1,130 @@ +/* +Copyright by Oleg Efimov and node-mysql-libmysqlclient contributors +See contributors list in README + +See license text in LICENSE file +*/ + +// Load configuration +var cfg = require('../config'); + +exports.Setup = function (test) { + test.expect(0); + + var conn = cfg.mysql_libmysqlclient.createConnectionSync(cfg.host, cfg.user, cfg.password, cfg.database); + + conn.querySync("DROP TABLE IF EXISTS " + cfg.test_table + ";"); + conn.querySync("CREATE TABLE " + cfg.test_table + + " (number INT(8) NOT NULL) ENGINE=MEMORY;"); + + conn.closeSync(); + + test.done(); +}; + +exports.QuerySendNested = function (test) { + test.expect(2); + + var + conn = cfg.mysql_libmysqlclient.createConnectionSync(cfg.host, cfg.user, cfg.password, cfg.database), + test_result, + test_order = ""; + + test_order += "s"; + + conn.querySend("INSERT INTO " + cfg.test_table + " (number) VALUES ('1');", function (err, result) { + if (err) { + throw err; + } + + test_order += "1"; + + conn.querySend("INSERT INTO " + cfg.test_table + " (number) VALUES ('2');", function (err, result) { + if (err) { + throw err; + } + + test_order += "2"; + + conn.querySend("INSERT INTO " + cfg.test_table + " (number) VALUES ('3');", function (err, result) { + if (err) { + throw err; + } + + test_order += "3"; + + (function () { + test.equals(test_order, "sf123"); + + test_result = conn.querySync("SELECT number FROM " + cfg.test_table + ";").fetchAllSync(); + test.same(test_result, [{number: 1}, {number: 2}, {number: 3}]); + + conn.closeSync(); + test.done(); + }()); + }); + }); + }); + + test_order += "f"; +}; + +exports.QuerySendNestedDeeper = function (test) { + test.expect(1); + + var + conn = cfg.mysql_libmysqlclient.createConnectionSync(cfg.host, cfg.user, cfg.password, cfg.database), + helper, + test_result, + i = 0; + + helper = function () { + i += 1; + if (i <= cfg.slow_inserts_count) { + conn.querySend("INSERT INTO " + cfg.test_table + " (number) VALUES ('" + i + "');", function (err, result) { + if (err) { + throw err; + } + + helper(); + }); + } else { + test_result = conn.querySync("SELECT COUNT(number) AS c FROM " + cfg.test_table + ";").fetchAllSync()[0].c; + test.equals(test_result, cfg.slow_inserts_count + 3); + + conn.closeSync(); + test.done(); + } + }; + + helper(); +}; + +/* +exports.QuerySendInLoop = function (test) { + test.expect(1); + + var + conn = cfg.mysql_libmysqlclient.createConnectionSync(cfg.host, cfg.user, cfg.password, cfg.database), + test_result, + i = 0, ci = 0; + + for (i = 0; i < cfg.slow_inserts_count; i += 1) { + conn.querySend("INSERT INTO " + cfg.test_table + " (number) VALUES ('" + i + "');", function (err, result) { + if (err) { + throw err; + } + + ci += 1; + + if (ci === cfg.slow_inserts_count) { + test_result = conn.querySync("SELECT COUNT(number) AS c FROM " + cfg.test_table + ";").fetchAllSync()[0].c; + test.equals(test_result, 2 * cfg.slow_inserts_count + 3); + + conn.closeSync(); + test.done(); + } + }); + } +}; +*/