Skip to content

[build] Remove intermediate pipeline so that we can guarantee that we always have a fresh swift-dispatch when running swift tests. #65829

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

Merged
merged 2 commits into from
Sep 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 4 additions & 11 deletions test/Concurrency/Runtime/async_task_priority_current.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,10 @@

import Dispatch

// Work around the inability of older Swift runtimes to print a task priority.
extension TaskPriority: CustomStringConvertible {
public var description: String {
"TaskPriority(rawValue: \(rawValue))"
}
}

@available(SwiftStdlib 5.1, *)
@main struct Main {
static func main() async {
print("main priority: \(Task.currentPriority)") // CHECK: main priority: TaskPriority(rawValue: [[#MAIN_PRIORITY:]])
print("main priority: \(Task.currentPriority)") // CHECK: main priority: TaskPriority.medium
await test_detach()
await test_multiple_lo_indirectly_escalated()
}
Expand All @@ -29,18 +22,18 @@ extension TaskPriority: CustomStringConvertible {
@available(SwiftStdlib 5.1, *)
func test_detach() async {
let a1 = Task.currentPriority
print("a1: \(a1)") // CHECK: a1: TaskPriority(rawValue: [[#MAIN_PRIORITY]])
print("a1: \(a1)") // CHECK: a1: TaskPriority.medium

// Note: remember to detach using a higher priority, otherwise a lower one
// might be escalated by the get() and we could see `default` in the detached
// task.
await detach(priority: .userInitiated) {
let a2 = Task.currentPriority
print("a2: \(a2)") // CHECK: a2: TaskPriority(rawValue: 25)
print("a2: \(a2)") // CHECK: a2: TaskPriority.high
}.get()

let a3 = Task.currentPriority
print("a3: \(a3)") // CHECK: a3: TaskPriority(rawValue: [[#MAIN_PRIORITY]])
print("a3: \(a3)") // CHECK: a3: TaskPriority.medium
}

@available(SwiftStdlib 5.1, *)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// RUN: %target-run-simple-swift( -Xfrontend -disable-availability-checking -parse-as-library)
// RUN: %target-run-simple-swift( -Xfrontend -disable-availability-checking %import-libdispatch -parse-as-library)

// REQUIRES: concurrency
// REQUIRES: executable_test
Expand Down
6 changes: 4 additions & 2 deletions test/lit.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -1643,15 +1643,17 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
libdispatch_artifact_dir = config.libdispatch_build_path
libdispatch_swift_module_dir = make_path(libdispatch_artifact_dir, 'src', 'swift', 'swift')
libdispatch_source_dir = make_path(config.swift_src_root, os.pardir, 'swift-corelibs-libdispatch')
libdispatch_vfs_yaml = make_path(libdispatch_artifact_dir, 'dispatch-vfs-overlay.yaml')
libdispatch_artifacts = [
libdispatch_vfs_yaml,
make_path(libdispatch_artifact_dir, 'libdispatch.so'),
make_path(libdispatch_artifact_dir, 'libswiftDispatch.so'),
make_path(libdispatch_swift_module_dir, 'Dispatch.swiftmodule')]
if (all(os.path.exists(p) for p in libdispatch_artifacts)):
config.available_features.add('libdispatch')
config.libdispatch_artifact_dir = libdispatch_artifact_dir
config.import_libdispatch = ('-I %s -I %s -L %s'
% (libdispatch_source_dir, libdispatch_swift_module_dir, libdispatch_artifact_dir))
config.import_libdispatch = ('-I %s -I %s -L %s -vfsoverlay %s'
% (libdispatch_source_dir, libdispatch_swift_module_dir, libdispatch_artifact_dir, libdispatch_vfs_yaml))

libdispatch_static_artifact_dir = os.path.join(config.libdispatch_static_build_path, 'lib')
libdispatch_static_artifacts = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ def compute_product_pipelines(self):
# the build-script code base. The main difference is that these are all
# build, tested, and installed all at once instead of performing build,
# test, install like a normal build-script product.
builder.begin_impl_pipeline(should_run_epilogue_operations=False)
builder.begin_impl_pipeline(should_run_epilogue_operations=True)

builder.add_impl_product(products.LibCXX,
is_enabled=self.args.build_libcxx)
Expand All @@ -613,11 +613,6 @@ def compute_product_pipelines(self):
is_enabled=self.args.build_swift)
builder.add_impl_product(products.LLDB,
is_enabled=self.args.build_lldb)

# Begin a new build-script-impl pipeline that builds libraries that we
# build as part of build-script-impl but that we should eventually move
# onto build-script products.
builder.begin_impl_pipeline(should_run_epilogue_operations=True)
builder.add_impl_product(products.LibDispatch,
is_enabled=self.args.build_libdispatch)
builder.add_impl_product(products.Foundation,
Expand Down