Skip to content

Commit

Permalink
Merge branch 'main' into update-many-test-traces
Browse files Browse the repository at this point in the history
  • Loading branch information
connorjclark committed May 24, 2024
2 parents 3ff8c77 + 8d1d78b commit f9723df
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 27 deletions.
12 changes: 11 additions & 1 deletion cli/test/smokehouse/smokehouse.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,18 @@ async function runSmokeTest(smokeTestDefn, testOptions) {

// Run Lighthouse.
try {
// Each individual runner has internal timeouts, but we've had bugs where
// that didn't cover some edge case. So to be safe give a (long) timeout here.
const timeoutPromise = new Promise((_, reject) => {
setTimeout(() =>
reject(new Error('Timed out waiting for provided lighthouseRunner')), 1000 * 120);
});
const timedResult = await Promise.race([
lighthouseRunner(requestedUrl, config, testRunnerOptions),
timeoutPromise,
]);
result = {
...await lighthouseRunner(requestedUrl, config, testRunnerOptions),
...timedResult,
networkRequests: takeNetworkRequestUrls ? takeNetworkRequestUrls() : undefined,
};

Expand Down
2 changes: 1 addition & 1 deletion core/gather/driver/network-monitor.js
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ class NetworkMonitor extends NetworkMonitorEventEmitter {
* The time periods returned are in ms.
* @param {Array<LH.Artifacts.NetworkRequest>} requests
* @param {number} allowedConcurrentRequests
* @param {number=} endTime
* @param {number=} endTime In ms
* @return {Array<{start: number, end: number}>}
*/
static findNetworkQuietPeriods(requests, allowedConcurrentRequests, endTime = Infinity) {
Expand Down
2 changes: 1 addition & 1 deletion core/test/devtools-tests/run-e2e-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ export LH_ROOT="$SCRIPT_DIR/../../.."
cd "$DEVTOOLS_PATH"

TEST_PATTERN="${1:-lighthouse/*}"
npm run e2etest -- "$TEST_PATTERN" --target=$BUILD_FOLDER
vpython3 third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/e2e/test-runner-config.json "$TEST_PATTERN" --target=$BUILD_FOLDER
55 changes: 31 additions & 24 deletions core/test/gather/driver/network-monitor-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -381,9 +381,9 @@ describe('NetworkMonitor', () => {

it('should find the 0-quiet periods', () => {
const records = [
record({networkRequestTime: 0, networkEndTime: 1}),
record({networkRequestTime: 2, networkEndTime: 3}),
record({networkRequestTime: 4, networkEndTime: 5}),
record({networkRequestTime: 0, networkEndTime: 1000}),
record({networkRequestTime: 2000, networkEndTime: 3000}),
record({networkRequestTime: 4000, networkEndTime: 5000}),
];

const periods = NetworkMonitor.findNetworkQuietPeriods(records, 0);
Expand All @@ -392,15 +392,22 @@ describe('NetworkMonitor', () => {
{start: 3, end: 4},
{start: 5, end: Infinity},
]);
// Same thing but verifying these numbers round trip without a problem.
expect(periods).toEqual([
// The time between the first two, and so on…
{start: records[0].networkEndTime, end: records[1].networkRequestTime},
{start: records[1].networkEndTime, end: records[2].networkRequestTime},
{start: records[2].networkEndTime, end: Infinity},
]);
});

it('should find the 2-quiet periods', () => {
const records = [
record({networkRequestTime: 0, networkEndTime: 1.5}),
record({networkRequestTime: 0, networkEndTime: 2}),
record({networkRequestTime: 0, networkEndTime: 2.5}),
record({networkRequestTime: 2, networkEndTime: 3}),
record({networkRequestTime: 4, networkEndTime: 5}),
record({networkRequestTime: 0, networkEndTime: 1500}),
record({networkRequestTime: 0, networkEndTime: 2000}),
record({networkRequestTime: 0, networkEndTime: 2500}),
record({networkRequestTime: 2000, networkEndTime: 3000}),
record({networkRequestTime: 4000, networkEndTime: 5000}),
];

const periods = NetworkMonitor.findNetworkQuietPeriods(records, 2);
Expand All @@ -409,14 +416,14 @@ describe('NetworkMonitor', () => {

it('should handle unfinished requests', () => {
const records = [
record({networkRequestTime: 0, networkEndTime: 1.5}),
record({networkRequestTime: 0, networkEndTime: 2}),
record({networkRequestTime: 0, networkEndTime: 2.5}),
record({networkRequestTime: 2, networkEndTime: 3}),
record({networkRequestTime: 2}),
record({networkRequestTime: 2}),
record({networkRequestTime: 4, networkEndTime: 5}),
record({networkRequestTime: 5.5}),
record({networkRequestTime: 0, networkEndTime: 1500}),
record({networkRequestTime: 0, networkEndTime: 2000}),
record({networkRequestTime: 0, networkEndTime: 2500}),
record({networkRequestTime: 2000, networkEndTime: 3000}),
record({networkRequestTime: 2000}),
record({networkRequestTime: 2000}),
record({networkRequestTime: 4000, networkEndTime: 5000}),
record({networkRequestTime: 5500}),
];

const periods = NetworkMonitor.findNetworkQuietPeriods(records, 2);
Expand All @@ -429,8 +436,8 @@ describe('NetworkMonitor', () => {

it('should ignore data URIs', () => {
const records = [
record({networkRequestTime: 0, networkEndTime: 1}),
record({networkRequestTime: 0, networkEndTime: 2, url: 'data:image/png;base64,',
record({networkRequestTime: 0, networkEndTime: 1000}),
record({networkRequestTime: 0, networkEndTime: 2000, url: 'data:image/png;base64,',
protocol: 'data'}),
];

Expand All @@ -443,12 +450,12 @@ describe('NetworkMonitor', () => {
finished: false,
url: 'https://iframe.com',
documentURL: 'https://iframe.com',
responseHeadersEndTime: 1.2,
responseHeadersEndTime: 1200,
};

const records = [
record({networkRequestTime: 0, networkEndTime: 1}),
record({networkRequestTime: 0, networkEndTime: 1.2, ...iframeRequest}),
record({networkRequestTime: 0, networkEndTime: 1000}),
record({networkRequestTime: 0, networkEndTime: 1200, ...iframeRequest}),
];

const periods = NetworkMonitor.findNetworkQuietPeriods(records, 0);
Expand All @@ -460,12 +467,12 @@ describe('NetworkMonitor', () => {
const quicRequest = {
finished: false,
responseHeaders: [{name: 'ALT-SVC', value: 'hq=":49288";quic="1,1abadaba,51303334,0"'}],
timing: /** @type {*} */ ({receiveHeadersEnd: 1.28}),
timing: /** @type {*} */ ({receiveHeadersEnd: 1280}),
};

const records = [
record({networkRequestTime: 0, networkEndTime: 1}),
record({networkRequestTime: 0, networkEndTime: 2, ...quicRequest}),
record({networkRequestTime: 0, networkEndTime: 1000}),
record({networkRequestTime: 0, networkEndTime: 2000, ...quicRequest}),
];

const periods = NetworkMonitor.findNetworkQuietPeriods(records, 0);
Expand Down

0 comments on commit f9723df

Please sign in to comment.