From d4e09b0944a60e92eb9b658e11daf8e93f1f05dd Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Fri, 15 May 2020 15:32:03 -0700 Subject: [PATCH] [silgen] Add an extra swift-version 5 run to initializer tests. We currently run these in swift-version 4 by default. This caused us to miss some bugs that only occur in swift-version 5 due to initializer changes happening in swift 5. This at least will allow us to catch such issues in the future. NOTE: I am also going to change objc_throwing_initializers.swift in the same way, but after I fix the bugs that adding -swift-version 5 exposes therein (which is actually ) --- .../convenience_init_peer_delegation.swift | 17 ++++++++++++++++- test/Interpreter/failable_initializers.swift | 4 +++- test/Interpreter/initializers.swift | 4 +++- .../objc_failable_initializers.swift | 10 ++++++++++ test/Interpreter/protocol_initializers.swift | 10 +++++++++- .../protocol_initializers_class.swift | 8 +++----- test/Interpreter/throwing_initializers.swift | 4 +++- 7 files changed, 47 insertions(+), 10 deletions(-) diff --git a/test/Interpreter/convenience_init_peer_delegation.swift b/test/Interpreter/convenience_init_peer_delegation.swift index be1cb83e66de3..5a97589dfb2a2 100644 --- a/test/Interpreter/convenience_init_peer_delegation.swift +++ b/test/Interpreter/convenience_init_peer_delegation.swift @@ -1,14 +1,29 @@ // RUN: %empty-directory(%t) - +// // RUN: %target-build-swift %s -Xfrontend -disable-objc-attr-requires-foundation-module -o %t/main // RUN: %target-codesign %t/main // RUN: %target-run %t/main | %FileCheck %s +// RUN: %empty-directory(%t) +// // RUN: sed -e 's/required//g' < %s > %t/without_required.swift // RUN: %target-build-swift %t/without_required.swift -Xfrontend -disable-objc-attr-requires-foundation-module -o %t/without_required // RUN: %target-codesign %t/without_required // RUN: %target-run %t/without_required | %FileCheck %s +// RUN: %empty-directory(%t) +// +// RUN: %target-build-swift %s -Xfrontend -disable-objc-attr-requires-foundation-module -o %t/main -swift-version 5 +// RUN: %target-codesign %t/main +// RUN: %target-run %t/main | %FileCheck %s + +// RUN: %empty-directory(%t) +// +// RUN: sed -e 's/required//g' < %s > %t/without_required.swift +// RUN: %target-build-swift %t/without_required.swift -Xfrontend -disable-objc-attr-requires-foundation-module -o %t/without_required -swift-version 5 +// RUN: %target-codesign %t/without_required +// RUN: %target-run %t/without_required | %FileCheck %s + // REQUIRES: executable_test // REQUIRES: objc_interop // XFAIL: CPU=arm64e diff --git a/test/Interpreter/failable_initializers.swift b/test/Interpreter/failable_initializers.swift index 28fd7f2926bc3..9ca1d54c329f7 100644 --- a/test/Interpreter/failable_initializers.swift +++ b/test/Interpreter/failable_initializers.swift @@ -1,4 +1,6 @@ -// RUN: %target-run-simple-swift +// RUN: %target-run-simple-swift(-swift-version 4) +// RUN: %target-run-simple-swift(-swift-version 5) + // REQUIRES: executable_test import StdlibUnittest diff --git a/test/Interpreter/initializers.swift b/test/Interpreter/initializers.swift index 36bcb374de91a..97715d025cd58 100644 --- a/test/Interpreter/initializers.swift +++ b/test/Interpreter/initializers.swift @@ -1,4 +1,6 @@ -// RUN: %target-run-simple-swift | %FileCheck %s +// RUN: %target-run-simple-swift(-swift-version 4) | %FileCheck %s +// RUN: %target-run-simple-swift(-swift-version 5) | %FileCheck %s + // REQUIRES: executable_test // Test initialization and initializer inheritance. diff --git a/test/Interpreter/objc_failable_initializers.swift b/test/Interpreter/objc_failable_initializers.swift index e45b2fd4774a3..637fb94c9b60f 100644 --- a/test/Interpreter/objc_failable_initializers.swift +++ b/test/Interpreter/objc_failable_initializers.swift @@ -5,6 +5,16 @@ // RUN: %target-codesign %t/a.out // RUN: %target-run %t/a.out +// RUN: %empty-directory(%t) +// +// target-build-swift assumes we want -swift-version 4. Behavior in initializers +// changed in swift 5, so we want to explicitly check it as well. +// +// RUN: %target-clang -fobjc-arc %S/Inputs/ObjCClasses/ObjCClasses.m -c -o %t/ObjCClasses.o +// RUN: %target-build-swift -I %S/Inputs/ObjCClasses/ -Xlinker %t/ObjCClasses.o %s -o %t/a.out -swift-version 5 +// RUN: %target-codesign %t/a.out +// RUN: %target-run %t/a.out + // REQUIRES: executable_test // REQUIRES: objc_interop diff --git a/test/Interpreter/protocol_initializers.swift b/test/Interpreter/protocol_initializers.swift index e399337af6d1b..cfdd42bfa8977 100644 --- a/test/Interpreter/protocol_initializers.swift +++ b/test/Interpreter/protocol_initializers.swift @@ -1,8 +1,16 @@ + // RUN: %empty-directory(%t) -// RUN: %target-build-swift -swift-version 5 %s -o %t/a.out +// +// RUN: %target-build-swift %s -o %t/a.out // RUN: %target-codesign %t/a.out +// RUN: %target-run %t/a.out + +// RUN: %empty-directory(%t) // +// RUN: %target-build-swift -swift-version 5 %s -o %t/a.out +// RUN: %target-codesign %t/a.out // RUN: %target-run %t/a.out + // REQUIRES: executable_test import StdlibUnittest diff --git a/test/Interpreter/protocol_initializers_class.swift b/test/Interpreter/protocol_initializers_class.swift index 9a841b7f66224..a5ce65f2e8d08 100644 --- a/test/Interpreter/protocol_initializers_class.swift +++ b/test/Interpreter/protocol_initializers_class.swift @@ -1,8 +1,6 @@ -// RUN: %empty-directory(%t) -// RUN: %target-build-swift -swift-version 5 %s -o %t/a.out -// RUN: %target-codesign %t/a.out -// -// RUN: %target-run %t/a.out +// RUN: %target-run-simple-swift(-swift-version 4) +// RUN: %target-run-simple-swift(-swift-version 5) + // REQUIRES: executable_test import StdlibUnittest diff --git a/test/Interpreter/throwing_initializers.swift b/test/Interpreter/throwing_initializers.swift index 1ea9171fa5382..59f256596ff73 100644 --- a/test/Interpreter/throwing_initializers.swift +++ b/test/Interpreter/throwing_initializers.swift @@ -1,4 +1,6 @@ -// RUN: %target-run-simple-swift +// RUN: %target-run-simple-swift(-swift-version 4) +// RUN: %target-run-simple-swift(-swift-version 5) + // REQUIRES: executable_test import StdlibUnittest