# Semana 13: transacciones, serializabilidad y niveles de aislamiento.
# Se usa dentro del contenedor del curso.
#
#   make          crea la base de datos chasqui_w13 con los datos de ejemplo
#   make test     la vuelve a crear y corre las pruebas (*.test.mjs)
#   make clean    borra chasqui_w13
#
# Los schedules de dos sesiones se ven con psql2.mjs, por ejemplo:
#   PGDATABASE=chasqui_w13 node psql2.mjs lost-update rc
# y el grafo de precedencia de un schedule, con graph.mjs:
#   node graph.mjs "r1(A) r2(A) w1(A) w2(A)"

DB = chasqui_w13

.PHONY: all test clean

all:
	chasqui-load $(DB)

# Las pruebas de anomalías cambian los mismos envíos: los archivos se corren
# uno después del otro.
test: all
	PGDATABASE=$(DB) node --test --test-concurrency=1 --test-reporter=spec

clean:
	dropdb --if-exists $(DB)
