@@ -2100,14 +2100,26 @@ def harden(macro, project_root, list_designs, tag, pdk, use_nix, use_docker, dry
21002100 '-m' , str (pdk_root ),
21012101 '-m' , str (caravel_root ),
21022102 '--dockerized' ,
2103+ ]
2104+
2105+ # Add --docker-no-tty if not running in a TTY (e.g., CI environments)
2106+ try :
2107+ import sys
2108+ if not sys .stdin .isatty ():
2109+ cmd .append ('--docker-no-tty' )
2110+ except :
2111+ # If we can't detect TTY, assume non-TTY (safer for CI)
2112+ cmd .append ('--docker-no-tty' )
2113+
2114+ cmd .extend ([
21032115 '--run-tag' , tag ,
21042116 '--manual-pdk' ,
21052117 '--pdk-root' , str (pdk_root ),
21062118 '--pdk' , pdk ,
21072119 '--ef-save-views-to' , str (project_root_path ),
21082120 '--overwrite' ,
21092121 config_file
2110- ]
2122+ ])
21112123
21122124 # Run LibreLane
21132125
@@ -2576,7 +2588,22 @@ def verify(test, project_root, sim, list_tests, run_all, tag, dry_run):
25762588 cmd .extend (['-tl' , yaml_path ])
25772589 elif tag :
25782590 # User specified a custom test list
2579- cmd .extend (['-tl' , tag ])
2591+ # Check if tag is a directory or file path
2592+ tag_path = cocotb_dir / tag
2593+ if tag_path .is_dir ():
2594+ # If it's a directory, construct the YAML file path based on simulation type
2595+ yaml_file = f'{ tag } _gl.yaml' if sim .lower () == 'gl' else f'{ tag } .yaml'
2596+ yaml_path = f'{ tag } /{ yaml_file } '
2597+ # Verify the file exists
2598+ yaml_full_path = tag_path / yaml_file
2599+ if not yaml_full_path .exists ():
2600+ console .print (f"[red]✗[/red] Test list file not found: { yaml_full_path } " )
2601+ console .print (f"[yellow]Expected: { yaml_path } [/yellow]" )
2602+ return
2603+ cmd .extend (['-tl' , yaml_path ])
2604+ else :
2605+ # It's already a file path, use it as-is
2606+ cmd .extend (['-tl' , tag ])
25802607
25812608 if sim .lower () == 'gl' :
25822609 cmd .extend (['-sim' , 'GL' ])
0 commit comments