From a327c217e797656e941a8cd7300a5dbfa691e0cd Mon Sep 17 00:00:00 2001 From: decaffeinate Date: Tue, 25 Feb 2020 17:03:57 +0100 Subject: [PATCH] decaffeinate: Convert loadTest.coffee to JS --- test/load/coffee/loadTest.js | 144 +++++++++++++++++++++-------------- 1 file changed, 85 insertions(+), 59 deletions(-) diff --git a/test/load/coffee/loadTest.js b/test/load/coffee/loadTest.js index 26a23fb..d5ddecf 100644 --- a/test/load/coffee/loadTest.js +++ b/test/load/coffee/loadTest.js @@ -1,71 +1,97 @@ -request = require "request" -Settings = require "settings-sharelatex" -async = require("async") -fs = require("fs") -_ = require("underscore") -concurentCompiles = 5 -totalCompiles = 50 +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +const request = require("request"); +const Settings = require("settings-sharelatex"); +const async = require("async"); +const fs = require("fs"); +const _ = require("underscore"); +const concurentCompiles = 5; +const totalCompiles = 50; -buildUrl = (path) -> "http://#{Settings.internal.clsi.host}:#{Settings.internal.clsi.port}/#{path}" +const buildUrl = path => `http://${Settings.internal.clsi.host}:${Settings.internal.clsi.port}/${path}`; -mainTexContent = fs.readFileSync("./bulk.tex", "utf-8") +const mainTexContent = fs.readFileSync("./bulk.tex", "utf-8"); -compileTimes = [] -failedCount = 0 +const compileTimes = []; +let failedCount = 0; -getAverageCompileTime = -> - totalTime = _.reduce compileTimes, (sum, time)-> - sum + time - , 0 - return totalTime / compileTimes.length +const getAverageCompileTime = function() { + const totalTime = _.reduce(compileTimes, (sum, time)=> sum + time + , 0); + return totalTime / compileTimes.length; +}; -makeRequest = (compileNumber, callback)-> - bulkBodyCount = 7 - bodyContent = "" - while --bulkBodyCount - bodyContent = bodyContent+=mainTexContent +const makeRequest = function(compileNumber, callback){ + let bulkBodyCount = 7; + let bodyContent = ""; + while (--bulkBodyCount) { + bodyContent = (bodyContent+=mainTexContent); + } - startTime = new Date() - request.post { - url: buildUrl("project/loadcompile-#{compileNumber}/compile") - json: - compile: - resources: [ - path: "main.tex" - content: """ - \\documentclass{article} - \\begin{document} - #{bodyContent} - \\end{document} - """ + const startTime = new Date(); + return request.post({ + url: buildUrl(`project/loadcompile-${compileNumber}/compile`), + json: { + compile: { + resources: [{ + path: "main.tex", + content: `\ +\\documentclass{article} +\\begin{document} +${bodyContent} +\\end{document}\ +` + } ] - }, (err, response, body)-> - if response.statusCode != 200 - failedCount++ - return callback("compile #{compileNumber} failed") - if err? - failedCount++ - return callback("failed") - totalTime = new Date() - startTime - console.log totalTime+"ms" - compileTimes.push(totalTime) - callback(err) + } + } + }, function(err, response, body){ + if (response.statusCode !== 200) { + failedCount++; + return callback(`compile ${compileNumber} failed`); + } + if (err != null) { + failedCount++; + return callback("failed"); + } + const totalTime = new Date() - startTime; + console.log(totalTime+"ms"); + compileTimes.push(totalTime); + return callback(err); + }); +}; -jobs = _.map [1..totalCompiles], (i)-> - return (cb)-> - makeRequest(i, cb) +const jobs = _.map(__range__(1, totalCompiles, true), i=> + cb=> makeRequest(i, cb) +); -startTime = new Date() -async.parallelLimit jobs, concurentCompiles, (err)-> - if err? - console.error err - console.log("total time taken = #{(new Date() - startTime)/1000}s") - console.log("total compiles = #{totalCompiles}") - console.log("concurent compiles = #{concurentCompiles}") - console.log("average time = #{getAverageCompileTime()/1000}s") - console.log("max time = #{_.max(compileTimes)/1000}s") - console.log("min time = #{_.min(compileTimes)/1000}s") - console.log("total failures = #{failedCount}") +const startTime = new Date(); +async.parallelLimit(jobs, concurentCompiles, function(err){ + if (err != null) { + console.error(err); + } + console.log(`total time taken = ${(new Date() - startTime)/1000}s`); + console.log(`total compiles = ${totalCompiles}`); + console.log(`concurent compiles = ${concurentCompiles}`); + console.log(`average time = ${getAverageCompileTime()/1000}s`); + console.log(`max time = ${_.max(compileTimes)/1000}s`); + console.log(`min time = ${_.min(compileTimes)/1000}s`); + return console.log(`total failures = ${failedCount}`); +}); + +function __range__(left, right, inclusive) { + let range = []; + let ascending = left < right; + let end = !inclusive ? right : ascending ? right + 1 : right - 1; + for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) { + range.push(i); + } + return range; +} \ No newline at end of file