| // RUN: rm -rf %t |
| |
| // Build Module and set its timestamp |
| // RUN: echo '@import Module;' | %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs -x objective-c - |
| // RUN: touch -m -a -t 201101010000 %t/Module.pcm |
| // RUN: cp %t/Module.pcm %t/Module.pcm.saved |
| // RUN: wc -c %t/Module.pcm > %t/Module.size.saved |
| |
| // Build DependsOnModule |
| // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s |
| // RUN: diff %t/Module.pcm %t/Module.pcm.saved |
| // RUN: cp %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved |
| |
| // Rebuild Module, reset its timestamp, and verify its size hasn't changed |
| // RUN: rm %t/Module.pcm |
| // RUN: echo '@import Module;' | %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs -x objective-c - |
| // RUN: touch -m -a -t 201101010000 %t/Module.pcm |
| // RUN: wc -c %t/Module.pcm > %t/Module.size |
| // RUN: diff %t/Module.size %t/Module.size.saved |
| // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2 |
| |
| // The signature is the hash of the PCM content, we will not rebuild rebuild DependsOnModule. |
| // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s |
| // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2 |
| // RUN: diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved |
| |
| // Rebuild Module, reset its timestamp, and verify its size hasn't changed |
| // RUN: rm %t/Module.pcm |
| // RUN: echo '@import Module;' | %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs -x objective-c - |
| // RUN: touch -m -a -t 201101010000 %t/Module.pcm |
| // RUN: wc -c %t/Module.pcm > %t/Module.size |
| // RUN: diff %t/Module.size %t/Module.size.saved |
| // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2 |
| |
| // Verify again with Module pre-imported. |
| // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s |
| // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2 |
| // RUN: diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved |
| |
| #ifdef PREIMPORT |
| @import Module; |
| #endif |
| @import DependsOnModule; |