TESTDATA_REPO := o3co/xx.hocon
TESTDATA_REF := main
TESTDATA_DIR := tests/testdata/hocon
EXPECTED_DIR := tests/testdata/expected
FETCH_SENTINEL := $(TESTDATA_DIR)/concat-errors
.PHONY: testdata test
testdata:
@set -e; \
sha="$$(git ls-remote "https://github.com/$(TESTDATA_REPO).git" "$(TESTDATA_REF)" | head -1 | cut -f1)"; \
if [ -z "$$sha" ]; then \
echo "error: could not resolve $(TESTDATA_REPO)@$(TESTDATA_REF) SHA via git ls-remote" >&2; \
exit 1; \
fi; \
if [ -f .xx-hocon-version ] && [ -d "$(EXPECTED_DIR)" ] && [ -d "$(FETCH_SENTINEL)" ] && \
[ "$$sha" = "$$(cat .xx-hocon-version)" ]; then \
echo "Fixtures up to date ($$sha)"; \
exit 0; \
fi; \
tmpdir="$$(mktemp -d)"; \
trap 'rm -rf "$$tmpdir"' EXIT INT TERM; \
mkdir -p "$(TESTDATA_DIR)" "$(EXPECTED_DIR)"; \
curl -sfL "https://github.com/$(TESTDATA_REPO)/archive/$$sha.tar.gz" -o "$$tmpdir/archive.tar.gz"; \
tar xzf "$$tmpdir/archive.tar.gz" -C "$$tmpdir" --strip-components=1; \
cp -R "$$tmpdir/testdata/hocon/." "$(TESTDATA_DIR)/"; \
cp -R "$$tmpdir/expected/hocon/." "$(EXPECTED_DIR)/"; \
if [ -d "$$tmpdir/testdata/format-ingestion" ]; then \
rm -rf tests/testdata/format-ingestion; \
cp -R "$$tmpdir/testdata/format-ingestion" tests/testdata/format-ingestion; \
fi; \
printf '%s\n' "$$sha" > .xx-hocon-version; \
echo "Done. Fetched $$sha"
test:
cargo test