Move net2 tests into test/simple
[platform/upstream/nodejs.git] / test / simple / test-buffer.js
1 process.mixin(require("../common"));
2 assert = require("assert");
3
4
5 var b = new process.Buffer(1024);
6
7 puts("b.length == " + b.length);
8 assert.equal(1024, b.length);
9
10 for (var i = 0; i < 1024; i++) {
11   assert.ok(b[i] >= 0);
12   b[i] = i % 256;
13 }
14
15 for (var i = 0; i < 1024; i++) {
16   assert.equal(i % 256, b[i]);
17 }
18
19 var asciiString = "hello world";
20 var offset = 100;
21 for (var j = 0; j < 50000; j++) {
22
23   for (var i = 0; i < asciiString.length; i++) {
24     b[i] = asciiString.charCodeAt(i);
25   }
26   var asciiSlice = b.asciiSlice(0, asciiString.length);
27   assert.equal(asciiString, asciiSlice);
28
29   var written = b.asciiWrite(asciiString, offset);
30   assert.equal(asciiString.length, written);
31   var asciiSlice = b.asciiSlice(offset, offset+asciiString.length);
32   assert.equal(asciiString, asciiSlice);
33
34   var sliceA = b.slice(offset, offset+asciiString.length);
35   var sliceB = b.slice(offset, offset+asciiString.length);
36   for (var i = 0; i < asciiString.length; i++) {
37     assert.equal(sliceA[i], sliceB[i]);
38   }
39
40   // TODO utf8 slice tests
41 }
42
43
44 for (var j = 0; j < 10000; j++) {
45   var slice = b.slice(100, 150);
46   assert.equal(50, slice.length);
47   for (var i = 0; i < 50; i++) {
48     assert.equal(b[100+i], slice[i]);
49   }
50 }
51
52
53 // unpack
54
55 var b = new process.Buffer(10);
56 b[0] = 0x00;
57 b[1] = 0x01;
58 b[2] = 0x03;
59 b[3] = 0x00;
60
61 assert.deepEqual([0x0001], b.unpack('n', 0));
62 assert.deepEqual([0x0001, 0x0300], b.unpack('nn', 0));
63 assert.deepEqual([0x0103], b.unpack('n', 1));
64 assert.deepEqual([0x0300], b.unpack('n', 2));
65 assert.deepEqual([0x00010300], b.unpack('N', 0));
66 assert.throws(function () {
67   b.unpack('N', 8);
68 });
69
70 b[4] = 0xDE;
71 b[5] = 0xAD;
72 b[6] = 0xBE;
73 b[7] = 0xEF;
74
75 assert.deepEqual([0xDEADBEEF], b.unpack('N', 4));