Skip to content

Commit 7d187d3

Browse files
committed
test: enable WebAssembly/WASI in lit.cfg
1 parent 7d2f944 commit 7d187d3

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
@@ -297,6 +297,8 @@ config.swift_refactor = inferSwiftBinary('swift-refactor')
297297
config.swift_demangle_yamldump = inferSwiftBinary('swift-demangle-yamldump')
298298
config.benchmark_o = inferSwiftBinary('Benchmark_O')
299299
config.benchmark_driver = inferSwiftBinary('Benchmark_Driver')
300+
config.wasmer = inferSwiftBinary('wasmer')
301+
config.wasm_ld = inferSwiftBinary('wasm-ld')
300302

301303
config.swift_utils = make_path(config.swift_src_root, 'utils')
302304
config.line_directive = make_path(config.swift_utils, 'line-directive')
@@ -1340,6 +1342,73 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
13401342
'-L%s' % make_path(test_resource_dir, config.target_sdk_name)])
13411343
# The Swift interpreter is not available when targeting Android.
13421344
config.available_features.discard('swift_interpreter')
1345+
elif run_os == 'wasi':
1346+
lit_config.note("Testing WebAssembly/WASI " + config.variant_triple)
1347+
1348+
config.target_object_format = "wasm"
1349+
config.target_shared_library_prefix = 'lib'
1350+
config.target_shared_library_suffix = ".a"
1351+
config.target_sdk_name = "wasi"
1352+
config.target_runtime = "native"
1353+
1354+
config.target_swift_autolink_extract = inferSwiftBinary("swift-autolink-extract")
1355+
1356+
config.target_build_swift = ' '.join([
1357+
config.swiftc,
1358+
'-target', config.variant_triple,
1359+
'-Xcc', '--sysroot=%s' % config.variant_sdk,
1360+
'-Xclang-linker', '--sysroot=%s' % config.variant_sdk,
1361+
'-toolchain-stdlib-rpath', resource_dir_opt,
1362+
mcp_opt, config.swift_test_options,
1363+
config.swift_driver_test_options, swift_execution_tests_extra_flags])
1364+
config.target_codesign = "echo"
1365+
config.target_build_swift_dylib = (
1366+
"%s -parse-as-library -emit-library -o '\\1'"
1367+
% (config.target_build_swift))
1368+
config.target_add_rpath = ''
1369+
config.target_swift_frontend = ' '.join([
1370+
config.swift,
1371+
'-frontend',
1372+
'-target', config.variant_triple,
1373+
'-Xcc', '--sysroot=%s' % config.variant_sdk,
1374+
resource_dir_opt, mcp_opt,
1375+
config.swift_test_options, config.swift_frontend_test_options])
1376+
subst_target_swift_frontend_mock_sdk = config.target_swift_frontend
1377+
subst_target_swift_frontend_mock_sdk_after = ""
1378+
config.target_run = '%s run --backend cranelift --' % config.wasmer
1379+
if 'interpret' in lit_config.params:
1380+
use_interpreter_for_simple_runs()
1381+
config.target_sil_opt = (
1382+
'%s -target %s %s %s %s' %
1383+
(config.sil_opt, config.variant_triple, resource_dir_opt, mcp_opt, config.sil_test_options))
1384+
config.target_swift_symbolgraph_extract = ' '.join([
1385+
config.swift_symbolgraph_extract,
1386+
'-target', config.variant_triple,
1387+
mcp_opt])
1388+
config.target_swift_ide_test = (
1389+
'%s -target %s %s %s %s' %
1390+
(config.swift_ide_test, config.variant_triple, resource_dir_opt,
1391+
mcp_opt, ccp_opt))
1392+
subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test
1393+
subst_target_swift_ide_test_mock_sdk_after = ""
1394+
config.target_swiftc_driver = (
1395+
"%s -target %s -toolchain-stdlib-rpath %s %s" %
1396+
(config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt))
1397+
config.target_swift_modulewrap = (
1398+
'%s -modulewrap -target %s' %
1399+
(config.swiftc, config.variant_triple))
1400+
config.target_swift_emit_pcm = (
1401+
'%s -emit-pcm -target %s' %
1402+
(config.swiftc, config.variant_triple))
1403+
config.target_clang = (
1404+
"%s -target %s %s -fobjc-runtime=ios-5.0" %
1405+
(config.clang, config.variant_triple, clang_mcp_opt))
1406+
config.target_ld = (
1407+
"%s -L%r" %
1408+
(config.wasm_ld, make_path(test_resource_dir, config.target_sdk_name)))
1409+
1410+
# The Swift interpreter is not available when targeting WebAssembly/WASI.
1411+
config.available_features.discard('swift_interpreter')
13431412

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

0 commit comments

Comments
 (0)