| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent ddf2583 commit bab555a
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -113,63 +113,66 @@ var PRE_3OF4_APEX = Math.ceil((EXTERN_APEX / 4) * 3) - RADIOS; | |||
| 113 | 113 | // v8::String::kMaxLength defined in v8.h | |
| 114 | 114 | const kStringMaxLength = process.binding('buffer').kStringMaxLength; | |
| 115 | 115 | ||
| 116 | - assert.throws(function() { | ||
| 117 | - new Buffer(kStringMaxLength + 1).toString(); | ||
| 118 | - }, /toString failed|Invalid array buffer length/); | ||
| 119 | - | ||
| 120 | 116 | try { | |
| 121 | - new Buffer(kStringMaxLength * 4); | ||
| 117 | + new Buffer(kStringMaxLength * 3); | ||
| 122 | 118 | } catch(e) { | |
| 123 | 119 | assert.equal(e.message, 'Invalid array buffer length'); | |
| 124 | 120 | console.log( | |
| 125 | 121 | '1..0 # Skipped: intensive toString tests due to memory confinements'); | |
| 126 | 122 | return; | |
| 127 | 123 | } | |
| 128 | 124 | ||
| 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 | + | ||
| 129 | 134 | assert.throws(function() { | |
| 130 | - new Buffer(kStringMaxLength + 1).toString('ascii'); | ||
| 135 | + buf1.toString('ascii'); | ||
| 131 | 136 | }, /toString failed/); | |
| 132 | 137 | ||
| 133 | 138 | assert.throws(function() { | |
| 134 | - new Buffer(kStringMaxLength + 1).toString('utf8'); | ||
| 139 | + buf1.toString('utf8'); | ||
| 135 | 140 | }, /toString failed/); | |
| 136 | 141 | ||
| 137 | 142 | assert.throws(function() { | |
| 138 | - new Buffer(kStringMaxLength * 2 + 2).toString('utf16le'); | ||
| 143 | + buf0.toString('utf16le'); | ||
| 139 | 144 | }, /toString failed/); | |
| 140 | 145 | ||
| 141 | 146 | assert.throws(function() { | |
| 142 | - new Buffer(kStringMaxLength + 1).toString('binary'); | ||
| 147 | + buf1.toString('binary'); | ||
| 143 | 148 | }, /toString failed/); | |
| 144 | 149 | ||
| 145 | 150 | assert.throws(function() { | |
| 146 | - new Buffer(kStringMaxLength + 1).toString('base64'); | ||
| 151 | + buf1.toString('base64'); | ||
| 147 | 152 | }, /toString failed/); | |
| 148 | 153 | ||
| 149 | 154 | assert.throws(function() { | |
| 150 | - new Buffer(kStringMaxLength + 1).toString('hex'); | ||
| 155 | + buf1.toString('hex'); | ||
| 151 | 156 | }, /toString failed/); | |
| 152 | 157 | ||
| 153 | - var maxString = new Buffer(kStringMaxLength).toString(); | ||
| 158 | + var maxString = buf2.toString(); | ||
| 154 | 159 | assert.equal(maxString.length, kStringMaxLength); | |
| 155 | 160 | // Free the memory early instead of at the end of the next assignment | |
| 156 | 161 | maxString = undefined; | |
| 157 | 162 | ||
| 158 | - maxString = new Buffer(kStringMaxLength).toString('binary'); | ||
| 163 | + maxString = buf2.toString('binary'); | ||
| 159 | 164 | assert.equal(maxString.length, kStringMaxLength); | |
| 160 | 165 | maxString = undefined; | |
| 161 | 166 | ||
| 162 | - maxString = | ||
| 163 | - new Buffer(kStringMaxLength + 1).toString('binary', 1); | ||
| 167 | + maxString = buf1.toString('binary', 1); | ||
| 164 | 168 | assert.equal(maxString.length, kStringMaxLength); | |
| 165 | 169 | maxString = undefined; | |
| 166 | 170 | ||
| 167 | - maxString = | ||
| 168 | - new Buffer(kStringMaxLength + 1).toString('binary', 0, kStringMaxLength); | ||
| 171 | + maxString = buf1.toString('binary', 0, kStringMaxLength); | ||
| 169 | 172 | assert.equal(maxString.length, kStringMaxLength); | |
| 170 | 173 | maxString = undefined; | |
| 171 | 174 | ||
| 172 | - maxString = new Buffer(kStringMaxLength + 2).toString('utf16le'); | ||
| 175 | + maxString = buf3.toString('utf16le'); | ||
| 173 | 176 | assert.equal(maxString.length, (kStringMaxLength + 2) / 2); | |
| 174 | 177 | maxString = undefined; | |
| 175 | 178 | })(); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments