~james-page/ubuntu/precise/nodejs/0.6.x-merge

« back to all changes in this revision

Viewing changes to benchmark/http_simple.js

  • Committer: James Page
  • Date: 2012-03-30 12:09:16 UTC
  • mfrom: (7.1.23 sid)
  • Revision ID: james.page@canonical.com-20120330120916-40hfu9o00qr5t87b
* Merge from Debian unstable:
  - New upstream release (LP: #892034).
  - This package is x86/arm only. Update control to match
  - d/patches/2009_increase_test_timeout.patch: Increased default test
    timeout from 60 to 120 seconds to support reliable execution of all
    tests on armhf/armel architectures.
  - d/patches/2005_expected_failing_tests.patch: 
    - Allow racey tests to fail: test-cluster-kill-workers,
      test-child-process-fork2 
    - Allow test-fs-watch to fail as LP buildd's don't support
      inotify.
    - Revert all other Ubuntu changes as no longer required.
* Update Standards-Version to 3.9.3.
* Patch wscript to enable build on mipsel arch, libv8 being available.
  Upstream does not support that arch, failure expected.
* test-cluster-kill-workers is expected to fail on armhf,
  Bug#660802 will be closed when test pass.
* test-buffer is expected to fail on armel,
  Bug#660800 will be closed when test pass.
* Add epoch to dependency on libev >= 1:4.11. Closes: bug#658441.
* Remove tools/doc because node-doc-generator has no license for now.
* Add copyright for doc/sh* files (shjs).
* source.lintian-overrides : source-contains-waf-binary tools/node-waf
  it is simply not the case here.
* test-stream-pipe-multi expected to timeout sometimes on busy builds. 
* New upstream release.
* Remove upstream patches.
* test-dgram-pingpong expected to timeout, the test itself is buggy.
* test-buffer expected to fail on armel, allow building package to make
  it easier to find the cause of the failure.
  Closes: bug#639636.
* Expect tests dgram-multicast and broadcast to fail.
  debian/patches/2005_expected_failing_tests.patch
* Drop dpkg-source local-options: Defaults since dpkg-source 1.16.1.
* New upstream release.
* Depend on libev-dev 4.11, see bug#657080.
* Bump dependency on openssl to 1.0.0g.
* Remove useless uv_loop_refcount from libuv,
  refreshed 2009_fix_shared_ev.patch.
* Apply to upstream patches landed after 0.6.10 release,
  to fix debugger repl and http client.
* New upstream release. Closes:bug#650661
* Repackage to remove non-dfsg font files ./deps/npm/html/*/*.ttf
* Remove unneeded bundled dependencies: lighter tarball,
  debian/copyright is easier to maintain.
* Drop unneeded build-dependency on scons.
* Depend on zlib1g, libc-ares, libev.
  Patches done to support building with those shared libs.
* Fix DEB_UPSTREAM_URL in debian/rules, and debian/watch.
* nodejs.pc file for pkgconfig is no more available.
* Build-depend on procps package, a test is using /bin/ps.
* Refreshed debian/patches/2005_expected_failing_tests.patch,
  only for tests that need networking.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
  fixed += "C";
12
12
}
13
13
 
14
 
var uname, rev;
15
 
 
16
 
exec('git rev-list -1 HEAD', function (e, stdout) {
17
 
  if (e) {
18
 
    console.error("Problem executing: 'git rev-list -1 HEAD'");
19
 
    throw new Error(e);
20
 
  }
21
 
  rev = stdout.replace(/\s/g, '');
22
 
});
23
 
 
24
 
exec('uname -a', function (e, stdout) {
25
 
  if (e) {
26
 
    console.error("Problem executing: 'uname -a'");
27
 
    throw new Error(e);
28
 
  }
29
 
  uname = stdout.replace(/[\r\n]/g, '');
30
 
});
31
 
 
32
 
 
33
 
 
34
14
stored = {};
35
15
storedBuffer = {};
36
16
 
39
19
  var command = commands[1];
40
20
  var body = "";
41
21
  var arg = commands[2];
 
22
  var n_chunks = parseInt(commands[3], 10);
42
23
  var status = 200;
43
24
 
44
25
  if (command == "bytes") {
73
54
  } else if (command == "fixed") {
74
55
    body = fixed;
75
56
 
76
 
  } else if (command == "info") {
77
 
    body = 'rev=' + rev + '\nuname="' + uname + '"\n';
 
57
  } else if (command == "echo") {
 
58
    res.writeHead(200, { "Content-Type": "text/plain",
 
59
                         "Transfer-Encoding": "chunked" });
 
60
    req.pipe(res);
 
61
    return;
78
62
 
79
63
  } else {
80
64
    status = 404;
81
65
    body = "not found\n";
82
66
  }
83
67
 
84
 
  var content_length = body.length.toString();
85
 
 
86
 
  res.writeHead(status, { "Content-Type": "text/plain",
87
 
                          "Content-Length": content_length });
88
 
  res.end(body);
 
68
  // example: http://localhost:port/bytes/512/4
 
69
  // sends a 512 byte body in 4 chunks of 128 bytes
 
70
  if (n_chunks > 0) {
 
71
    res.writeHead(status, { "Content-Type": "text/plain",
 
72
                            "Transfer-Encoding": "chunked" });
 
73
    // send body in chunks
 
74
    var len = body.length;
 
75
    var step = ~~(len / n_chunks) || len;
 
76
 
 
77
    for (var i = 0; i < len; i += step) {
 
78
      res.write(body.slice(i, i + step));
 
79
    }
 
80
 
 
81
    res.end();
 
82
  } else {
 
83
    var content_length = body.length.toString();
 
84
 
 
85
    res.writeHead(status, { "Content-Type": "text/plain",
 
86
                            "Content-Length": content_length });
 
87
    res.end(body);
 
88
  }
89
89
 
90
90
});
91
91
 
93
93
  console.log('Listening at http://127.0.0.1:'+port+'/');
94
94
});
95
95
 
 
96
process.on('exit', function() {
 
97
  console.error('libuv counters', process.uvCounters());
 
98
});