// Check that we can debug a system module package.
//
// Unfortunately this doesn't work yet. See: SR-3280 and SR-3863.
// REQUIRES: disabled
//
// Make a sandbox dir.
// RUN: rm -rf %t.dir
// RUN: mkdir -p %t.dir
// RUN: cp -r %S/CFoo %t.dir/
// RUN: cp -r %S/Foo %t.dir/
//
// Create and drop the library inside build folder.
// RUN: mkdir -p %t.dir/Foo/.build/debug
// RUN: clang -shared %t.dir/CFoo/foo.c -o %t.dir/Foo/.build/debug/libfoo.so
//
// Create the git repo for the lib package
// RUN: git -C %t.dir/CFoo init
// RUN: git -C %t.dir/CFoo add .
// RUN: git -C %t.dir/CFoo config user.name "Test User"
// RUN: git -C %t.dir/CFoo config user.email "test@user.com"
// RUN: git -C %t.dir/CFoo commit -m "Creating package"
// RUN: git -C %t.dir/CFoo tag 1.0.0
//
// Check the build log.
// RUN: %{swift} build --package-path %t.dir/Foo 2>&1 | tee %t.build-log
// RUN: %{FileCheck} --check-prefix CHECK-BUILD-LOG --input-file %t.build-log %s
// CHECK-BUILD-LOG: Compile Swift Module 'Foo'

// Verify that the build worked.
// RUN: test -x %t.dir/Foo/.build/debug/Foo
// RUN: %t.dir/Foo/.build/debug/Foo > %t.out
// RUN: %{FileCheck} --check-prefix CHECK-APP-OUTPUT --input-file %t.out %s
// CHECK-APP-OUTPUT: 5
// CHECK-APP-OUTPUT-NEXT: OK

// Check we can debug the executable.
// RUN: %{lldb} %t.dir/Foo/.build/debug/Foo -o "b main.swift:2" -o r -o "po foo()" -b &> %t.lldb
// RUN: %{FileCheck} --check-prefix CHECK-LLDB-LOG --input-file %t.lldb %s
// CHECK-LLDB-LOG: (lldb) po foo()
