Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.3 KiB
121 lines
3.3 KiB
.PHONY: help all test format fmtcheck vet lint qa deps clean nuke rle backrle ser fetch-real-roaring-datasets |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Display general help about this command |
|
help: |
|
@echo "" |
|
@echo "The following commands are available:" |
|
@echo "" |
|
@echo " make qa : Run all the tests" |
|
@echo " make test : Run the unit tests" |
|
@echo "" |
|
@echo " make format : Format the source code" |
|
@echo " make fmtcheck : Check if the source code has been formatted" |
|
@echo " make vet : Check for suspicious constructs" |
|
@echo " make lint : Check for style errors" |
|
@echo "" |
|
@echo " make deps : Get the dependencies" |
|
@echo " make clean : Remove any build artifact" |
|
@echo " make nuke : Deletes any intermediate file" |
|
@echo "" |
|
@echo " make fuzz-smat : Fuzzy testing with smat" |
|
@echo " make fuzz-stream : Fuzzy testing with stream deserialization" |
|
@echo " make fuzz-buffer : Fuzzy testing with buffer deserialization" |
|
@echo "" |
|
|
|
# Alias for help target |
|
all: help |
|
test: |
|
go test |
|
go test -race -run TestConcurrent* |
|
# Format the source code |
|
format: |
|
@find ./ -type f -name "*.go" -exec gofmt -w {} \; |
|
|
|
# Check if the source code has been formatted |
|
fmtcheck: |
|
@mkdir -p target |
|
@find ./ -type f -name "*.go" -exec gofmt -d {} \; | tee target/format.diff |
|
@test ! -s target/format.diff || { echo "ERROR: the source code has not been formatted - please use 'make format' or 'gofmt'"; exit 1; } |
|
|
|
# Check for syntax errors |
|
vet: |
|
GOPATH=$(GOPATH) go vet ./... |
|
|
|
# Check for style errors |
|
lint: |
|
GOPATH=$(GOPATH) PATH=$(GOPATH)/bin:$(PATH) golint ./... |
|
|
|
|
|
|
|
|
|
|
|
# Alias to run all quality-assurance checks |
|
qa: fmtcheck test vet lint |
|
|
|
# --- INSTALL --- |
|
|
|
# Get the dependencies |
|
deps: |
|
GOPATH=$(GOPATH) go get github.com/smartystreets/goconvey/convey |
|
GOPATH=$(GOPATH) go get github.com/willf/bitset |
|
GOPATH=$(GOPATH) go get github.com/golang/lint/golint |
|
GOPATH=$(GOPATH) go get github.com/mschoch/smat |
|
GOPATH=$(GOPATH) go get github.com/dvyukov/go-fuzz/go-fuzz |
|
GOPATH=$(GOPATH) go get github.com/dvyukov/go-fuzz/go-fuzz-build |
|
GOPATH=$(GOPATH) go get github.com/glycerine/go-unsnap-stream |
|
GOPATH=$(GOPATH) go get github.com/philhofer/fwd |
|
GOPATH=$(GOPATH) go get github.com/jtolds/gls |
|
|
|
fuzz-smat: |
|
go test -tags=gofuzz -run=TestGenerateSmatCorpus |
|
go-fuzz-build -func FuzzSmat github.com/RoaringBitmap/roaring |
|
go-fuzz -bin=./roaring-fuzz.zip -workdir=workdir/ -timeout=200 |
|
|
|
|
|
fuzz-stream: |
|
go-fuzz-build -func FuzzSerializationStream github.com/RoaringBitmap/roaring |
|
go-fuzz -bin=./roaring-fuzz.zip -workdir=workdir/ -timeout=200 |
|
|
|
|
|
fuzz-buffer: |
|
go-fuzz-build -func FuzzSerializationBuffer github.com/RoaringBitmap/roaring |
|
go-fuzz -bin=./roaring-fuzz.zip -workdir=workdir/ -timeout=200 |
|
|
|
# Remove any build artifact |
|
clean: |
|
GOPATH=$(GOPATH) go clean ./... |
|
|
|
# Deletes any intermediate file |
|
nuke: |
|
rm -rf ./target |
|
GOPATH=$(GOPATH) go clean -i ./... |
|
|
|
rle: |
|
cp rle.go rle16.go |
|
perl -pi -e 's/32/16/g' rle16.go |
|
cp rle_test.go rle16_test.go |
|
perl -pi -e 's/32/16/g' rle16_test.go |
|
|
|
backrle: |
|
cp rle16.go rle.go |
|
perl -pi -e 's/16/32/g' rle.go |
|
perl -pi -e 's/2032/2016/g' rle.go |
|
|
|
ser: rle |
|
go generate |
|
|
|
cover: |
|
go test -coverprofile=coverage.out |
|
go tool cover -html=coverage.out |
|
|
|
fetch-real-roaring-datasets: |
|
# pull github.com/RoaringBitmap/real-roaring-datasets -> testdata/real-roaring-datasets |
|
git submodule init |
|
git submodule update
|
|
|