@@ -4,15 +4,37 @@ import sys
44import argparse
55import pathlib
66import subprocess
7- import os
87from build_support .actions import derive_options_from_args , REPO_ROOT , DownloadBaseSnapshotAction
98
109
10+ def default_swift_sdk (options , swift_sdks_path : pathlib .Path ):
11+ """Return the default target triple based on the scheme."""
12+ import json
13+ for artifact_bundle in swift_sdks_path .iterdir ():
14+ if not artifact_bundle .is_dir () or not artifact_bundle .name .endswith ('.artifactbundle' ):
15+ # Skip if not ending with .artifactbundle
16+ continue
17+ info_json = artifact_bundle / 'info.json'
18+ if not info_json .is_file ():
19+ continue
20+ try :
21+ with info_json .open ('r' ) as f :
22+ info = json .load (f )
23+
24+ sdk_ids = info .get ('artifacts' , {}).keys ()
25+ for sdk_id in sdk_ids :
26+ if sdk_id .endswith ("wasm32-unknown-wasip1" ) or sdk_id .endswith ("wasm32-unknown-wasi" ):
27+ return sdk_id
28+ except Exception as e :
29+ print (f"Error reading { info_json } : { e } " , file = sys .stderr )
30+ continue
31+
32+
1133def main ():
1234 parser = argparse .ArgumentParser (
1335 description = 'Run e2e integration tests for Swift SDK' )
14- parser .add_argument ('--swift-sdk' , default = 'wasm32-unknown-wasip1' ,
15- help = 'Swift SDK identifier (default: wasm32-unknown-wasi )' )
36+ parser .add_argument ('--swift-sdk' , default = None ,
37+ help = 'Swift SDK identifier (default: wasm32-unknown-wasip1 )' )
1638 parser .add_argument ('args' , nargs = argparse .REMAINDER ,
1739 help = 'Extra arguments to pass to lit.py' )
1840 options = derive_options_from_args (sys .argv [1 :], parser )
@@ -25,11 +47,12 @@ def main():
2547 base_toolchain_path = DownloadBaseSnapshotAction .toolchain_path (options )
2648 lit_py_path = repo_path .parent / "llvm-project" / "llvm" / "utils" / "lit" / "lit.py"
2749 swift_sdks_path = repo_path .parent / "swift-sdk-generator" / "Bundles"
50+ swift_sdk = options .swift_sdk or default_swift_sdk (options , swift_sdks_path )
2851
2952 # Build lit command
3053 lit_cmd = [
3154 str (lit_py_path ),
32- "--param" , f"swift-sdk={ options . swift_sdk } " ,
55+ "--param" , f"swift-sdk={ swift_sdk } " ,
3356 "--param" , f"scheme={ options .scheme } " ,
3457 "--param" , f"base-toolchain-path={ base_toolchain_path } " ,
3558 "--param" , f"swift-sdks-path={ swift_sdks_path } " ,
0 commit comments