Skip to content

Commit

Permalink
Run all tests on CI (#1189)
Browse files Browse the repository at this point in the history
This could possibly be a bug in `go test` command
golang/go#36527 .

The `go test` command would skip tests in sub-packages if
the top-level package has a `custom flag` defined and the
sub-packages don't define it.

Issue golang/go#36527 (comment)
has an example of this.

This PR also removes the code from the test that would unnecessary
start a web server. I see two problems here
1. An unnecessary web server running.
2. We cannot run multiple tests are the same time since the second
    run of the test would try to start a web server and
    crash saying `port already in use`.

(cherry picked from commit 5870b7b)
  • Loading branch information
Ibrahim Jarif committed Mar 24, 2020
1 parent bfe0cd6 commit c1d6ffa
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 16 deletions.
8 changes: 1 addition & 7 deletions db_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (
"log"
"math"
"math/rand"
"net/http"
"os"
"path/filepath"
"runtime"
Expand Down Expand Up @@ -1957,12 +1956,7 @@ func TestVerifyChecksum(t *testing.T) {
}

func TestMain(m *testing.M) {
// call flag.Parse() here if TestMain uses flags
go func() {
if err := http.ListenAndServe("localhost:8080", nil); err != nil {
panic("Unable to open http port at 8080")
}
}()
flag.Parse()
os.Exit(m.Run())
}

Expand Down
31 changes: 22 additions & 9 deletions test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,43 @@ set -e

go version

packages=$(go list ./... | grep github.com/dgraph-io/badger/v2/)

if [[ ! -z "$TEAMCITY_VERSION" ]]; then
export GOFLAGS="-json"
fi

# Ensure that we can compile the binary.
pushd badger
go build -v .
popd

# Run the memory intensive tests first.
go test -v --manual=true -run='TestBigKeyValuePairs$'
go test -v --manual=true -run='TestPushValueLogLimit'
go test -v -run='TestBigKeyValuePairs$' --manual=true
go test -v -run='TestPushValueLogLimit' --manual=true

# Run the special Truncate test.
rm -rf p
go test -v --manual=true -run='TestTruncateVlogNoClose$' .
go test -v -run='TestTruncateVlogNoClose$' --manual=true
truncate --size=4096 p/000000.vlog
go test -v --manual=true -run='TestTruncateVlogNoClose2$' .
go test -v --manual=true -run='TestTruncateVlogNoClose3$' .
go test -v -run='TestTruncateVlogNoClose2$' --manual=true
go test -v -run='TestTruncateVlogNoClose3$' --manual=true
rm -rf p

# Then the normal tests.
echo
echo "==> Starting test for table, skl and y package"
go test -v -race github.com/dgraph-io/badger/v2/skl
# Run test for all package except the top level package. The top level package support the
# `vlog_mmap` flag which rest of the packages don't support.
go test -v -race $packages

echo
echo "==> Starting tests with value log mmapped..."
sleep 5
go test -v --vlog_mmap=true -race ./...
# Run top level package tests with mmap flag.
go test -v -race github.com/dgraph-io/badger/v2 --vlog_mmap=true

echo
echo "==> Starting tests with value log not mmapped..."
sleep 5
go test -v --vlog_mmap=false -race ./...
go test -v -race github.com/dgraph-io/badger/v2 --vlog_mmap=false

0 comments on commit c1d6ffa

Please sign in to comment.