## Tests the case where the module LLDB is trying to load isn't
## present in the modulemap. We force this by replacing 'module foo'
## in the modulemap.
#
# REQUIRES: system-darwin
#
# RUN: split-file %s %t/sources
# RUN: %clang_host -g %t/sources/main.m -fmodules -fcxx-modules \
# RUN:             -fmodule-map-file=%t/sources/module.modulemap \
# RUN:             -fmodules-cache-path=%t/ModuleCache -o %t.out
# RUN: sed -i '' -e 's/module foo/module baz/' %t/sources/module.modulemap
# RUN: sed -i '' -e 's/module bar/module qux/' %t/sources/module.modulemap
#
# 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 --check-prefix=NO_LOG
#
# RUN: %lldb -x -o "settings set interpreter.stop-command-source-on-error false" \
# RUN:       -s %t/sources/commands-with-log.input %t.out -o exit 2>&1 | FileCheck %s --check-prefix=LOG

#--- main.m
@import foo;
@import bar;

int main() { __builtin_debugtrap(); }

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

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

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

module bar {
    header "bar.h"
    export *
}

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

# NO_LOG-NOT: header search couldn't locate module 'foo'
# NO_LOG-NOT: header search couldn't locate module 'bar'

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

# LOG: header search couldn't locate module 'foo'
# LOG: header search couldn't locate module 'bar'
