-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[android][test] Fix or disable the remaining failing tests on the Android CI #81398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,7 @@ | |
// APPLE-NEXT: (End of search path lists.) | ||
|
||
// Non-Apple platforms don't have any implicit framework search paths. | ||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk-nosource) -target x86_64-unknown-linux-android -parse %s -Rmodule-loading 2>&1 | %FileCheck -check-prefix=ANDROID %s | ||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk-nosource) -target x86_64-unknown-linux-android -parse -parse-stdlib %s -Rmodule-loading 2>&1 | %FileCheck -check-prefix=ANDROID %s | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I just noticed this test failing on the Android AArch64 CI alone in the last couple days with no output since it was added in #81269, so I ran the same command locally and got this error:
Since this passes on the Android x86_64 CI, this is another variant of the stdlib search path issue I raised for @ian-twilightcoder, let me know what you think of this minor tweak to your new test for the Android CI. |
||
// ANDROID: Implicit framework search paths: | ||
// ANDROID-NEXT: Runtime library import search paths: | ||
// ANDROID-NEXT: [0] BUILD_DIR/lib/swift/android | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,8 +28,8 @@ import empty | |
|
||
|
||
// RUN: %target-swift-frontend -target %target-cpu-unknown-linux-gnu -emit-module -parse-stdlib -o %t -module-name empty -module-link-name empty %S/../Inputs/empty.swift | ||
// RUN: %target-swift-emit-ir -target %target-cpu-unknown-linux-gnu -lto=llvm-full -parse-stdlib -I %t -I %S/Inputs -DTEST_CLANG_OPTIONS_MERGE %s | %FileCheck %s --check-prefix CHECK-ELF-MERGE | ||
// RUN: %target-swift-emit-ir -target %target-cpu-unknown-linux-gnu -lto=llvm-thin -parse-stdlib -I %t -I %S/Inputs -DTEST_CLANG_OPTIONS_MERGE %s | %FileCheck %s --check-prefix CHECK-ELF-MERGE | ||
// RUN: %target-swift-emit-ir -target %target-cpu-unknown-linux-gnu -lto=llvm-full -parse-stdlib -nostdimport -I %t -I %S/Inputs -DTEST_CLANG_OPTIONS_MERGE %s | %FileCheck %s --check-prefix CHECK-ELF-MERGE | ||
// RUN: %target-swift-emit-ir -target %target-cpu-unknown-linux-gnu -lto=llvm-thin -parse-stdlib -nostdimport -I %t -I %S/Inputs -DTEST_CLANG_OPTIONS_MERGE %s | %FileCheck %s --check-prefix CHECK-ELF-MERGE | ||
|
||
// CHECK-ELF-MERGE-DAG: !llvm.dependent-libraries = !{ | ||
// CHECK-ELF-MERGE-DAG: !{{[0-9]+}} = !{!"empty"} | ||
|
@@ -43,8 +43,4 @@ import AutolinkElfCPragma | |
import AutolinkModuleMapLink | ||
#endif | ||
|
||
// UNSUPPORTED: OS=macosx && CPU=arm64 | ||
// UNSUPPORTED: OS=ios && CPU=arm64e | ||
// UNSUPPORTED: OS=watchos && (CPU=arm64_32 || CPU=armv7k) | ||
Comment on lines
-46
to
-48
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Removing these seems to have caused failures in iOS and macOS bots, e.g., https://ci.swift.org/job/oss-swift_tools-RA_stdlib-DA_test-device-non_executable/8901. Is there a specific reason to believe that these are no longer necessary? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I fixed it on linux and Android, so I asked about fixing it on Darwin too. Allan, who originally disabled it, didn't respond, but Evan ran some other CI and said it seemed to work fine. Looking at the error, it's exactly the same as the linux issue I fixed, so I'll submit the same fix for Darwin and if you can run this same failing CI on the Darwin fix, we can finally get it running on Darwin too. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Submitted the fix in #81695 |
||
// UNSUPPORTED: OS=linux-gnu && CPU=aarch64 | ||
// UNSUPPORTED: CPU=wasm32 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -emit-sil -swift-version 5 -use-clang-function-types -experimental-print-full-convention -o - | %FileCheck %s --check-prefix=CHECK-%target-ptrsize | ||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -Xllvm -sil-print-types -emit-sil -swift-version 5 -use-clang-function-types -experimental-print-full-convention -o - | %FileCheck %s --check-prefix=CHECK-%target-ptrsize | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Simply bringing over Erik's recent change |
||
|
||
// REQUIRES: OS=linux-android || OS=linux-androideabi | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2405,10 +2405,15 @@ def find_compiler_rt_libs(): | |
# Next check for the old scheme 'clang/lib/<os-name>', ignoring | ||
# any target environment which is currently part of 'run_os'. | ||
path = make_path(base, run_os.split('-')[0]) | ||
|
||
# Check if the Android environment needs to be in the name. | ||
env = '' | ||
if run_os.startswith('linux-android'): | ||
env = '-android' | ||
if os.path.exists(path): | ||
# We should then have the architecture in the name. | ||
for lib in os.listdir(path): | ||
match = re.match(r'(?:lib)?clang_rt\.(\w+)-' + run_cpu, lib) | ||
match = re.match(r'(?:lib)?clang_rt\.(\w+)-' + run_cpu + env, lib) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If running the Android x86_64 tests on linux x86_64, this was detecting the linux clang_rt libraries and wrongly enabling all these sanitizer tests for Android too, which then fail because the compiler correctly checks for this environment suffix. Checking for the suffix here too makes sure the Android-specific libraries are available, and disables the sanitizer tests on the Android CI when they aren't. |
||
if match: | ||
libs[match[1]] = lib | ||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.