Merge pull request #1024 from ipfs/run_tests_with_race_flag2

Run tests with race flag using checkflags script
This commit is contained in:
Juan Batiz-Benet 2015-04-07 04:18:54 -07:00
commit f2aba08c9a
4 changed files with 57 additions and 15 deletions

3
test/.gitignore vendored
View File

@ -1,2 +1 @@
bin/ipfs
bin/random
IPFS-BUILD-OPTIONS

View File

@ -6,6 +6,9 @@ RANDOM_SRC = ../Godeps/_workspace/src/github.com/jbenet/go-random
MULTIHASH_SRC = ../Godeps/_workspace/src/github.com/jbenet/go-multihash
POLLENDPOINT_SRC= ../thirdparty/pollEndpoint
# User might want to override those on the command line
GOFLAGS =
all: deps
deps: bins
@ -15,17 +18,21 @@ clean:
bins: $(BINS)
bin/random: $(RANDOM_SRC)/**/*.go
go build -o bin/random $(RANDOM_SRC)/random
bin/random: $(RANDOM_SRC)/**/*.go IPFS-BUILD-OPTIONS
@echo "*** installing $@ ***"
go build $(GOFLAGS) -o bin/random $(RANDOM_SRC)/random
bin/multihash: $(MULTIHASH_SRC)/**/*.go
go build -o bin/multihash $(MULTIHASH_SRC)/multihash
bin/multihash: $(MULTIHASH_SRC)/**/*.go IPFS-BUILD-OPTIONS
@echo "*** installing $@ ***"
go build $(GOFLAGS) -o bin/multihash $(MULTIHASH_SRC)/multihash
bin/ipfs: $(IPFS_ROOT)/**/*.go
go build -o bin/ipfs $(IPFS_CMD)
bin/ipfs: $(IPFS_ROOT)/**/*.go IPFS-BUILD-OPTIONS
@echo "*** installing $@ ***"
go build $(GOFLAGS) -o bin/ipfs $(IPFS_CMD)
bin/pollEndpoint: $(POLLENDPOINT_SRC)/*.go
go build -o bin/pollEndpoint $(POLLENDPOINT_SRC)
bin/pollEndpoint: $(POLLENDPOINT_SRC)/*.go IPFS-BUILD-OPTIONS
@echo "*** installing $@ ***"
go build $(GOFLAGS) -o bin/pollEndpoint $(POLLENDPOINT_SRC)
test: test_expensive
@ -38,4 +45,12 @@ test_cheap:
cd sharness && make
cd 3nodetest && make
.PHONY: all clean
test_race:
cd sharness && make GOFLAGS=-race TEST_EXPENSIVE=1
cd 3nodetest && make GOFLAGS=-race
cd dependencies && make GOFLAGS=-race
IPFS-BUILD-OPTIONS: FORCE
@bin/checkflags '$@' '$(GOFLAGS)' '*** new Go flags ***'
.PHONY: all clean FORCE

23
test/bin/checkflags Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# Author: Christian Couder <chriscool@tuxfamily.org>
# MIT LICENSED
if test "$#" -lt 3
then
echo >&2 "usage $0 FILE VALUES MSG..."
exit 1
fi
FLAG_FILE="$1"
FLAG_VALS="$2"
shift
shift
FLAG_MSGS="$@"
# Use x in front of tested values as flags could be
# interpreted by "test" to be for itself.
if test x"$FLAG_VALS" != x"$(cat "$FLAG_FILE" 2>/dev/null)"
then
echo "$FLAG_MSGS"
echo "$FLAG_VALS" >"$FLAG_FILE"
fi

View File

@ -11,6 +11,9 @@ BINS = bin/random bin/multihash bin/ipfs bin/pollEndpoint
SHARNESS = lib/sharness/sharness.sh
IPFS_ROOT = ../..
# User might want to override those on the command line
GOFLAGS =
all: clean deps $(T) aggregate
clean:
@ -32,11 +35,13 @@ $(SHARNESS):
@echo "*** installing $@ ***"
lib/install-sharness.sh
bin/%: $(IPFS_ROOT)/**/*.go
@echo "*** installing $@ ***"
cd .. && make $@
bin/%: FORCE
cd .. && make GOFLAGS=$(GOFLAGS) $@
.PHONY: all clean $(T) aggregate
race:
make GOFLAGS=-race all
.PHONY: all clean $(T) aggregate FORCE
# will fail if curl is not installed.
# TODO: get rid of this and install curl with git or ipfs.