UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

30 lines 3.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const parallel_1 = require("../../lib/util/parallel"); const util_1 = require("../util"); test('parallelPromises', async () => { const N = 4; const J = 100; let jobsDone = 0; let concurrent = 0; let maxConcurrent = 0; const jobs = range(J).map(() => async () => { concurrent += 1; maxConcurrent = Math.max(concurrent, maxConcurrent); await (0, util_1.sleep)(Math.round(Math.random() * 100)); concurrent -= 1; jobsDone += 1; }); await (0, parallel_1.parallelPromises)(N, jobs); expect(maxConcurrent).toBeLessThanOrEqual(N); expect(maxConcurrent).toBeGreaterThan(1); expect(jobsDone).toEqual(J); }); function range(n) { const ret = new Array(); for (let i = 0; i < n; i++) { ret.push(i); } return ret; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBhcmFsbGVsLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBMkQ7QUFDM0Qsa0NBQWdDO0FBRWhDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDWixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7SUFFZCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDakIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztJQUV0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3pDLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFDaEIsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sSUFBQSxZQUFLLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2hCLFFBQVEsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLElBQUEsMkJBQWdCLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWhDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLEtBQUssQ0FBQyxDQUFTO0lBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJhbGxlbFByb21pc2VzIH0gZnJvbSAnLi4vLi4vbGliL3V0aWwvcGFyYWxsZWwnO1xuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi91dGlsJztcblxudGVzdCgncGFyYWxsZWxQcm9taXNlcycsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgTiA9IDQ7XG4gIGNvbnN0IEogPSAxMDA7XG5cbiAgbGV0IGpvYnNEb25lID0gMDtcbiAgbGV0IGNvbmN1cnJlbnQgPSAwO1xuICBsZXQgbWF4Q29uY3VycmVudCA9IDA7XG5cbiAgY29uc3Qgam9icyA9IHJhbmdlKEopLm1hcCgoKSA9PiBhc3luYyAoKSA9PiB7XG4gICAgY29uY3VycmVudCArPSAxO1xuICAgIG1heENvbmN1cnJlbnQgPSBNYXRoLm1heChjb25jdXJyZW50LCBtYXhDb25jdXJyZW50KTtcbiAgICBhd2FpdCBzbGVlcChNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDApKTtcbiAgICBjb25jdXJyZW50IC09IDE7XG4gICAgam9ic0RvbmUgKz0gMTtcbiAgfSk7XG5cbiAgYXdhaXQgcGFyYWxsZWxQcm9taXNlcyhOLCBqb2JzKTtcblxuICBleHBlY3QobWF4Q29uY3VycmVudCkudG9CZUxlc3NUaGFuT3JFcXVhbChOKTtcbiAgZXhwZWN0KG1heENvbmN1cnJlbnQpLnRvQmVHcmVhdGVyVGhhbigxKTtcbiAgZXhwZWN0KGpvYnNEb25lKS50b0VxdWFsKEopO1xufSk7XG5cbmZ1bmN0aW9uIHJhbmdlKG46IG51bWJlcikge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgIHJldC5wdXNoKGkpO1xuICB9XG4gIHJldHVybiByZXQ7XG59Il19