Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit bab555a

Browse filesBrowse files
evanlucasjasnell
authored andcommitted
test: speed up stringbytes-external test
test-stringbytes-external tends to take quite a while on slower hardware. A lot of the time is taken by creating a new buffer that is very large. The improvements come from reusing the same buffer. PR-URL: #3005 Reviewed-By: Brian White <mscdex@mscdex.net> Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io>
1 parent ddf2583 commit bab555a
Copy full SHA for bab555a

File tree

Expand file treeCollapse file tree

1 file changed

+21
-18
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+21
-18
lines changed
Open diff view settings
Collapse file

‎test/parallel/test-stringbytes-external.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-stringbytes-external.js
+21-18Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -113,63 +113,66 @@ var PRE_3OF4_APEX = Math.ceil((EXTERN_APEX / 4) * 3) - RADIOS;
113113
// v8::String::kMaxLength defined in v8.h
114114
const kStringMaxLength = process.binding('buffer').kStringMaxLength;
115115

116-
assert.throws(function() {
117-
new Buffer(kStringMaxLength + 1).toString();
118-
}, /toString failed|Invalid array buffer length/);
119-
120116
try {
121-
new Buffer(kStringMaxLength * 4);
117+
new Buffer(kStringMaxLength * 3);
122118
} catch(e) {
123119
assert.equal(e.message, 'Invalid array buffer length');
124120
console.log(
125121
'1..0 # Skipped: intensive toString tests due to memory confinements');
126122
return;
127123
}
128124

125+
const buf0 = new Buffer(kStringMaxLength * 2 + 2);
126+
const buf1 = buf0.slice(0, kStringMaxLength + 1);
127+
const buf2 = buf0.slice(0, kStringMaxLength);
128+
const buf3 = buf0.slice(0, kStringMaxLength + 2);
129+
130+
assert.throws(function() {
131+
buf1.toString();
132+
}, /toString failed|Invalid array buffer length/);
133+
129134
assert.throws(function() {
130-
new Buffer(kStringMaxLength + 1).toString('ascii');
135+
buf1.toString('ascii');
131136
}, /toString failed/);
132137

133138
assert.throws(function() {
134-
new Buffer(kStringMaxLength + 1).toString('utf8');
139+
buf1.toString('utf8');
135140
}, /toString failed/);
136141

137142
assert.throws(function() {
138-
new Buffer(kStringMaxLength * 2 + 2).toString('utf16le');
143+
buf0.toString('utf16le');
139144
}, /toString failed/);
140145

141146
assert.throws(function() {
142-
new Buffer(kStringMaxLength + 1).toString('binary');
147+
buf1.toString('binary');
143148
}, /toString failed/);
144149

145150
assert.throws(function() {
146-
new Buffer(kStringMaxLength + 1).toString('base64');
151+
buf1.toString('base64');
147152
}, /toString failed/);
148153

149154
assert.throws(function() {
150-
new Buffer(kStringMaxLength + 1).toString('hex');
155+
buf1.toString('hex');
151156
}, /toString failed/);
152157

153-
var maxString = new Buffer(kStringMaxLength).toString();
158+
var maxString = buf2.toString();
154159
assert.equal(maxString.length, kStringMaxLength);
155160
// Free the memory early instead of at the end of the next assignment
156161
maxString = undefined;
157162

158-
maxString = new Buffer(kStringMaxLength).toString('binary');
163+
maxString = buf2.toString('binary');
159164
assert.equal(maxString.length, kStringMaxLength);
160165
maxString = undefined;
161166

162-
maxString =
163-
new Buffer(kStringMaxLength + 1).toString('binary', 1);
167+
maxString = buf1.toString('binary', 1);
164168
assert.equal(maxString.length, kStringMaxLength);
165169
maxString = undefined;
166170

167-
maxString =
168-
new Buffer(kStringMaxLength + 1).toString('binary', 0, kStringMaxLength);
171+
maxString = buf1.toString('binary', 0, kStringMaxLength);
169172
assert.equal(maxString.length, kStringMaxLength);
170173
maxString = undefined;
171174

172-
maxString = new Buffer(kStringMaxLength + 2).toString('utf16le');
175+
maxString = buf3.toString('utf16le');
173176
assert.equal(maxString.length, (kStringMaxLength + 2) / 2);
174177
maxString = undefined;
175178
})();

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.