mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-10-31 17:17:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			132 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| GO := go
 | |
| PKG := ./...
 | |
| GOFLAGS :=
 | |
| STRESSFLAGS :=
 | |
| TAGS := invariants
 | |
| TESTS := .
 | |
| COVER_PROFILE := coverprofile.out
 | |
| 
 | |
| .PHONY: all
 | |
| all:
 | |
| 	@echo usage:
 | |
| 	@echo "  make test"
 | |
| 	@echo "  make testrace"
 | |
| 	@echo "  make stress"
 | |
| 	@echo "  make stressrace"
 | |
| 	@echo "  make stressmeta"
 | |
| 	@echo "  make crossversion-meta"
 | |
| 	@echo "  make testcoverage"
 | |
| 	@echo "  make mod-update"
 | |
| 	@echo "  make generate"
 | |
| 	@echo "  make generate-test-data"
 | |
| 	@echo "  make clean"
 | |
| 
 | |
| override testflags :=
 | |
| .PHONY: test
 | |
| test:
 | |
| 	${GO} test -tags '$(TAGS)' ${testflags} -run ${TESTS} ${PKG}
 | |
| 
 | |
| .PHONY: testcoverage
 | |
| testcoverage:
 | |
| 	${GO} test -tags '$(TAGS)' ${testflags} -run ${TESTS} ${PKG} -coverprofile ${COVER_PROFILE}
 | |
| 
 | |
| .PHONY: testrace
 | |
| testrace: testflags += -race -timeout 20m
 | |
| testrace: test
 | |
| 
 | |
| testasan: testflags += -asan -timeout 20m
 | |
| testasan: test
 | |
| 
 | |
| testmsan: export CC=clang
 | |
| testmsan: testflags += -msan -timeout 20m
 | |
| testmsan: test
 | |
| 
 | |
| .PHONY: testobjiotracing
 | |
| testobjiotracing:
 | |
| 	${GO} test -tags '$(TAGS) pebble_obj_io_tracing' ${testflags} -run ${TESTS} ./objstorage/objstorageprovider/objiotracing
 | |
| 
 | |
| .PHONY: lint
 | |
| lint:
 | |
| 	${GO} test -tags '$(TAGS)' ${testflags} -run ${TESTS} ./internal/lint
 | |
| 
 | |
| .PHONY: stress stressrace
 | |
| stressrace: testflags += -race
 | |
| stress stressrace: testflags += -exec 'stress ${STRESSFLAGS}' -timeout 0 -test.v
 | |
| stress stressrace: test
 | |
| 
 | |
| .PHONY: stressmeta
 | |
| stressmeta: override PKG = ./internal/metamorphic
 | |
| stressmeta: override STRESSFLAGS += -p 1
 | |
| stressmeta: override TESTS = TestMeta$$
 | |
| stressmeta: stress
 | |
| 
 | |
| .PHONY: crossversion-meta
 | |
| crossversion-meta:
 | |
| 	$(eval LATEST_RELEASE := $(shell git fetch origin && git branch -r --list '*/crl-release-*' | grep -o 'crl-release-.*$$' | sort | tail -1))
 | |
| 	git checkout ${LATEST_RELEASE}; \
 | |
| 		${GO} test -c ./internal/metamorphic -o './internal/metamorphic/crossversion/${LATEST_RELEASE}.test'; \
 | |
| 		git checkout -; \
 | |
| 		${GO} test -c ./internal/metamorphic -o './internal/metamorphic/crossversion/head.test'; \
 | |
| 		${GO} test -tags '$(TAGS)' ${testflags} -v -run 'TestMetaCrossVersion' ./internal/metamorphic/crossversion --version '${LATEST_RELEASE},${LATEST_RELEASE},${LATEST_RELEASE}.test' --version 'HEAD,HEAD,./head.test'
 | |
| 
 | |
| .PHONY: stress-crossversion
 | |
| stress-crossversion:
 | |
| 	STRESS=1 ./scripts/run-crossversion-meta.sh crl-release-21.2 crl-release-22.1 crl-release-22.2 crl-release-23.1 master
 | |
| 
 | |
| .PHONY: generate
 | |
| generate:
 | |
| 	${GO} generate ${PKG}
 | |
| 
 | |
| generate:
 | |
| 
 | |
| # Note that the output of generate-test-data is not deterministic. This should
 | |
| # only be run manually as needed.
 | |
| .PHONY: generate-test-data
 | |
| generate-test-data:
 | |
| 	${GO} run -tags make_incorrect_manifests ./tool/make_incorrect_manifests.go
 | |
| 	${GO} run -tags make_test_find_db ./tool/make_test_find_db.go
 | |
| 	${GO} run -tags make_test_sstables ./tool/make_test_sstables.go
 | |
| 	${GO} run -tags make_test_remotecat ./tool/make_test_remotecat.go
 | |
| 
 | |
| mod-update:
 | |
| 	${GO} get -u
 | |
| 	${GO} mod tidy
 | |
| 
 | |
| .PHONY: clean
 | |
| clean:
 | |
| 	rm -f $(patsubst %,%.test,$(notdir $(shell go list ${PKG})))
 | |
| 
 | |
| git_dirty := $(shell git status -s)
 | |
| 
 | |
| .PHONY: git-clean-check
 | |
| git-clean-check:
 | |
| ifneq ($(git_dirty),)
 | |
| 	@echo "Git repository is dirty!"
 | |
| 	@false
 | |
| else
 | |
| 	@echo "Git repository is clean."
 | |
| endif
 | |
| 
 | |
| .PHONY: mod-tidy-check
 | |
| mod-tidy-check:
 | |
| ifneq ($(git_dirty),)
 | |
| 	$(error mod-tidy-check must be invoked on a clean repository)
 | |
| endif
 | |
| 	@${GO} mod tidy
 | |
| 	$(MAKE) git-clean-check
 | |
| 
 | |
| # TODO(radu): switch back to @latest once bogus doc changes are
 | |
| # addressed; see https://github.com/cockroachdb/crlfmt/pull/44
 | |
| .PHONY: format
 | |
| format:
 | |
| 	go install github.com/cockroachdb/crlfmt@44a36ec7 && crlfmt -w -tab 2 .
 | |
| 
 | |
| .PHONY: format-check
 | |
| format-check:
 | |
| ifneq ($(git_dirty),)
 | |
| 	$(error format-check must be invoked on a clean repository)
 | |
| endif
 | |
| 	$(MAKE) format
 | |
| 	git diff
 | |
| 	$(MAKE) git-clean-check
 | 
