#!/bin/bash # Exercise the SwiftRemoteMirrorLegacyInterop API. This requires a build # of an old (circa 4.0.3) version of Swift as well as the current one. # It then builds Swift code using the old and new compilers, and # exercises the Interop API using the old and new remote mirrors # libraries. set -euo pipefail if [[ $# -ne 4 ]]; then echo -n "Usage: $0 " echo " " exit 1 fi swiftc4="$1" swiftc5="$2" mirrorlib4="$3" mirrorlib5="$4" SDK=`xcrun --show-sdk-path` cd `dirname $0` "$swiftc4" -sdk "$SDK" -emit-library test4.swift -o /tmp/libtest4.dylib "$swiftc5" -sdk "$SDK" -emit-library test5.swift -o /tmp/libtest5.dylib clang -framework Foundation -I ../../../include/swift/SwiftRemoteMirror \ -o /tmp/test -g test.m echo "Testing 4 with both mirror libs" /tmp/test /tmp/libtest4.dylib "$mirrorlib4" "$mirrorlib5" echo "" echo "Testing 4 with only mirror lib 5" /tmp/test /tmp/libtest4.dylib "-" "$mirrorlib5" echo "" echo "Testing 4 with only mirror lib 4" /tmp/test /tmp/libtest4.dylib "$mirrorlib4" "-" echo "" echo "Testing 4 with no mirror libs" /tmp/test /tmp/libtest4.dylib "-" "-" || true echo "" echo "Testing 5 with both mirror libs" /tmp/test /tmp/libtest5.dylib "$mirrorlib4" "$mirrorlib5" echo "" echo "Testing 5 with only mirror lib 5" /tmp/test /tmp/libtest5.dylib "-" "$mirrorlib5" echo "" # Not supported (yet?) #echo "Testing 5 with only mirror lib 4" #/tmp/test /tmp/libtest5.dylib "$mirrorlib4" "-" #echo "" echo "Testing 5 with no mirror libs" /tmp/test /tmp/libtest5.dylib "-" "-" || true