// We need 'touch' and 'find' for this test to work.
// REQUIRES: shell

// RUN: rm -rf %t/APINotesCache

// Run Clang. This should generated the cached versions of both and a timestamp.
// RUN: %clang_cc1 -fapinotes -fapinotes-modules -fapinotes-cache-path=%t/APINotesCache -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s -DINCLUDE_HEADERLIB
// RUN: ls %t/APINotesCache | grep "APINotes-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "SomeKit-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "APINotes.timestamp"

// Set the timestamp back a very long time. We should try to prune,
// but nothing gets pruned because the API Notes files are new enough.
// RUN: touch -m -a -t 201101010000 %t/APINotes.timestamp 
// RUN: %clang_cc1 -fapinotes -fapinotes-modules -fapinotes-cache-path=%t/APINotesCache -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s
// RUN: ls %t/APINotesCache | grep "APINotes-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "SomeKit-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "APINotes.timestamp"

// Set the HeaderLib access time back a very long time.
// This shouldn't prune anything, because the timestamp has been updated, so
// the pruning mechanism won't fire.
// RUN: find %t/APINotesCache -name APINotes-*.apinotesc | xargs touch -a -t 201101010000
// RUN: %clang_cc1 -fapinotes -fapinotes-modules -fapinotes-cache-path=%t/APINotesCache -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s
// RUN: ls %t/APINotesCache | grep "APINotes-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "SomeKit-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "APINotes.timestamp"

// Set the timestack back a very long time. This should prune the
// HeaderLib file, because the pruning mechanism should fire and
// HeaderLib is both old and not used.
// RUN: touch -m -a -t 201101010000 %t/APINotesCache/APINotes.timestamp 
// RUN: %clang_cc1 -fapinotes -fapinotes-modules -fapinotes-cache-path=%t/APINotesCache -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s
// RUN: ls %t/APINotesCache | not grep "APINotes-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "SomeKit-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "APINotes.timestamp"

// Run Clang. This should generated the cached versions of both and a timestamp.
// RUN: %clang_cc1 -fapinotes -fapinotes-modules -fapinotes-cache-path=%t/APINotesCache -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s -DINCLUDE_HEADERLIB
// RUN: ls %t/APINotesCache | grep "APINotes-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "SomeKit-.*.apinotesc"
// RUN: ls %t/APINotesCache | grep "APINotes.timestamp"

#ifdef INCLUDE_HEADERLIB
#include "HeaderLib.h"
#endif
#include <SomeKit/SomeKit.h>

int main() { return 0; }
