# Test swiftpm's ability to link C libraries
#
# Needs a common C lib on all our test machines first.
# REQUIRES: have-zlib
# REQUIRES: platform=Linux
#
# Make a sandbox dir. Copy our sources over.
#
# RUN: rm -rf %t.dir
# RUN: mkdir -p %t.dir/
# RUN: cp -R %S/testApp %t.dir/
# RUN: cp -R %S/z %t.dir/

# RUN: rm -rf %t.dir/.build

# Create the git repo for the Z lib package
# RUN: git -C %t.dir/z init
# RUN: git -C %t.dir/z add .
# RUN: git -C %t.dir/z config user.name "Test User"
# RUN: git -C %t.dir/z config user.email "test@user.com"
# RUN: git -C %t.dir/z commit -m "Creating package"
# RUN: git -C %t.dir/z tag 1.0.0

# RUN: %{swift} build --chdir %t.dir/testApp 2>&1 | tee %t.build-log

# Check the build log.
#
# RUN: %{FileCheck} --check-prefix CHECK-BUILD-LOG --input-file %t.build-log %s
#
# CHECK-BUILD-LOG: Compile Swift Module 'testApp'

# Verify that the build worked.
#
# RUN: test -x %t.dir/testApp/.build/debug/testApp
# RUN: %t.dir/testApp/.build/debug/testApp > %t.out
# RUN: %{FileCheck} --check-prefix CHECK-APP-OUTPUT --input-file %t.out %s
#
#
# CHECK-APP-OUTPUT: gzFile_s(have: 0, next: 0x0000000000000000, pos: 0)
# CHECK-APP-OUTPUT-NEXT: OK

# Verify that another 'swift build' does nothing.
#
# RUN: %{swift} build --chdir %t.dir/testApp 2>&1 | tee %t.rebuild-log
# RUN: echo END-OF-INPUT >> %t.rebuild-log
# RUN: %{FileCheck} --check-prefix CHECK-BUILD-LOG --input-file %t.build-log %s
#
# CHECK-REBUILD-LOG-NOT: Compile
