Skip to content

Commit 245bcc4

Browse files
authored
Merge pull request #31695 from swiftwasm/maxd/lit-wasi
test: enable WebAssembly/WASI in lit.cfg
2 parents 620b044 + 7d187d3 commit 245bcc4

File tree

1 file changed

+70
-1
lines changed

1 file changed

+70
-1
lines changed

test/lit.cfg

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# This source file is part of the Swift.org open source project
44
#
5-
# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
5+
# Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
66
# Licensed under Apache License v2.0 with Runtime Library Exception
77
#
88
# See https://swift.org/LICENSE.txt for license information
@@ -261,6 +261,8 @@ config.swift_refactor = inferSwiftBinary('swift-refactor')
261261
config.swift_demangle_yamldump = inferSwiftBinary('swift-demangle-yamldump')
262262
config.benchmark_o = inferSwiftBinary('Benchmark_O')
263263
config.benchmark_driver = inferSwiftBinary('Benchmark_Driver')
264+
config.wasmer = inferSwiftBinary('wasmer')
265+
config.wasm_ld = inferSwiftBinary('wasm-ld')
264266

265267
config.swift_utils = make_path(config.swift_src_root, 'utils')
266268
config.line_directive = make_path(config.swift_utils, 'line-directive')
@@ -1305,6 +1307,73 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
13051307
'-L%s' % make_path(test_resource_dir, config.target_sdk_name)])
13061308
# The Swift interpreter is not available when targeting Android.
13071309
config.available_features.discard('swift_interpreter')
1310+
elif run_os == 'wasi':
1311+
lit_config.note("Testing WebAssembly/WASI " + config.variant_triple)
1312+
1313+
config.target_object_format = "wasm"
1314+
config.target_shared_library_prefix = 'lib'
1315+
config.target_shared_library_suffix = ".a"
1316+
config.target_sdk_name = "wasi"
1317+
config.target_runtime = "native"
1318+
1319+
config.target_swift_autolink_extract = inferSwiftBinary("swift-autolink-extract")
1320+
1321+
config.target_build_swift = ' '.join([
1322+
config.swiftc,
1323+
'-target', config.variant_triple,
1324+
'-Xcc', '--sysroot=%s' % config.variant_sdk,
1325+
'-Xclang-linker', '--sysroot=%s' % config.variant_sdk,
1326+
'-toolchain-stdlib-rpath', resource_dir_opt,
1327+
mcp_opt, config.swift_test_options,
1328+
config.swift_driver_test_options, swift_execution_tests_extra_flags])
1329+
config.target_codesign = "echo"
1330+
config.target_build_swift_dylib = (
1331+
"%s -parse-as-library -emit-library -o '\\1'"
1332+
% (config.target_build_swift))
1333+
config.target_add_rpath = ''
1334+
config.target_swift_frontend = ' '.join([
1335+
config.swift,
1336+
'-frontend',
1337+
'-target', config.variant_triple,
1338+
'-Xcc', '--sysroot=%s' % config.variant_sdk,
1339+
resource_dir_opt, mcp_opt,
1340+
config.swift_test_options, config.swift_frontend_test_options])
1341+
subst_target_swift_frontend_mock_sdk = config.target_swift_frontend
1342+
subst_target_swift_frontend_mock_sdk_after = ""
1343+
config.target_run = '%s run --backend cranelift --' % config.wasmer
1344+
if 'interpret' in lit_config.params:
1345+
use_interpreter_for_simple_runs()
1346+
config.target_sil_opt = (
1347+
'%s -target %s %s %s %s' %
1348+
(config.sil_opt, config.variant_triple, resource_dir_opt, mcp_opt, config.sil_test_options))
1349+
config.target_swift_symbolgraph_extract = ' '.join([
1350+
config.swift_symbolgraph_extract,
1351+
'-target', config.variant_triple,
1352+
mcp_opt])
1353+
config.target_swift_ide_test = (
1354+
'%s -target %s %s %s %s' %
1355+
(config.swift_ide_test, config.variant_triple, resource_dir_opt,
1356+
mcp_opt, ccp_opt))
1357+
subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test
1358+
subst_target_swift_ide_test_mock_sdk_after = ""
1359+
config.target_swiftc_driver = (
1360+
"%s -target %s -toolchain-stdlib-rpath %s %s" %
1361+
(config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt))
1362+
config.target_swift_modulewrap = (
1363+
'%s -modulewrap -target %s' %
1364+
(config.swiftc, config.variant_triple))
1365+
config.target_swift_emit_pcm = (
1366+
'%s -emit-pcm -target %s' %
1367+
(config.swiftc, config.variant_triple))
1368+
config.target_clang = (
1369+
"%s -target %s %s -fobjc-runtime=ios-5.0" %
1370+
(config.clang, config.variant_triple, clang_mcp_opt))
1371+
config.target_ld = (
1372+
"%s -L%r" %
1373+
(config.wasm_ld, make_path(test_resource_dir, config.target_sdk_name)))
1374+
1375+
# The Swift interpreter is not available when targeting WebAssembly/WASI.
1376+
config.available_features.discard('swift_interpreter')
13081377

13091378
else:
13101379
lit_config.fatal("Don't know how to define target_run and "

0 commit comments

Comments
 (0)