1TMPDIR ?= /tmp 2TESTS = $(wildcard *.load) 3OUT = $(TESTS:.load=.out) 4 5REMOTE = archive.load bossa-all.load bossa.load census-places.load dbf-zip.load 6LOCAL = $(filter-out $(REMOTE:.load=.out),$(OUT)) 7REGRESS= allcols.load \ 8 csv-before-after.load \ 9 csv-districts.load \ 10 csv-parse-date.load \ 11 csv-error.load \ 12 csv-escape-mode.load \ 13 csv-filename-pattern.load \ 14 csv-guess.load \ 15 csv-header.load \ 16 csv-json.load \ 17 csv-keep-extra-blanks.load \ 18 csv-missing-col.load \ 19 csv-non-printable.load \ 20 csv-nulls.load \ 21 csv-temp.load \ 22 csv-trim-extra-blanks.load \ 23 csv-using-sexp.load \ 24 csv.load \ 25 copy.load \ 26 copy-hex.load \ 27 dbf.load \ 28 errors.load \ 29 fixed.load \ 30 fields-with-periods.load \ 31 ixf.load \ 32 overflow.load \ 33 partial.load \ 34 serial.load \ 35 udc.load \ 36 xzero.load 37 38# Those are not included in the tests because CCL doesn't have the cp866 39# encoding, and then PostgreSQL 9.6 lacks "create schema if not exists". 40# 41# dbf-memo.load 42# dbf-31.load 43# dbf-8b.load 44 45PGLOADER ?= ../build/bin/pgloader 46PGSUPERUSER ?= postgres 47 48EXTRA_OPTS = 49ifneq (,$(findstring ccl,$(CL))) 50EXTRA_OPTS = --batch --heap-reserve 150g 51endif 52 53regress: clean-out $(addprefix regress/out/, $(REGRESS:.load=.out)) ; 54 55clean-out: 56 rm -f regress/out/* 57 58local: prepare $(LOCAL) 59 60remote: prepare $(REMOTE:.load=.out) 61 62all: prepare $(OUT) 63 64prepare: bossa.sql sakila 65 -dropdb -U $(PGSUPERUSER) pgloader 66 -dropdb -U $(PGSUPERUSER) stocks 67 -dropdb -U $(PGSUPERUSER) ip4r 68 createdb -U $(PGSUPERUSER) -O `whoami` pgloader 69 createdb -U $(PGSUPERUSER) -O `whoami` stocks 70 createdb -U $(PGSUPERUSER) -O `whoami` ip4r 71 psql -d pgloader -c 'create schema expected' 72 psql -U $(PGSUPERUSER) -d pgloader -c 'create extension ip4r' 73 psql -U $(PGSUPERUSER) -d ip4r -c 'create extension ip4r' 74 psql -d stocks -f bossa.sql 75 76errors.out: errors.load 77 -$(PGLOADER) $< 78 @echo 79 80nofile.out: nofile.load 81 -$(PGLOADER) $< 82 @echo 83 84csv-hstore.out: csv-hstore.load 85 @echo skipping $@ 86 87# sakila needs preparing a MySQL database too 88$(TMPDIR)/sakila-db/sakila-schema.sql: data/sakila-db.zip 89 rm -rf $(TMPDIR)/sakila-db 90 unzip $< -d $(TMPDIR) 91 92sakila: $(TMPDIR)/sakila-db/sakila-schema.sql 93 -dropdb -U $(PGSUPERUSER) sakila 94 -createdb -U $(PGSUPERUSER) -O `whoami` sakila 95 -echo "DROP DATABASE sakila" | mysql -u root 96 echo "SOURCE $(TMPDIR)/sakila-db/sakila-schema.sql" | mysql -u root 97 echo "SOURCE $(TMPDIR)/sakila-db/sakila-data.sql" | mysql -u root 98 99sakila.out: sakila sakila.load 100 -$(PGLOADER) sakila.load 101 @echo 102 103csv-districts-stdin.out: csv-districts-stdin.load 104 cat data/2013_Gaz_113CDs_national.txt | $(PGLOADER) $^ 105 106ifneq (,$(findstring ccl,$(CL))) 107regress/out/dbf.out: dbf.load 108 @echo "Skipping $@, CCL doesn't have CP850 encoding" 109 touch $@ 110else 111 $(PGLOADER) $(EXTRA_OPTS) --regress $< 112 touch $@ 113endif 114 115# General case where we do NOT expect any error 116%.out: %.load 117 $(PGLOADER) $< 118 @echo 119 120# Regression tests 121regress/out/%.out: %.load 122 $(PGLOADER) $(EXTRA_OPTS) --regress $< 123 touch $@ 124