1*d30446fdSBoris Kolpackov // Tests for imported module search. 2*d30446fdSBoris Kolpackov // 3*d30446fdSBoris Kolpackov // RUN: rm -rf %t 4*d30446fdSBoris Kolpackov // RUN: mkdir -p %t 5*d30446fdSBoris Kolpackov // RUN: echo 'export module x; int a, b;' > %t/x.cppm 6*d30446fdSBoris Kolpackov // RUN: echo 'export module y; import x; int c;' > %t/y.cppm 7*d30446fdSBoris Kolpackov // RUN: echo 'export module z; import y; int d;' > %t/z.cppm 8*d30446fdSBoris Kolpackov // 9*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface %t/x.cppm -o %t/x.pcm 10*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface -fmodule-file=%t/x.pcm %t/y.cppm -o %t/y.pcm 11*d30446fdSBoris Kolpackov // 12*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=%t/x.pcm -verify %s \ 13*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=x 14*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=%t/y.pcm -verify %s \ 15*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=y 16*d30446fdSBoris Kolpackov // 17*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=x=%t/x.pcm -verify %s \ 18*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=x 19*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=y=%t/y.pcm -verify %s \ 20*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=y 21*d30446fdSBoris Kolpackov // 22*d30446fdSBoris Kolpackov // RUN: mv %t/x.pcm %t/a.pcm 23*d30446fdSBoris Kolpackov // 24*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=x=%t/a.pcm -verify %s \ 25*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=x 26*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=%t/y.pcm -fmodule-file=x=%t/a.pcm -verify %s \ 27*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=y 28*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=y=%t/y.pcm -fmodule-file=x=%t/a.pcm -verify %s \ 29*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=y 30*d30446fdSBoris Kolpackov // 31*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface -fmodule-file=y=%t/y.pcm -fmodule-file=x=%t/a.pcm %t/z.cppm -o %t/z.pcm 32*d30446fdSBoris Kolpackov // 33*d30446fdSBoris Kolpackov // RUN: %clang_cc1 -std=c++1z -fmodules-ts -I%t -fmodule-file=z=%t/z.pcm -fmodule-file=y=%t/y.pcm -fmodule-file=x=%t/a.pcm -verify %s \ 34*d30446fdSBoris Kolpackov // RUN: -DMODULE_NAME=z 35*d30446fdSBoris Kolpackov // 36*d30446fdSBoris Kolpackov 37*d30446fdSBoris Kolpackov import MODULE_NAME; 38*d30446fdSBoris Kolpackov 39*d30446fdSBoris Kolpackov // expected-no-diagnostics 40