xref: /aosp_15_r20/external/clang/test/Modules/modules-with-same-name.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: rm -rf %t
2*67e74705SXin Li
3*67e74705SXin Li// A from path 1
4*67e74705SXin Li// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fmodules-ignore-macro=EXPECTED_PATH -fmodules-ignore-macro=DIRECT -fsyntax-only %s -verify -I %S/Inputs/modules-with-same-name/path1/A -DDIRECT -DEXPECTED_PATH=1
5*67e74705SXin Li
6*67e74705SXin Li// A from path 2
7*67e74705SXin Li// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fmodules-ignore-macro=EXPECTED_PATH -fmodules-ignore-macro=DIRECT -fsyntax-only %s -verify -I %S/Inputs/modules-with-same-name/path2/A -DDIRECT -DEXPECTED_PATH=2
8*67e74705SXin Li
9*67e74705SXin Li// Confirm that we have two pcm files (one for each 'A').
10*67e74705SXin Li// RUN: find %t -name "A-*.pc[m]" | count 2
11*67e74705SXin Li
12*67e74705SXin Li// DependsOnA, using A from path 1
13*67e74705SXin Li// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fmodules-ignore-macro=EXPECTED_PATH -fmodules-ignore-macro=DIRECT -fsyntax-only %s -verify -I %S/Inputs/modules-with-same-name/DependsOnA -I %S/Inputs/modules-with-same-name/path1/A -DEXPECTED_PATH=1
14*67e74705SXin Li
15*67e74705SXin Li// Confirm that we have three pcm files (one for each 'A', and one for 'DependsOnA')
16*67e74705SXin Li// RUN: find %t -name "*.pc[m]" | count 3
17*67e74705SXin Li
18*67e74705SXin Li// DependsOnA, using A from path 2
19*67e74705SXin Li// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fmodules-ignore-macro=EXPECTED_PATH -fmodules-ignore-macro=DIRECT -fsyntax-only %s -verify -I %S/Inputs/modules-with-same-name/DependsOnA -I %S/Inputs/modules-with-same-name/path2/A -DEXPECTED_PATH=2
20*67e74705SXin Li
21*67e74705SXin Li// Confirm that we still have three pcm files, since DependsOnA will be rebuilt
22*67e74705SXin Li// RUN: find %t -name "*.pc[m]" | count 3
23*67e74705SXin Li
24*67e74705SXin Li#ifdef DIRECT
25*67e74705SXin Li@import A;
26*67e74705SXin Li#else
27*67e74705SXin Li@import DependsOnA;
28*67e74705SXin Li#endif
29*67e74705SXin Li
30*67e74705SXin Li#if FROM_PATH != EXPECTED_PATH
31*67e74705SXin Li#error "Got the wrong module!"
32*67e74705SXin Li#endif
33*67e74705SXin Li
34*67e74705SXin Li// expected-no-diagnostics
35