Skip to content

Commit f77f6fd

Browse files
committed
1. add in last of test suites txn, datatypes
1 parent fe7305e commit f77f6fd

File tree

5 files changed

+162
-112
lines changed

5 files changed

+162
-112
lines changed

lib/ConnectionWrapper.js

+5-32
Original file line numberDiff line numberDiff line change
@@ -115,46 +115,23 @@ function ConnectionWrapper (driver, defCb, name)
115115

116116
function beginTransaction(callback) {
117117

118-
function onBeginTxn(err) {
119-
callback(err);
120-
driverMgr.nextOp();
121-
}
122-
123118
callback = callback || defaultCallback;
124-
var op = makeOp(function (callback) {
125-
native.beginTransaction(callback)
126-
}, [onBeginTxn]);
127-
driverMgr.execQueueOp(op);
119+
120+
driverMgr.beginTransaction(callback);
128121
}
129122

130123
function commit(callback) {
131124

132-
function onCommit(err) {
133-
callback(err);
134-
driverMgr.nextOp();
135-
}
136-
137125
callback = callback || defaultCallback;
138126

139-
var op = makeOp(function (callback) {
140-
native.commit(callback);
141-
}, [onCommit]);
142-
driverMgr.execQueueOp(op);
127+
driverMgr.commit(callback);
143128
}
144129

145130
function rollback(callback) {
146131

147-
function onRollback(err) {
148-
callback(err);
149-
driverMgr.nextOp();
150-
}
151-
152132
callback = callback || defaultCallback;
153133

154-
var op = makeOp(function (callback) {
155-
native.rollback(callback);
156-
}, [onRollback]);
157-
driverMgr.execQueueOp(op);
134+
driverMgr.rollback(callback);
158135
}
159136

160137
// inform driver to prepare the sql statement and reserve it for repeated use with parameters.
@@ -229,13 +206,9 @@ function ConnectionWrapper (driver, defCb, name)
229206
function onPrepare(err, meta) {
230207
var prepared = new PreparedStatement(driverMgr, queryOrObj.query_str, inst, notify, meta);
231208
chunky.callback(err, prepared);
232-
driverMgr.nextOp();
233209
}
234210

235-
var op = makeOp(function (callback) {
236-
driverMgr.prepare(notify, queryOrObj, callback);
237-
}, [onPrepare]);
238-
driverMgr.execQueueOp(op);
211+
driverMgr.prepare(notify, queryOrObj, onPrepare);
239212

240213
return notify;
241214
}

lib/driverMgr.js

+56-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function DriverMgr(sql, queue) {
107107
execQueueOp(op);
108108
}
109109

110-
function prepare(notify, queryOrObj, callback) {
110+
function prepareQuery(notify, queryOrObj, callback) {
111111
native.prepare(notify.getQueryId(), queryOrObj, callback);
112112
}
113113

@@ -489,6 +489,61 @@ function DriverMgr(sql, queue) {
489489
execQueueOp(op);
490490
}
491491

492+
function beginTransaction(callback) {
493+
494+
function onBegin(err) {
495+
callback(err);
496+
nextOp();
497+
}
498+
499+
var op = makeOp(function (cb) {
500+
native.beginTransaction(cb)
501+
}, [onBegin]);
502+
execQueueOp(op);
503+
}
504+
505+
function rollback(callback) {
506+
507+
function onRollback(err) {
508+
callback(err);
509+
nextOp();
510+
}
511+
512+
var op = makeOp(function (cb) {
513+
native.rollback(cb);
514+
}, [onRollback]);
515+
execQueueOp(op);
516+
}
517+
518+
function commit(callback) {
519+
520+
function onCommit(err) {
521+
callback(err);
522+
nextOp();
523+
}
524+
525+
var op = makeOp(function (cb) {
526+
native.commit(cb);
527+
}, [onCommit]);
528+
execQueueOp(op);
529+
}
530+
531+
function prepare(notify, queryOrObj, callback) {
532+
533+
function onPrepare(err, meta) {
534+
callback(err, meta);
535+
nextOp();
536+
}
537+
538+
var op = makeOp(function (cb) {
539+
prepareQuery(notify, queryOrObj, cb);
540+
}, [onPrepare]);
541+
execQueueOp(op);
542+
}
543+
544+
this.commit = commit;
545+
this.rollback = rollback;
546+
this.beginTransaction = beginTransaction;
492547
this.prepare = prepare;
493548
this.routeStatementError = routeStatementError;
494549
this.nextOp = nextOp;

test/concurrent.js

+22-15
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,37 @@
1-
var sql = require('../'),
2-
assert = require('assert'),
1+
var assert = require('assert'),
32
supp = require('../demo-support'),
4-
config = require('./test-config'),
53
fs = require('fs');
64

75
suite('concurrent', function () {
86

97
var theConnection;
10-
this.timeout(20 * 1000);
11-
var support = new supp.DemoSupport(sql, conn_str);
12-
var async = new support.Async();
13-
var conn_str = config.conn_str;
8+
this.timeout(20000);
9+
var conn_str;
10+
var support;
11+
var async;
12+
var helper;
13+
14+
var sql = global.native_sql;
1415

1516
setup(function (test_done) {
16-
sql.open(conn_str, function (err, conn) {
17-
theConnection = conn;
18-
assert.ifError(err);
19-
assert.ifError(err);
20-
test_done();
21-
});
17+
supp.GlobalConn.init(sql, function(co) {
18+
conn_str = co.conn_str;
19+
support = co.support;
20+
async = co.async;
21+
helper = co.helper;
22+
helper.setVerbose(false);
23+
sql.open(conn_str, function (err, new_conn) {
24+
assert.ifError(err);
25+
theConnection = new_conn;
26+
test_done();
27+
});
28+
})
2229
});
2330

2431
teardown(function (done) {
25-
theConnection.close(function () {
32+
theConnection.close(function() {
2633
done();
27-
})
34+
});
2835
});
2936

3037
var open = function (done) {

test/datatypes.js

+29-22
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,46 @@
1616
// See the License for the specific language governing permissions and
1717
// limitations under the License.
1818
//---------------------------------------------------------------------------------------------------------------------------------
19-
var sql = require('../');
2019
var assert = require('assert');
21-
var config = require('./test-config');
2220
var commonTestFns = require('./CommonTestFunctions');
2321
var util = require('util');
2422
var supp = require('../demo-support');
2523

2624
suite('datatypes', function () {
27-
var theConnection;
28-
var tablename = "types_table";
29-
var testname = 'not set yet';
30-
this.timeout(45000);
31-
var conn_str = config.conn_str;
32-
var support = new supp.DemoSupport(sql, conn_str);
33-
var async = new support.Async();
34-
35-
setup(function (test_done) {
36-
commonTestFns.debugComments("\ncalling sql.open(...) with conn_str= \" " + conn_str + "\" \n");
25+
var tablename = "types_table";
26+
var testname = 'not set yet';
27+
28+
var theConnection;
29+
this.timeout(20000);
30+
var conn_str;
31+
var support;
32+
var async;
33+
var helper;
34+
var driver;
35+
36+
var sql = global.native_sql;
37+
38+
setup(function (test_done) {
39+
supp.GlobalConn.init(sql, function(co) {
40+
conn_str = co.conn_str;
41+
driver = co.driver;
42+
support = co.support;
43+
async = co.async;
44+
helper = co.helper;
45+
helper.setVerbose(false);
3746
sql.open(conn_str, function (err, new_conn) {
3847
assert.ifError(err);
3948
theConnection = new_conn;
4049
test_done();
4150
});
42-
});
43-
44-
/*
45-
teardown(function (done) {
51+
})
52+
});
4653

47-
c.close(function (err) {
48-
assert.ifError(err);
49-
done();
50-
});
51-
});*/
54+
teardown(function (done) {
55+
theConnection.close(function() {
56+
done();
57+
});
58+
});
5259

5360
testname = 'test 001 - verify functionality of data type \'smalldatetime\', fetch as date';
5461
test(testname, function (done) {
@@ -1004,7 +1011,7 @@ suite('datatypes', function () {
10041011
[2, testdata2Expected]]
10051012
};
10061013
var tsql = "SELECT * FROM types_table ORDER BY id";
1007-
var expectedError = "[Microsoft][" + config.driver + "][SQL Server]Arithmetic overflow";
1014+
var expectedError = "[Microsoft][" + driver + "][SQL Server]Arithmetic overflow";
10081015

10091016
if (commonTestFns.SKIP_FAILING_HANGING_TEST_CASES == true) {
10101017
done();

0 commit comments

Comments
 (0)