|
|
- .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
|