Skip to content

Commit 5b10335

Browse files
authored
Merge pull request #39147 from gottesmm/pr-647d874e9cb1793da138aab4d9e0a864f3555227
[swift-refactor] When testing always specify a resource-dir
2 parents 2282160 + e2c1db5 commit 5b10335

File tree

4 files changed

+42
-29
lines changed

4 files changed

+42
-29
lines changed

test/lit.cfg

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -348,12 +348,12 @@ config.link = lit.util.which('link', config.environment.get('PATH', '')) or
348348

349349
# Find the resource directory. Assume it's near the swift compiler if not set.
350350
test_resource_dir = lit_config.params.get('test_resource_dir')
351+
config.resource_dir_opt = ""
351352
if test_resource_dir:
352-
resource_dir_opt = ("-resource-dir %s" % test_resource_dir)
353+
config.resource_dir_opt = ("-resource-dir %s" % test_resource_dir)
353354
else:
354355
test_resource_dir = make_path(config.swift_lib_dir, 'swift')
355-
resource_dir_opt = ""
356-
stdlib_resource_dir_opt = resource_dir_opt
356+
stdlib_resource_dir_opt = config.resource_dir_opt
357357
sourcekitd_framework_dir = config.swift_lib_dir
358358
config.substitutions.append( ('%test-resource-dir', test_resource_dir) )
359359
lit_config.note('Using resource dir: ' + test_resource_dir)
@@ -396,7 +396,7 @@ if test_sdk_overlay_dir is not None:
396396
"-L %s -Xlinker -rpath -Xlinker %s" %
397397
(sdk_overlay_link_path_dir, sdk_overlay_link_path_dir))
398398
lit_config.note('Using SDK overlay dir: ' + test_sdk_overlay_dir)
399-
resource_dir_opt += (" %s" % sdk_overlay_dir_opt)
399+
config.resource_dir_opt += (" %s" % sdk_overlay_dir_opt)
400400

401401
# Default to Swift 4 for now.
402402
# Note that this accepts both `--param swift-version` (like the compiler flag)
@@ -931,7 +931,7 @@ if run_vendor == 'apple':
931931
symlink_if_not_exists("clang", "clang")
932932
symlink_if_not_exists("shims", "shims")
933933
symlink_if_not_exists("freestanding", "macosx")
934-
resource_dir_opt = "-resource-dir %s" % new_resource_dir
934+
config.resource_dir_opt = "-resource-dir %s" % new_resource_dir
935935
lit_config.note('Using freestanding resource dir: ' + new_resource_dir)
936936

937937
xcrun_prefix = (
@@ -941,7 +941,7 @@ if run_vendor == 'apple':
941941
"Developer", "Library", "Frameworks")
942942
target_options = (
943943
"-target %s %s %s" %
944-
(config.variant_triple, resource_dir_opt, mcp_opt))
944+
(config.variant_triple, config.resource_dir_opt, mcp_opt))
945945
target_options_for_mock_sdk = (
946946
"-target %s %s %s" %
947947
(config.variant_triple, stdlib_resource_dir_opt, mcp_opt))
@@ -1217,7 +1217,7 @@ elif run_os in ['windows-msvc']:
12171217

12181218
config.target_build_swift = \
12191219
('%r -target %s %s %s %s %s -libc %s' % \
1220-
(config.swiftc, config.variant_triple, resource_dir_opt, \
1220+
(config.swiftc, config.variant_triple, config.resource_dir_opt, \
12211221
config.swift_test_options, config.swift_driver_test_options,\
12221222
swift_execution_tests_extra_flags, \
12231223
config.swift_stdlib_msvc_runtime))
@@ -1227,7 +1227,7 @@ elif run_os in ['windows-msvc']:
12271227
config.target_swift_frontend = \
12281228
('%r -target %s %s %s %s %s' % (config.swift_frontend, \
12291229
config.variant_triple, \
1230-
resource_dir_opt, mcp_opt, \
1230+
config.resource_dir_opt, mcp_opt, \
12311231
config.swift_test_options, \
12321232
config.swift_frontend_test_options))
12331233

@@ -1249,7 +1249,7 @@ elif run_os in ['windows-msvc']:
12491249
config.target_sdk_name)))
12501250
config.target_sil_opt = \
12511251
('%r -target %s %s %s %s' % (config.sil_opt, config.variant_triple, \
1252-
resource_dir_opt, mcp_opt, \
1252+
config.resource_dir_opt, mcp_opt, \
12531253
config.sil_test_options))
12541254
subst_target_sil_opt_mock_sdk = config.target_sil_opt
12551255
subst_target_sil_opt_mock_sdk_after = ''
@@ -1264,14 +1264,14 @@ elif run_os in ['windows-msvc']:
12641264
config.target_swift_ide_test = \
12651265
('%r -target %s %s %s %s' % (config.swift_ide_test, \
12661266
config.variant_triple, \
1267-
resource_dir_opt, mcp_opt, ccp_opt))
1267+
config.resource_dir_opt, mcp_opt, ccp_opt))
12681268

12691269
subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test
12701270
subst_target_swift_ide_test_mock_sdk_after = ''
12711271

12721272
config.target_swiftc_driver = \
12731273
('%r -target %s %s %s %s' % (config.swiftc, config.variant_triple, \
1274-
resource_dir_opt, mcp_opt, \
1274+
config.resource_dir_opt, mcp_opt, \
12751275
config.swift_driver_test_options))
12761276
config.target_swift_modulewrap = \
12771277
('%r -modulewrap -target %s' % (config.swiftc, config.variant_triple))
@@ -1365,7 +1365,7 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
13651365

13661366
config.target_build_swift = (
13671367
'%s -target %s -toolchain-stdlib-rpath %s %s %s %s %s'
1368-
% (config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt,
1368+
% (config.swiftc, config.variant_triple, config.resource_dir_opt, mcp_opt,
13691369
config.swift_test_options, config.swift_driver_test_options,
13701370
swift_execution_tests_extra_flags))
13711371
config.target_codesign = "echo"
@@ -1375,7 +1375,7 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
13751375
config.target_add_rpath = r'-Xlinker -rpath -Xlinker \1'
13761376
config.target_swift_frontend = (
13771377
'%s -target %s %s %s %s %s '
1378-
% (config.swift_frontend, config.variant_triple, resource_dir_opt, mcp_opt,
1378+
% (config.swift_frontend, config.variant_triple, config.resource_dir_opt, mcp_opt,
13791379
config.swift_test_options, config.swift_frontend_test_options))
13801380
subst_target_swift_frontend_mock_sdk = config.target_swift_frontend
13811381
subst_target_swift_frontend_mock_sdk_after = ""
@@ -1384,7 +1384,7 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
13841384
use_interpreter_for_simple_runs()
13851385
config.target_sil_opt = (
13861386
'%s -target %s %s %s %s' %
1387-
(config.sil_opt, config.variant_triple, resource_dir_opt, mcp_opt, config.sil_test_options))
1387+
(config.sil_opt, config.variant_triple, config.resource_dir_opt, mcp_opt, config.sil_test_options))
13881388
subst_target_sil_opt_mock_sdk = config.target_sil_opt
13891389
subst_target_sil_opt_mock_sdk_after = ""
13901390
config.target_swift_symbolgraph_extract = (
@@ -1395,13 +1395,13 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
13951395
(config.swift_api_extract, config.variant_triple, config.variant_sdk))
13961396
config.target_swift_ide_test = (
13971397
'%s -target %s %s %s %s' %
1398-
(config.swift_ide_test, config.variant_triple, resource_dir_opt,
1398+
(config.swift_ide_test, config.variant_triple, config.resource_dir_opt,
13991399
mcp_opt, ccp_opt))
14001400
subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test
14011401
subst_target_swift_ide_test_mock_sdk_after = ""
14021402
config.target_swiftc_driver = (
14031403
"%s -target %s -toolchain-stdlib-rpath %s %s %s" %
1404-
(config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt, config.swift_driver_test_options))
1404+
(config.swiftc, config.variant_triple, config.resource_dir_opt, mcp_opt, config.swift_driver_test_options))
14051405
config.target_swift_modulewrap = (
14061406
'%s -modulewrap -target %s' %
14071407
(config.swiftc, config.variant_triple))
@@ -1463,7 +1463,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
14631463
shell_quote(make_path(
14641464
toolchain_directory, "lib", "gcc", ndk_platform_triple,
14651465
"{}.x".format(config.android_ndk_gcc_version))))
1466-
resource_dir_opt = ("-resource-dir %s" % test_resource_dir)
1466+
config.resource_dir_opt = ("-resource-dir %s" % test_resource_dir)
14671467
# Since NDK r19, the headers and libraries are available in a unified
14681468
# sysroot at $NDK_PATH/toolchains/llvm/prebuilt/$prebuilt_directory/sysroot,
14691469
# so the -sdk switch can now be used.
@@ -1474,7 +1474,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
14741474
'--target={}{}'.format(config.variant_triple, config.android_api_level),
14751475
'-tools-directory', tools_directory,
14761476
android_link_paths_opt, '-use-ld=%s' % config.android_linker_name,
1477-
resource_dir_opt, mcp_opt, config.swift_test_options,
1477+
config.resource_dir_opt, mcp_opt, config.swift_test_options,
14781478
config.swift_driver_test_options, swift_execution_tests_extra_flags])
14791479
config.target_codesign = "echo"
14801480
config.target_build_swift_dylib = ' '.join([
@@ -1485,7 +1485,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
14851485
config.target_swift_frontend = ' '.join([
14861486
config.swift_frontend,
14871487
'-target', config.variant_triple,
1488-
'-sdk', config.variant_sdk, android_link_paths_opt, resource_dir_opt,
1488+
'-sdk', config.variant_sdk, android_link_paths_opt, config.resource_dir_opt,
14891489
mcp_opt, config.swift_test_options, config.swift_frontend_test_options])
14901490
subst_target_swift_frontend_mock_sdk = config.target_swift_frontend
14911491
subst_target_swift_frontend_mock_sdk_after = ""
@@ -1496,7 +1496,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
14961496
'env', 'SDKROOT={}'.format(shell_quote(config.variant_sdk)),
14971497
config.sil_opt,
14981498
'-target', config.variant_triple,
1499-
resource_dir_opt, mcp_opt, config.sil_test_options])
1499+
config.resource_dir_opt, mcp_opt, config.sil_test_options])
15001500
subst_target_sil_opt_mock_sdk = config.target_sil_opt
15011501
subst_target_sil_opt_mock_sdk_after = ""
15021502
config.target_swift_symbolgraph_extract = ' '.join([
@@ -1510,7 +1510,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
15101510
config.target_swift_ide_test = ' '.join([
15111511
config.swift_ide_test,
15121512
'-target', config.variant_triple,
1513-
resource_dir_opt, mcp_opt, ccp_opt])
1513+
config.resource_dir_opt, mcp_opt, ccp_opt])
15141514
subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test
15151515
subst_target_swift_ide_test_mock_sdk_after = ""
15161516
config.target_swiftc_driver = ' '.join([
@@ -1520,7 +1520,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
15201520
'-sdk', config.variant_sdk, '-Xclang-linker',
15211521
'--target={}{}'.format(config.variant_triple, config.android_api_level),
15221522
'-tools-directory', tools_directory,
1523-
android_link_paths_opt, resource_dir_opt, mcp_opt,
1523+
android_link_paths_opt, config.resource_dir_opt, mcp_opt,
15241524
'-use-ld=%s' % config.android_linker_name,
15251525
config.swift_driver_test_options])
15261526
config.target_swift_modulewrap = ' '.join([
@@ -1555,7 +1555,7 @@ elif run_os == 'wasi':
15551555
'-target', config.variant_triple,
15561556
'-Xcc', '--sysroot=%s' % config.variant_sdk,
15571557
'-Xclang-linker', '--sysroot=%s' % config.variant_sdk,
1558-
'-toolchain-stdlib-rpath', resource_dir_opt,
1558+
'-toolchain-stdlib-rpath', config.resource_dir_opt,
15591559
mcp_opt, config.swift_test_options,
15601560
config.swift_driver_test_options, swift_execution_tests_extra_flags])
15611561
config.target_codesign = "echo"
@@ -1567,7 +1567,7 @@ elif run_os == 'wasi':
15671567
config.swift_frontend,
15681568
'-target', config.variant_triple,
15691569
'-Xcc', '--sysroot=%s' % config.variant_sdk,
1570-
resource_dir_opt, mcp_opt,
1570+
config.resource_dir_opt, mcp_opt,
15711571
config.swift_test_options, config.swift_frontend_test_options])
15721572
subst_target_swift_frontend_mock_sdk = config.target_swift_frontend
15731573
subst_target_swift_frontend_mock_sdk_after = ""
@@ -1576,20 +1576,20 @@ elif run_os == 'wasi':
15761576
use_interpreter_for_simple_runs()
15771577
config.target_sil_opt = (
15781578
'%s -target %s %s %s %s' %
1579-
(config.sil_opt, config.variant_triple, resource_dir_opt, mcp_opt, config.sil_test_options))
1579+
(config.sil_opt, config.variant_triple, config.resource_dir_opt, mcp_opt, config.sil_test_options))
15801580
config.target_swift_symbolgraph_extract = ' '.join([
15811581
config.swift_symbolgraph_extract,
15821582
'-target', config.variant_triple,
15831583
mcp_opt])
15841584
config.target_swift_ide_test = (
15851585
'%s -target %s %s %s %s' %
1586-
(config.swift_ide_test, config.variant_triple, resource_dir_opt,
1586+
(config.swift_ide_test, config.variant_triple, config.resource_dir_opt,
15871587
mcp_opt, ccp_opt))
15881588
subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test
15891589
subst_target_swift_ide_test_mock_sdk_after = ""
15901590
config.target_swiftc_driver = (
15911591
"%s -target %s -toolchain-stdlib-rpath %s %s" %
1592-
(config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt))
1592+
(config.swiftc, config.variant_triple, config.resource_dir_opt, mcp_opt))
15931593
config.target_swift_modulewrap = (
15941594
'%s -modulewrap -target %s' %
15951595
(config.swiftc, config.variant_triple))

test/refactoring/lit.local.cfg

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ if 'OS=macosx' not in config.available_features:
22
config.unsupported = True
33

44
else:
5-
config.substitutions.append(('%refactor-check-compiles', '{} -swift-refactor {} -swift-frontend {} -temp-dir %t'.format(config.refactor_check_compiles, config.swift_refactor, config.swift_frontend)))
6-
config.substitutions.append(('%refactor', config.swift_refactor))
5+
config.substitutions.append(('%refactor-check-compiles', '{} -swift-refactor {} -swift-frontend {} -temp-dir %t {}'.format(config.refactor_check_compiles, config.swift_refactor, config.swift_frontend, config.resource_dir_opt)))
6+
config.substitutions.append(('%refactor', '{} {}'.format(config.swift_refactor,
7+
config.resource_dir_opt)))

tools/swift-refactor/swift-refactor.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ static llvm::cl::list<std::string>
138138
static llvm::cl::opt<std::string>
139139
Triple("target", llvm::cl::desc("target triple"));
140140

141+
static llvm::cl::opt<std::string> ResourceDir(
142+
"resource-dir",
143+
llvm::cl::desc("The directory that holds the compiler resource files"));
144+
141145
enum class DumpType {
142146
REWRITTEN,
143147
JSON,
@@ -294,6 +298,9 @@ int main(int argc, char *argv[]) {
294298
if (!options::Triple.empty())
295299
Invocation.setTargetTriple(options::Triple);
296300

301+
if (!options::ResourceDir.empty())
302+
Invocation.setRuntimeResourcePath(options::ResourceDir);
303+
297304
Invocation.getFrontendOptions().InputsAndOutputs.addInputFile(
298305
options::SourceFilename);
299306
Invocation.getLangOptions().AttachCommentsToDecls = true;

utils/refactor-check-compiles.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ def parse_args():
8787
'-target',
8888
help='The target triple to build for'
8989
)
90+
parser.add_argument(
91+
'-resource-dir',
92+
help='The resource dir where the stdlib is stored')
9093

9194
return parser.parse_known_args()
9295

@@ -107,6 +110,8 @@ def main():
107110
extra_both_args += ['-sdk', args.sdk]
108111
if args.target:
109112
extra_both_args += ['-target', args.target]
113+
if args.resource_dir:
114+
extra_both_args += ['-resource-dir', args.resource_dir]
110115

111116
dump_text_output = run_cmd([
112117
args.swift_refactor,

0 commit comments

Comments
 (0)