diff --git a/circle.yml b/circle.yml index f848dd3..169dd10 100644 --- a/circle.yml +++ b/circle.yml @@ -8,3 +8,7 @@ machine: dependencies: pre: - mkdir minecraft-server +test: + override: + - npm test: + parallel: true diff --git a/test/benchmark.js b/test/benchmark.js index e5adfd6..1209364 100644 --- a/test/benchmark.js +++ b/test/benchmark.js @@ -11,7 +11,14 @@ var testDataWrite = [ // TODO: add more packets for better quality data ]; -mc.supportedVersions.forEach(function(supportedVersion){ + +const {firstVersion,lastVersion}=require("./common/parallel"); +console.log({firstVersion,lastVersion}); + +mc.supportedVersions.forEach(function(supportedVersion,i){ + if(!(i>=firstVersion && i<=lastVersion)) + return; + var mcData=require("minecraft-data")(supportedVersion); var version=mcData.version; describe("benchmark "+version.minecraftVersion,function(){ diff --git a/test/clientTest.js b/test/clientTest.js index 575705b..8304228 100644 --- a/test/clientTest.js +++ b/test/clientTest.js @@ -7,11 +7,15 @@ var MC_SERVER_PATH = path.join(__dirname, 'server'); var Wrap = require('minecraft-wrap').Wrap; +const {firstVersion,lastVersion}=require("./common/parallel"); + var download = require('minecraft-wrap').download; +mc.supportedVersions.forEach(function(supportedVersion,i) { + if(!(i>=firstVersion && i<=lastVersion)) + return; -mc.supportedVersions.forEach(function(supportedVersion) { var PORT=Math.round(30000+Math.random()*20000); var mcData = require("minecraft-data")(supportedVersion); var version = mcData.version; diff --git a/test/common/parallel.js b/test/common/parallel.js new file mode 100644 index 0000000..3c53612 --- /dev/null +++ b/test/common/parallel.js @@ -0,0 +1,22 @@ +const nodeIndex=parseInt(process.env.CIRCLE_NODE_INDEX); +const nodeTotal=parseInt(process.env.CIRCLE_NODE_TOTAL); +const parallel=process.env.CIRCLE_NODE_INDEX!==undefined && process.env.CIRCLE_NODE_TOTAL!==undefined; +const mc = require("../../"); + + +// expected values : +// (0,4,10) -> (0,2) +// (1,4,10) -> (3,5) +// (2,4,10) -> (6,8) +// (3,4,10) -> (9,9) +function testedRange(nodeIndex,nodeTotal,numberOfVersions) { + const nbFirsts=Math.ceil(numberOfVersions/nodeTotal); + if(nodeIndex==(nodeTotal-1)) + return {firstVersion:nbFirsts*nodeIndex,lastVersion:numberOfVersions-1}; + + return {firstVersion:nodeIndex*nbFirsts,lastVersion:(nodeIndex+1)*nbFirsts-1}; +} +console.log({nodeIndex,nodeTotal,versions:mc.supportedVersions.length}); +const {firstVersion,lastVersion}=parallel ? testedRange(nodeIndex,nodeTotal,mc.supportedVersions.length) : {firstVersion:0,lastVersion:mc.supportedVersions.length-1}; + +module.exports={firstVersion,lastVersion}; diff --git a/test/packetTest.js b/test/packetTest.js index 66a633c..e932fed 100644 --- a/test/packetTest.js +++ b/test/packetTest.js @@ -142,8 +142,12 @@ function getValue(_type, packet) { throw new Error("No value for type " + fieldInfo.type); } +const {firstVersion,lastVersion}=require("./common/parallel"); -mc.supportedVersions.forEach(function(supportedVersion){ +mc.supportedVersions.forEach(function(supportedVersion,i){ + if(!(i>=firstVersion && i<=lastVersion)) + return; + var PORT=Math.round(30000+Math.random()*20000); var mcData=require("minecraft-data")(supportedVersion); var version=mcData.version; diff --git a/test/serverTest.js b/test/serverTest.js index 0353674..bfec1ee 100644 --- a/test/serverTest.js +++ b/test/serverTest.js @@ -1,7 +1,12 @@ var mc = require('../'); var assert = require('power-assert'); -mc.supportedVersions.forEach(function(supportedVersion){ +const {firstVersion,lastVersion}=require("./common/parallel"); + +mc.supportedVersions.forEach(function(supportedVersion,i){ + if(!(i>=firstVersion && i<=lastVersion)) + return; + var PORT=Math.round(30000+Math.random()*20000); var mcData=require("minecraft-data")(supportedVersion); var version=mcData.version;