49 lines · c
1// RUN: rm -rf %t2// RUN: mkdir -p %t/Underlying3// RUN: mkdir -p %t/Overlay4// RUN: mkdir -p %t/Middle5// RUN: echo '// B.h in Underlying' > %t/Underlying/B.h6// RUN: echo '#ifdef NESTED' >> %t/Underlying/B.h7// RUN: echo '#include "C.h"' >> %t/Underlying/B.h8// RUN: echo '#endif' >> %t/Underlying/B.h9// RUN: echo '// C.h in Underlying' > %t/Underlying/C.h10// RUN: echo '// C.h in Middle' > %t/Middle/C.h11// RUN: echo '// C.h in Overlay' > %t/Overlay/C.h12 13// 1) Underlying -> Overlay (C.h found, B.h falling back to Underlying)14// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}/Overlay@g" -e "s@OUT_DIR@%{/t:regex_replacement}/Underlying@g" %S/Inputs/vfsoverlay-directory.yaml > %t/vfs.yaml15// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs.yaml -E -C %s 2>&1 | FileCheck --check-prefix=DIRECT %s16// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs.yaml -DNESTED -E -C %s 2>&1 | FileCheck --check-prefix=DIRECT %s17// RUN: sed -e "s@INPUT_DIR@Overlay@g" -e "s@OUT_DIR@%{/t:regex_replacement}/Underlying@g" %S/Inputs/vfsoverlay-directory-relative.yaml > %t/vfs-relative.yaml18// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs-relative.yaml -E -C %s 2>&1 | FileCheck --check-prefix=DIRECT %s19 20// DIRECT: {{^}}// B.h in Underlying21// DIRECT: {{^}}// C.h in Overlay22 23// 2) Underlying -> Middle -> Overlay (C.h found, B.h falling back to Underlying)24// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}/Overlay@g" -e "s@OUT_DIR@%{/t:regex_replacement}/Middle@g" %S/Inputs/vfsoverlay-directory.yaml > %t/vfs.yaml25// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}/Middle@g" -e "s@OUT_DIR@%{/t:regex_replacement}/Underlying@g" %S/Inputs/vfsoverlay-directory.yaml > %t/vfs2.yaml26// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs.yaml -ivfsoverlay %t/vfs2.yaml -E -C %s 2>&1 | FileCheck --check-prefix=DIRECT %s27// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs.yaml -ivfsoverlay %t/vfs2.yaml -DNESTED -E -C %s 2>&1 | FileCheck --check-prefix=DIRECT %s28 29// Same as direct above30 31// 3) Underlying -> Middle -> Overlay (C.h falling back to Middle, B.h falling back to Underlying)32// RUN: rm -f %t/Overlay/C.h33// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs.yaml -ivfsoverlay %t/vfs2.yaml -E -C %s 2>&1 | FileCheck --check-prefix=FALLBACK %s34 35// FALLBACK: {{^}}// B.h in Underlying36// FALLBACK: {{^}}// C.h in Middle37 38// 3) Underlying -> Middle -> Overlay (C.h falling back to Underlying, B.h falling back to Underlying)39// RUN: rm -f %t/Middle/C.h40// RUN: %clang_cc1 -Werror -I %t/Underlying -ivfsoverlay %t/vfs.yaml -ivfsoverlay %t/vfs2.yaml -E -C %s 2>&1 | FileCheck --check-prefix=FALLBACK2 %s41 42// FALLBACK2: {{^}}// B.h in Underlying43// FALLBACK2: {{^}}// C.h in Underlying44 45#include "B.h"46#ifndef NESTED47#include "C.h"48#endif49