| import './index'; | |
| import fetchMock from 'fetch-mock'; | |
| import { BinarySizeDiffRPCRequest, BinarySizeDiffRPCResponse } from '../rpc_types'; | |
| import { BinaryDiffPageSk } from './binary-diff-page-sk'; | |
| import { CodesizeScaffoldSk } from '../codesize-scaffold-sk/codesize-scaffold-sk'; | |
| const fakeRpcDelayMillis = 300; | |
| const fakeRPCResponse: BinarySizeDiffRPCResponse = { | |
| metadata: { | |
| version: 1, | |
| timestamp: '2022-02-15T23:57:57Z', | |
| swarming_task_id: '59189d06df0e9611', | |
| swarming_server: 'https://chromium-swarm.appspot.com', | |
| task_id: 'rG2vO5FkQOODEHgHf7W8', | |
| task_name: 'CodeSize-dm-Debian10-Clang-x86_64-Debug', | |
| compile_task_name: 'Build-Debian10-Clang-x86_64-Debug', | |
| compile_task_name_no_patch: 'Build-Debian10-Clang-x86_64-Debug-NoPatch', | |
| binary_name: 'dm', | |
| bloaty_cipd_version: 'version:1', | |
| bloaty_args: ['build/dm', '-d', 'compileunits,symbols', '-n', '0', '--tsv'], | |
| bloaty_diff_args: ['build/dm', '--', 'build_nopatch/dm'], | |
| patch_issue: '12345', | |
| patch_server: 'https://skia-review.googlesource.com', | |
| patch_set: '6', | |
| repo: 'https://skia.googlesource.com/skia.git', | |
| revision: '34e3b35eb460e8668bb063adeefdc1fed857d075', | |
| commit_timestamp: '2022-02-15T23:42:43Z', | |
| author: 'Alice (alice@google.com)', | |
| subject: | |
| '[codesize] Define more CodeSize tasks for testing purposes (both for CQ and waterfall).', | |
| }, | |
| // Example taken from | |
| // gs://skia-codesize/2022/07/27/04/tryjob/556358/56/lnwGGlkpXd2obFWx9xrA/Build-Debian10-Clang-x86_64-OptimizeForSize/dm.diff.txt. | |
| raw_diff: ` VM SIZE FILE SIZE | |
| -------------- -------------- | |
| +0.1% +9.75Ki .rodata +9.75Ki +0.1% | |
| [ = ] 0 .debug_info +45 +0.0% | |
| [ = ] 0 .debug_str +45 +0.0% | |
| [ = ] 0 .debug_line +28 +0.0% | |
| [ = ] 0 .debug_ranges +16 +0.0% | |
| +0.0% +16 .text +16 +0.0% | |
| [ = ] 0 [Unmapped] +10 +200% | |
| -0.0% -8 .eh_frame -8 -0.0% | |
| +0.0% +9.76Ki TOTAL +9.90Ki +0.0% | |
| `, | |
| }; | |
| fetchMock.post( | |
| (url, opts) => { | |
| const request = JSON.parse(opts.body?.toString() || '') as BinarySizeDiffRPCRequest; | |
| return ( | |
| url === '/rpc/binary_size_diff/v1' && | |
| request.commit === fakeRPCResponse.metadata.revision && | |
| request.patch_issue === fakeRPCResponse.metadata.patch_issue && | |
| request.patch_set === fakeRPCResponse.metadata.patch_set && | |
| request.binary_name === fakeRPCResponse.metadata.binary_name && | |
| request.compile_task_name === fakeRPCResponse.metadata.compile_task_name | |
| ); | |
| }, | |
| () => | |
| new Promise((resolve) => | |
| setTimeout(() => resolve(JSON.stringify(fakeRPCResponse)), fakeRpcDelayMillis) | |
| ) | |
| ); | |
| const queryString = | |
| `?commit=${fakeRPCResponse.metadata.revision}&` + | |
| `patch_issue=${fakeRPCResponse.metadata.patch_issue}&` + | |
| `patch_set=${fakeRPCResponse.metadata.patch_set}&` + | |
| `binary_name=${fakeRPCResponse.metadata.binary_name}&` + | |
| `compile_task_name=${fakeRPCResponse.metadata.compile_task_name}`; | |
| window.history.pushState(null, '', queryString); | |
| // Add the page under test only after all RPCs are mocked out. | |
| const scaffold = new CodesizeScaffoldSk(); | |
| document.body.appendChild(scaffold); | |
| scaffold.appendChild(new BinaryDiffPageSk()); |