Skip to content

Commit ce35433

Browse files
author
Kyle Smith
committed
Memory management: added test for duplicating time
1 parent cdc5767 commit ce35433

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

test/tests/signature.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var assert = require("assert");
22
var path = require("path");
33
var local = path.join.bind(path, __dirname);
44

5+
var garbageCollect = require("../utils/garbage_collect.js");
56
var exec = require("../../utils/execPromise");
67

78
describe("Signature", function() {
@@ -83,4 +84,26 @@ describe("Signature", function() {
8384
});
8485
});
8586
});
87+
88+
it("duplicates time", function() {
89+
garbageCollect();
90+
var Time = NodeGit.Time;
91+
var startSelfFreeingCount = Time.getSelfFreeingInstanceCount();
92+
var startNonSelfFreeingCount =
93+
Time.getNonSelfFreeingConstructedCount();
94+
var time = Signature.now(name, email).when();
95+
96+
garbageCollect();
97+
var endSelfFreeingCount = Time.getSelfFreeingInstanceCount();
98+
var endNonSelfFreeingCount = Time.getNonSelfFreeingConstructedCount();
99+
// we should get one duplicated, self-freeing time
100+
assert.equal(startSelfFreeingCount + 1, endSelfFreeingCount);
101+
assert.equal(startNonSelfFreeingCount, endNonSelfFreeingCount);
102+
103+
time = null;
104+
garbageCollect();
105+
endSelfFreeingCount = Time.getSelfFreeingInstanceCount();
106+
// the self-freeing time should get freed
107+
assert.equal(startSelfFreeingCount, endSelfFreeingCount);
108+
});
86109
});

0 commit comments

Comments
 (0)