add platformtest: infrastructure for ZFS compatiblity testing
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// Idea taken from
|
||||
// https://github.com/openSUSE/umoci/blob/v0.2.1/cmd/umoci/main_test.go
|
||||
//
|
||||
// How to generate coverage:
|
||||
// go test -c -covermode=atomic -cover -coverpkg github.com/zrepl/zrepl/...
|
||||
// sudo ../logmockzfs/logzfsenv /tmp/zrepl_platform_test.log /usr/bin/zfs \
|
||||
// ./harness.test -test.coverprofile=/tmp/harness.out \
|
||||
// -test.v __DEVEL--i-heard-you-like-tests \
|
||||
// -root rpool/zreplplayground
|
||||
// go tool cover -html=/tmp/harness.out -o /tmp/harness.html
|
||||
//
|
||||
// Merge with existing coverage reports using gocovmerge:
|
||||
// https://github.com/wadey/gocovmerge
|
||||
|
||||
func TestMain(t *testing.T) {
|
||||
var (
|
||||
args []string
|
||||
run bool
|
||||
)
|
||||
|
||||
for _, arg := range os.Args {
|
||||
switch {
|
||||
case arg == "__DEVEL--i-heard-you-like-tests":
|
||||
run = true
|
||||
case strings.HasPrefix(arg, "-test"):
|
||||
case strings.HasPrefix(arg, "__DEVEL"):
|
||||
default:
|
||||
args = append(args, arg)
|
||||
}
|
||||
}
|
||||
os.Args = args
|
||||
|
||||
if run {
|
||||
main()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user