Merge pull request #84482 from eeckstein/smallprojectionpath-tests

SIL: use `Test` for the SmallProjectionPath's unit tests
This commit is contained in:
eeckstein
2025-09-25 17:37:04 +02:00
committed by GitHub
8 changed files with 309 additions and 332 deletions

View File

@@ -150,7 +150,6 @@ private func registerSwiftPasses() {
registerPass(deadEndBlockDumper, { deadEndBlockDumper.run($0) })
registerPass(memBehaviorDumper, { memBehaviorDumper.run($0) })
registerPass(rangeDumper, { rangeDumper.run($0) })
registerPass(runUnitTests, { runUnitTests.run($0) })
registerPass(testInstructionIteration, { testInstructionIteration.run($0) })
registerPass(updateBorrowedFromPass, { updateBorrowedFromPass.run($0) })
}

View File

@@ -15,7 +15,6 @@ swift_compiler_sources(Optimizer
MemBehaviorDumper.swift
SILPrinter.swift
RangeDumper.swift
RunUnitTests.swift
UpdateBorrowedFrom.swift
TestInstructionIteration.swift
)

View File

@@ -1,24 +0,0 @@
//===--- UnitTests.swift - A pseudo pass for running the unit tests -------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2021 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import SIL
/// This pass should only be used by sil-opt to run all the unit tests.
///
let runUnitTests = ModulePass(name: "run-unit-tests") {
(context: ModulePassContext) in
print("--- Run unit tests ---")
print("test ProjectionPath")
SmallProjectionPath.runUnitTests()
}

View File

@@ -680,8 +680,8 @@ extension StringParser {
// Unit Tests
//===----------------------------------------------------------------------===//
extension SmallProjectionPath {
public static func runUnitTests() {
let smallProjectionPathTest = Test("small_projection_path") {
function, arguments, context in
basicPushPop()
parsing()
@@ -983,5 +983,4 @@ extension SmallProjectionPath {
let (k4, _, s4) = p4.pop()
assert(k4 == .anyIndexedElement && s4.isEmpty)
}
}
}

View File

@@ -142,6 +142,7 @@ public func registerTests() {
// Register each test.
registerTests(
parseTestSpecificationTest,
smallProjectionPathTest,
getAccessBaseTest,
borrowIntroducersTest,
enclosingValuesTest,

View File

@@ -163,8 +163,6 @@ MODULE_PASS(MandatoryAllocBoxToStack, "mandatory-allocbox-to-stack",
"Mandatory stack promotion of box objects")
MODULE_PASS(AsyncDemotion, "async-demotion",
"Convert async functions to be synchronous")
MODULE_PASS(RunUnitTests, "run-unit-tests",
"Runs the compiler internal unit tests")
MODULE_PASS(FunctionUsesDumper, "dump-function-uses",
"Dump the results of FunctionUses")
MODULE_PASS(MandatoryPerformanceOptimizations, "mandatory-performance-optimizations",

View File

@@ -0,0 +1,9 @@
// RUN: %target-sil-opt -test-runner -sil-disable-input-verify %s -o /dev/null
sil_stage raw
sil @small_projection_path_unit_tests : $@convention(thin) () -> () {
bb0:
specify_test "small_projection_path"
unreachable
}

View File

@@ -1,4 +0,0 @@
// RUN: %target-sil-opt %s -run-unit-tests -o /dev/null
// REQUIRES: swift_in_compiler