Home | History | Annotate | Download | only in Modules
      1 // RUN: rm -rf %t
      2 
      3 // Build Module and set its timestamp
      4 // 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 -
      5 // RUN: touch -m -a -t 201101010000 %t/Module.pcm
      6 // RUN: cp %t/Module.pcm %t/Module.pcm.saved
      7 // RUN: wc -c %t/Module.pcm > %t/Module.size.saved
      8 
      9 // Build DependsOnModule
     10 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s
     11 // RUN: diff %t/Module.pcm %t/Module.pcm.saved
     12 // RUN: cp %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved
     13 
     14 // Rebuild Module, reset its timestamp, and verify its size hasn't changed
     15 // RUN: rm %t/Module.pcm
     16 // 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 -
     17 // RUN: touch -m -a -t 201101010000 %t/Module.pcm
     18 // RUN: wc -c %t/Module.pcm > %t/Module.size
     19 // RUN: diff %t/Module.size %t/Module.size.saved
     20 // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2
     21 
     22 // But the signature at least is expected to change, so we rebuild DependsOnModule.
     23 // NOTE: if we change how the signature is created, this test may need updating.
     24 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s
     25 // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2
     26 // RUN: not diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved
     27 
     28 // Rebuild Module, reset its timestamp, and verify its size hasn't changed
     29 // RUN: rm %t/Module.pcm
     30 // 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 -
     31 // RUN: touch -m -a -t 201101010000 %t/Module.pcm
     32 // RUN: wc -c %t/Module.pcm > %t/Module.size
     33 // RUN: diff %t/Module.size %t/Module.size.saved
     34 // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2
     35 
     36 // Verify again with Module pre-imported.
     37 // NOTE: if we change how the signature is created, this test may need updating.
     38 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s
     39 // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2
     40 // RUN: not diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved
     41 
     42 #ifdef PREIMPORT
     43 @import Module;
     44 #endif
     45 @import DependsOnModule;
     46