From 084964be8f79f56619e1dc3324c07c6aed175bbb Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 22:46:11 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/dos/test/hc.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 js/dos/test/hc.js diff --git a/js/dos/test/hc.js b/js/dos/test/hc.js new file mode 100644 index 0000000..76c44c0 --- /dev/null +++ b/js/dos/test/hc.js @@ -0,0 +1,95 @@ +/** + * Created by sbosse on 5/23/15. + */ + +var Io = require('../io'); +//Io.trace_open('/tmp/hc.trace'); +var trace = Io.tracing; +var http = require('http'); +var Sch = require('../scheduler'); +var Perv = require('../compat').pervasives; + +var log = 0; +var port=3000; +var test=10000; + +var scheduler = Sch.Scheduler(); +scheduler.Init(); + + +function get (path,callback) { + Io.trace(trace||('GET: req '+Perv.mtime())); + var req = http.request({ + hostname: 'localhost', + port: port, + path: path, + keepAlive:true, + method: 'GET', + headers: { + } + } , function(res) { + res.setEncoding('utf8'); + res.on('data', function (data) { + Io.trace(trace||('GET: repl '+Perv.mtime())); + Io.log((log<1)||('GET BODY: ' + data)); + callback(data); + }); + }); + req.on('error', function(e) { + Io.out('[CONN] GET problem with request ['+self.srv_url+':'+self.srv_ipport+path+']: ' + e.message); + }); + req.end(); +} + +function put (path,data,callback) { + var req = http.request({ + hostname: 'localhost', + port: port, + path: path, + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Content-Length': data.length + } + } , function(res) { + Io.log((log<10)||('[CONN] POST STATUS: ' + res.statusCode)); + Io.log((log<10)||('[CONN] POST HEADERS: ' + JSON.stringify(res.headers))); + res.setEncoding('utf8'); + res.on('data', function (chunk) { + Io.log((log<1)||('[CONN] POST BODY: ' + chunk)); + if (callback != undefined) callback(chunk); + }); + }); + + req.on('error', function(e) { + Io.out('[CONN] PUT problem with request ['+self.srv_url+':'+self.srv_ipport+path+']: ' + e.message); + }); + + // write data to request body + req.write(data); + req.end(); + +} +var count=0; + +Sch.ScheduleBlock([function () {Io.out(count);process.exit(0);}]); +var start,stop; +Sch.ScheduleBlock([function() { + stop=Perv.mtime(); + Io.out(count); + Io.out('Test result: '+((test/(stop-start)*1000)|0)+' ops/sec ('+(((stop-start)*1000/test)|0)+' microsec/op)'); + process.exit(0);}]); +Sch.ScheduleLoop(function(index) {return index