@@ -34,7 +34,7 @@ use anyhow::{anyhow, bail, Context};
3434use core:: fmt;
3535use pico_args:: Arguments ;
3636use regex_lite:: { Regex , RegexBuilder } ;
37- use std:: { ffi:: OsString , sync:: LazyLock } ;
37+ use std:: { ffi:: OsString , path :: Path , sync:: LazyLock } ;
3838use xshell:: Shell ;
3939
4040use crate :: util:: { git_version_at_least, parse_binary_from_cargo_json} ;
@@ -319,7 +319,8 @@ pub fn run_cts(
319319 }
320320
321321 let env_vars = if llvm_cov {
322- let env = shell
322+ let mut dir = None ;
323+ let mut vec = shell
323324 . cmd ( "cargo" )
324325 . args ( & [ "llvm-cov" , "--no-cfg-coverage" , "show-env" ] )
325326 . read ( )
@@ -335,9 +336,23 @@ pub fn run_cts(
335336 } )
336337 . map ( |( key, value) | {
337338 let value = value. trim_matches ( '"' ) . trim_matches ( '\'' ) ;
338- ( key. to_string ( ) , value. to_string ( ) )
339+
340+ let key = if key == "CARGO_LLVM_COV_TARGET_DIR" {
341+ // TODO comment here
342+ let key = Path :: new ( key) . join ( "llvm-cov-target" ) . into_os_string ( ) . into_string ( ) . unwrap ( ) ;
343+ dir = Some ( key. clone ( ) ) ;
344+ key
345+ } else {
346+ key. to_string ( )
347+ } ;
348+
349+ ( key, value. to_string ( ) )
339350 } )
340- . collect :: < Vec < _ > > ( )
351+ . collect :: < Vec < _ > > ( ) ;
352+
353+ vec. push ( ( "CARGO_LLVM_COV_BUILD_DIR" . into ( ) , dir. take ( ) . unwrap ( ) ) ) ;
354+
355+ let env = vec
341356 . into_iter ( ) ;
342357
343358 // The cargo-llvm-cov docs specify to clean after setting the
@@ -393,11 +408,22 @@ pub fn run_cts(
393408 log:: info!( "Running {}" , test. selector. to_string_lossy( ) ) ;
394409 }
395410
396- let cmd = shell
397- . cmd ( & bin)
398- . envs ( env_vars. clone ( ) )
399- . args ( cts_bin)
400- . args ( [ & test. selector ] ) ;
411+ let cmd = if test. selector != "webgpu:shader,execution,expression,call,builtin,textureSample:sampled_1d_coords:*" {
412+ shell
413+ . cmd ( & bin)
414+ . envs ( env_vars. clone ( ) )
415+ . args ( cts_bin)
416+ . args ( [ & test. selector ] )
417+
418+ } else {
419+ shell
420+ . cmd ( "cargo" )
421+ . args ( & [ "llvm-cov" , "--no-cfg-coverage" , "--no-report" , "run" ] )
422+ . args ( & cargo_opts)
423+ . arg ( "--" )
424+ . args ( cts_bin)
425+ . arg ( & test. selector )
426+ } ;
401427
402428 match output_filter {
403429 PrintOutputWhen :: TestFails => {
0 commit comments