Files
swift-mirror/test/PrintAsObjC/unmodified.swift
Jordan Rose 95856c05fb If the generated header doesn't change, don't touch the original file.
Mixed-source targets generally include the generated <Product>-Swift.h
header in many Objective-C (.m) source files. Any change to a Swift file
results in the header being touched, which means all the .m files get
recompiled.

This change makes Swift write the generated header to a temporary file
first, then use the previous commit's moveFileIfDifferent to put it in
its final destination.

rdar://problem/20553459

Swift SVN r28042
2015-05-01 17:40:31 +00:00

28 lines
963 B
Swift

// RUN: rm -rf %t && mkdir %t
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -parse -emit-objc-header-path %t/out.h
// RUN: touch -t 201401240005 %t/out.h
// RUN: %S/Inputs/getmtime.py %t/out.h > %t/orig-mtime.txt
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -parse -emit-objc-header-path %t/out.h
// RUN: diff %t/orig-mtime.txt <(%S/Inputs/getmtime.py %t/out.h)
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -parse -emit-objc-header-path %t/out.h -DPRIVATE_EXTRA
// RUN: diff %t/orig-mtime.txt <(%S/Inputs/getmtime.py %t/out.h)
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -parse -emit-objc-header-path %t/out.h -DPUBLIC_EXTRA
// RUN: not diff %t/orig-mtime.txt <(%S/Inputs/getmtime.py %t/out.h)
// REQUIRES: objc_interop
import Foundation
public class A : NSObject {}
#if PRIVATE_EXTRA
private class B : NSObject {}
#endif
#if PUBLIC_EXTRA
public class C : NSObject {}
#endif