## Tests the case where module compilation fails.
#
# REQUIRES: system-darwin
#
# RUN: split-file %s %t/sources
# RUN: %clang_host -g %t/sources/main.m -fmodules -fcxx-modules \
# RUN:             -DSHOULD_COMPILE=1 \
# RUN:             -fmodule-map-file=%t/sources/module.modulemap \
# RUN:             -fmodules-cache-path=%t/ModuleCache -o %t.out
#
# RUN: %lldb -x -o "settings set interpreter.stop-command-source-on-error false" \
# RUN:       -s %t/sources/commands.input %t.out -o exit 2>&1 | FileCheck %s

#--- main.m
@import foo;

int main() { __builtin_debugtrap(); }

#--- foo.h
struct foo {};

#ifndef SHOULD_COMPILE
#error "Compilation failure."
#endif

#--- module.modulemap
module foo {
    header "foo.h"
    export *
}

#--- commands.input
log enable lldb expr
run
## Make sure expression fails so the 'note' diagnostics get printed.
expr blah

# CHECK: Finished building Clang module foo
# CHECK: couldn't load top-level module foo:
# CHECK: While building module 'foo' imported from LLDBModulesMemoryBuffer
# CHEKC: {{.*}}sources/foo.h{{.*}}: error: "Compilation failure."
# CHECK: LLDBModulesMemoryBuffer:1:1: fatal error: could not build module 'foo'

# CHECK: Error while loading hand-imported modules:
# CHECK: couldn't load top-level module foo:
# CHECK-NOT: Compilation failure
