return Io.get().chain(function(receiver) { const results = []; testcase = Io.of().chain(testcase); for( let user_number = 0; user_number < concurrency; user_number++ ) results.push(testcase.run(receiver)); return Io.resolve(Promise.all(results)); });
return Io.get().chain(function(state) { const result = testcase.run(state).catch(function(err) { console.error(err); if( state && state.receive ) state.receive(metrics.problem(err)); else { // the entire purpose of this function was to report error metrics instead of throwing an error // but apparently we don't have the ability to report any metrics at all . . . so . . . just burn everything throw err; } }); return Io.resolve(result); });