return new TPromise<void>(resolve => {
		let engine = new RipgrepEngine(config);

		let c = 0;
		engine.search((result) => {
			if (result) {
				c += result.numMatches;
			}
		}, () => { }, (error) => {
			assert.ok(!error);
			assert.equal(c, expectedResultCount);
			resolve(undefined);
		});
	});
	return new TPromise<void>((resolve, reject) => {
		let engine = new RipgrepEngine(config);

		let c = 0;
		engine.search((result) => {
			if (result) {
				c += result.numMatches;
			}
		}, () => { }, (error) => {
			try {
				assert.ok(!error);
				if (typeof expectedResultCount === 'function') {
					assert(expectedResultCount(c));
				} else {
					assert.equal(c, expectedResultCount);
				}
			} catch (e) {
				reject(e);
			}

			resolve(undefined);
		});
	});