Fix llvm profile path for wpt test coverage generation locally

Right now profraw path is `<llvm_profile_file_path>.profraw` which is wrong.

Change-Id: I9a36ec07dd1972dcd178a8fdb83ccfa7a9861025
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4549882
Reviewed-by: Benjamin Joyce (Ben) <[email protected]>
Commit-Queue: Benjamin Joyce (Ben) <[email protected]>
Auto-Submit: Prakhar Asthana <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1147304}
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py
index 095c3d3..0f481786 100755
--- a/tools/code_coverage/coverage.py
+++ b/tools/code_coverage/coverage.py
@@ -55,13 +55,17 @@
   To learn more about generating code coverage reports for fuzz targets, see
   https://chromium.googlesource.com/chromium/src/+/main/testing/libfuzzer/efficient_fuzzer.md#Code-Coverage
 
-  * Sample workflow for running Blink web tests:
+  * Sample workflow for running Blink web platform tests:
 
   vpython3 tools/code_coverage/coverage.py blink_tests \\
-      -wt -b out/coverage -o out/report -f third_party/blink
+      -b out/coverage -o out/report -f third_party/blink -wt
 
-  If you need to pass arguments to run_web_tests.py, use
-    -wt='arguments to run_web_tests.py e.g. test directories'
+  -wt flag tells coverage script that it is a web test, and can also be
+  used to pass arguments to run_web_tests.py
+
+  vpython3 tools/code_coverage/coverage.py blink_wpt_tests \\
+      -b out/Release -o out/report
+      -wt external/wpt/webcodecs/per-frame-qp-encoding.https.any.js
 
   For more options, please refer to tools/code_coverage/coverage.py -h.
 
@@ -858,8 +862,16 @@
   return binary_paths
 
 
-def _GetCommandForWebTests(arguments):
+def _GetCommandForWebTests(targets, arguments):
   """Return command to run for blink web tests."""
+  assert len(targets) == 1, "Only one wpt target can be run"
+  target = targets[0]
+  expected_profraw_file_name = os.extsep.join(
+      [target, '%2m', PROFRAW_FILE_EXTENSION])
+  expected_profraw_file_path = os.path.join(
+      coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR),
+      expected_profraw_file_name)
+
   cpu_count = multiprocessing.cpu_count()
   if sys.platform == 'win32':
     # TODO(crbug.com/1190269) - we can't use more than 56
@@ -870,8 +882,7 @@
   command_list = [
       'third_party/blink/tools/run_web_tests.py',
       '--additional-driver-flag=--no-sandbox',
-      '--additional-env-var=LLVM_PROFILE_FILE=%s' %
-      LLVM_PROFILE_FILE_PATH_SUBSTITUTION,
+      '--additional-env-var=LLVM_PROFILE_FILE=%s' % expected_profraw_file_path,
       '--child-processes=%d' % cpu_count, '--disable-breakpad',
       '--no-show-results', '--skip-failing-tests',
       '--target=%s' % os.path.basename(BUILD_DIR), '--timeout-ms=30000'
@@ -1104,7 +1115,7 @@
 
   # Get .profdata file and list of binary paths.
   if args.web_tests:
-    commands = [_GetCommandForWebTests(args.web_tests)]
+    commands = [_GetCommandForWebTests(args.targets, args.web_tests)]
     profdata_file_path = _CreateCoverageProfileDataForTargets(
         args.targets, commands, args.jobs)
     binary_paths = [_GetBinaryPathForWebTests()]