File: availability_maccatalyst_zippered.swift

package info (click to toggle)
swiftlang 6.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,791,532 kB
  • sloc: cpp: 9,901,743; ansic: 2,201,431; asm: 1,091,827; python: 308,252; objc: 82,166; f90: 80,126; lisp: 38,358; pascal: 25,559; sh: 20,429; ml: 5,058; perl: 4,745; makefile: 4,484; awk: 3,535; javascript: 3,018; xml: 918; fortran: 664; cs: 573; ruby: 396
file content (68 lines) | stat: -rw-r--r-- 2,861 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// RUN: %empty-directory(%t)
// RUN: %empty-directory(%t/macos_module)
// RUN: %empty-directory(%t/maccatalyst_module)


// Build a zippered library

// Emit a zippered library and a module for use from macOSProcesses
// RUN: %target-build-swift-dylib(%t/%target-library-name(availability_zippered)) %S/Inputs/availability_zippered.swift -target %target-cpu-apple-macosx10.15 -target-variant %target-cpu-apple-ios13.1-macabi -emit-module -emit-module-path %t/macos_module/
// RUN: %target-codesign %t/%target-library-name(availability_zippered)

// Emit just an macCatalyst module for use from an macCatalyst process
// RUN: %target-build-swift %S/Inputs/availability_zippered.swift -target %target-cpu-apple-ios13.1-macabi -emit-module -emit-module-path %t/maccatalyst_module/

// Build a macOS executable that calls into the library
// RUN: %target-build-swift -emit-executable -target %target-cpu-apple-macosx10.15 %s -lavailability_zippered -I %t/macos_module -L %t -o %t/a-macos.out
// RUN: %target-codesign %t/a-macos.out

// Built an macCatalyst executable that calls into the library.
// RUN: %target-build-swift -target %target-cpu-apple-ios13.1-macabi %s -lavailability_zippered -I %t/maccatalyst_module -L %t -o %t/a-maccatalyst.out
// RUN: %target-codesign %t/a-maccatalyst.out

// RUN: %target-run %t/a-macos.out %t/%target-library-name(availability_zippered)
// RUN: %target-run %t/a-maccatalyst.out %t/%target-library-name(availability_zippered)

// REQUIRES: executable_test
// REQUIRES: maccatalyst_support
// REQUIRES: OS=maccatalyst || OS=macosx


import availability_zippered

// The purpose of this test is to check the semantics of #available in zippered
// code. Executables themselves can't be zippered (only libraries) so we
// call into a zippered dylib.

import StdlibUnittest

var ZipperedAvailabilityTestSuite = TestSuite("ZipperedAvailabilityTestSuite")

#if os(macOS)
ZipperedAvailabilityTestSuite.test("zippered availability macOS") {
  expectFalse(isMacOSAfterFarFutureOriOSAfterFarFuture())
  expectTrue(isMacOSAfterDistantPastOriOSAfterDistantPast())

  expectTrue(isMacOSAfterDistantPastOriOSAfterFarFuture())
  expectFalse(isMacOSAfterFarFutureOriOSAfterDistantPast())

  expectTrue(isMacOSAfterDistantPastOriOSAfterFarFuture())
  expectFalse(isMacOSAfterFarFutureOriOSAfterDistantPast())
}
#endif

#if os(iOS)
ZipperedAvailabilityTestSuite.test("zippered availability iOS") {
  expectFalse(isMacOSAfterFarFutureOriOSAfterFarFuture())
  expectTrue(isMacOSAfterDistantPastOriOSAfterDistantPast())

  // These tests will fail on systems earlier than macOS 10.15.
  expectFalse(isMacOSAfterDistantPastOriOSAfterFarFuture())
  expectTrue(isMacOSAfterFarFutureOriOSAfterDistantPast())
  expectFalse(isMacOSAfterDistantPastOriOSAfterFarFuture())
  expectTrue(isMacOSAfterFarFutureOriOSAfterDistantPast())
}
#endif


runAllTests()