mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Currently, swift-frontend will always try to infer a default CASPath if no `-cas-path` is passed. The function `getDefaultOnDiskCASPath` called to infer the default path can fatal error in some environment where no caching directory and home directory, no matter if caching is used or not. Remove the inferred path during parsing since that is not strictly necessary. If caching is enabled and no CASPath is passed, error can be issued during CAS construction time. rdar://158899187
31 lines
1.7 KiB
Swift
31 lines
1.7 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: mkdir -p %t/cas
|
|
|
|
// RUN: not %target-swift-frontend -c -cache-compile-job -cas-path %t/cas %s -o %t/test.o 2>&1 | %FileCheck %s --check-prefix=NO-CASFS
|
|
// NO-CASFS: caching is enabled without CAS file-system options
|
|
|
|
// RUN: %target-swift-frontend -scan-dependencies -module-name Test -O \
|
|
// RUN: -disable-implicit-string-processing-module-import -disable-implicit-concurrency-module-import -parse-stdlib \
|
|
// RUN: %s -o %t/deps.json -swift-version 5 -cache-compile-job -cas-path %t/cas
|
|
|
|
// RUN: %{python} %S/Inputs/BuildCommandExtractor.py %t/deps.json Test > %t/MyApp.cmd
|
|
// RUN: echo "\"-disable-implicit-string-processing-module-import\"" >> %t/MyApp.cmd
|
|
// RUN: echo "\"-disable-implicit-concurrency-module-import\"" >> %t/MyApp.cmd
|
|
// RUN: echo "\"-parse-stdlib\"" >> %t/MyApp.cmd
|
|
|
|
// RUN: not %target-swift-frontend -c -cache-compile-job %s -o %t/test.o @%t/MyApp.cmd 2>&1 | %FileCheck %s --check-prefix=NOT-CONFIG
|
|
// NOT-CONFIG: error: CAS cannot be initialized from the specified '-cas-*' options: no CAS options provided
|
|
|
|
// RUN: %target-swift-frontend -c -cache-compile-job -cas-path %t/cas %s -o %t/test.o @%t/MyApp.cmd
|
|
// RUN: %cache-tool -cas-path %t/cas -cache-tool-action print-output-keys -- \
|
|
// RUN: %target-swift-frontend -c -cache-compile-job -cas-path %t/cas %s -o %t/test.o @%t/MyApp.cmd > %t/cache_key.json
|
|
// RUN: %cache-tool -cas-path %t/cas -cache-tool-action validate-outputs %t/cache_key.json
|
|
|
|
/// make sure validate fails if the cas is cleared.
|
|
// RUN: rm -rf %t/cas
|
|
// RUN: not %cache-tool -cas-path %t/cas -cache-tool-action validate-outputs %t/cache_key.json 2>&1 | %FileCheck %s
|
|
|
|
// CHECK: failed to find output for cache key
|
|
|
|
func testFunc() {}
|