#!/bin/bash
if [ ! "$1" ] ; then
echo "usage: gen-test-plist.sh <target-plist>"
exit 1
fi
cd "$SRCROOT"/tests/cases
mkdir -p "$DERIVED_FILE_DIR"
cat >"$DERIVED_FILE_DIR"/list-tests.c <<EOF
TEST_DECL(x, static int run_EOF
set -e
set -o pipefail
for FS in JHFS+ APFS FAT32 EXFAT; do
touch "$DERIVED_SOURCES_DIR/$FS-dmg.dat"
done
if [ "$CURRENT_ARCH" = undefined_arch ]; then
CURRENT_ARCH=${ARCHS%% *}
fi
grep -l -E '^TEST\(' *.[cm] | xargs xcrun clang -E -D TEST=TEST \
-arch "$CURRENT_ARCH" -I"$DERIVED_SOURCES_DIR" -I.. -F"$SDKROOT""$SYSTEM_LIBRARY_DIR"/PrivateFrameworks | \
grep -h -E 'TEST\(' >>"$DERIVED_FILE_DIR"/list-tests.c
env -i xcrun -sdk macosx.internal clang -x objective-c++ -I.. -c ../hfs-tests.mm \
-o "$DERIVED_FILE_DIR"/hfs-tests.o -std=gnu++1y
env -i xcrun -sdk macosx.internal clang -x objective-c -I.. -c ../disk-image.m \
-o "$DERIVED_FILE_DIR"/disk-image.o
env -i xcrun -sdk macosx.internal clang -x c -I.. -c ../systemx.c \
-o "$DERIVED_FILE_DIR"/systemx.o
env -i xcrun -sdk macosx.internal clang -x c -c "$DERIVED_FILE_DIR"/list-tests.c \
-o "$DERIVED_FILE_DIR"/list-tests.o
env -i xcrun -sdk macosx.internal clang++ "$DERIVED_FILE_DIR"/hfs-tests.o \
"$DERIVED_FILE_DIR"/disk-image.o "$DERIVED_FILE_DIR"/list-tests.o \
-o "$DERIVED_FILE_DIR"/list-tests "$DERIVED_FILE_DIR"/systemx.o \
-framework Foundation -lstdc++
mkdir -p "`basename \"$1\"`"
"$DERIVED_FILE_DIR"/list-tests --plist list | plutil -convert binary1 - -o - >"$1"
echo "Created $1"