From 60b9819fea8aff02abad14fae029324b81ab8f18 Mon Sep 17 00:00:00 2001 From: fanghr Date: Fri, 27 May 2022 01:32:12 +0800 Subject: [PATCH] add make subcommands to run and check bench --- Makefile | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 18a40d7..6808e55 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # This really ought to be `/usr/bin/env bash`, but nix flakes don't like that. SHELL := /bin/sh -.PHONY: hoogle format haddock usage tag format_nix format_haskell format_check lint ps_bridge +.PHONY: hoogle format haddock usage tag format_nix format_haskell format_check lint ps_bridge bench bench_check usage: @echo "usage: make [OPTIONS]" @@ -16,6 +16,8 @@ usage: @echo " format_check -- Check if all haskell stuff have been formatted correctly" @echo " lint -- Get hlint suggestions for project" @echo " ps_bridge -- Generate purescript bridge files" + @echo " bench -- Generate bench report bench.csv" + @echo " bench_check -- Check if bench report is up-to-date" hoogle: pkill hoogle || true @@ -51,3 +53,16 @@ lint: PS_BRIDGE_OUTPUT_DIR := agora-purescript-bridge/ ps_bridge: cabal run exe:agora-purescript-bridge -- -o $(PS_BRIDGE_OUTPUT_DIR) + +bench: + cabal run agora-bench + +BENCH_TMPDIR := $(shell mktemp -d) +BENCH_TMPFILE := $(BENCH_TMPDIR)/bench.csv +bench_check: + (cabal run agora-bench -- -o "$(BENCH_TMPFILE)" \ + || $(bench) -o "$(BENCH_TMPFILE)") >> /dev/null + diff bench.csv $(BENCH_TMPFILE) \ + || (echo "bench.csv is outdated"; exit 1) + # TODO: do the clean-up even if `diff` fails. + rm -rf $(BENCH_TMPDIR)