forked from TrueCloudLab/restic
Add sftp tests
This commit is contained in:
parent
4952f86682
commit
c6db567e3f
8 changed files with 418 additions and 100 deletions
|
@ -7,14 +7,81 @@ import (
|
||||||
"github.com/restic/restic/backend/test"
|
"github.com/restic/restic/backend/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLocalBackendCreate(t *testing.T) { test.Create(t) }
|
var SkipMessage string
|
||||||
func TestLocalBackendOpen(t *testing.T) { test.Open(t) }
|
|
||||||
func TestLocalBackendCreateWithConfig(t *testing.T) { test.CreateWithConfig(t) }
|
func TestLocalBackendCreate(t *testing.T) {
|
||||||
func TestLocalBackendLocation(t *testing.T) { test.Location(t) }
|
if SkipMessage != "" {
|
||||||
func TestLocalBackendConfig(t *testing.T) { test.Config(t) }
|
t.Skip(SkipMessage)
|
||||||
func TestLocalBackendGetReader(t *testing.T) { test.GetReader(t) }
|
}
|
||||||
func TestLocalBackendLoad(t *testing.T) { test.Load(t) }
|
test.Create(t)
|
||||||
func TestLocalBackendWrite(t *testing.T) { test.Write(t) }
|
}
|
||||||
func TestLocalBackendGeneric(t *testing.T) { test.Generic(t) }
|
|
||||||
func TestLocalBackendDelete(t *testing.T) { test.Delete(t) }
|
func TestLocalBackendOpen(t *testing.T) {
|
||||||
func TestLocalBackendCleanup(t *testing.T) { test.Cleanup(t) }
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Open(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendCreateWithConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.CreateWithConfig(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendLocation(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Location(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Config(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendGetReader(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.GetReader(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendLoad(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Load(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendWrite(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Write(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendGeneric(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Generic(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendDelete(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Delete(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLocalBackendCleanup(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Cleanup(t)
|
||||||
|
}
|
||||||
|
|
|
@ -7,14 +7,81 @@ import (
|
||||||
"github.com/restic/restic/backend/test"
|
"github.com/restic/restic/backend/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMemBackendCreate(t *testing.T) { test.Create(t) }
|
var SkipMessage string
|
||||||
func TestMemBackendOpen(t *testing.T) { test.Open(t) }
|
|
||||||
func TestMemBackendCreateWithConfig(t *testing.T) { test.CreateWithConfig(t) }
|
func TestMemBackendCreate(t *testing.T) {
|
||||||
func TestMemBackendLocation(t *testing.T) { test.Location(t) }
|
if SkipMessage != "" {
|
||||||
func TestMemBackendConfig(t *testing.T) { test.Config(t) }
|
t.Skip(SkipMessage)
|
||||||
func TestMemBackendGetReader(t *testing.T) { test.GetReader(t) }
|
}
|
||||||
func TestMemBackendLoad(t *testing.T) { test.Load(t) }
|
test.Create(t)
|
||||||
func TestMemBackendWrite(t *testing.T) { test.Write(t) }
|
}
|
||||||
func TestMemBackendGeneric(t *testing.T) { test.Generic(t) }
|
|
||||||
func TestMemBackendDelete(t *testing.T) { test.Delete(t) }
|
func TestMemBackendOpen(t *testing.T) {
|
||||||
func TestMemBackendCleanup(t *testing.T) { test.Cleanup(t) }
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Open(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendCreateWithConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.CreateWithConfig(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendLocation(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Location(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Config(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendGetReader(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.GetReader(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendLoad(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Load(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendWrite(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Write(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendGeneric(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Generic(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendDelete(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Delete(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemBackendCleanup(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Cleanup(t)
|
||||||
|
}
|
||||||
|
|
87
backend/sftp/backend_test.go
Normal file
87
backend/sftp/backend_test.go
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
// DO NOT EDIT, AUTOMATICALLY GENERATED
|
||||||
|
package sftp_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/restic/restic/backend/test"
|
||||||
|
)
|
||||||
|
|
||||||
|
var SkipMessage string
|
||||||
|
|
||||||
|
func TestSftpBackendCreate(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Create(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendOpen(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Open(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendCreateWithConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.CreateWithConfig(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendLocation(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Location(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Config(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendGetReader(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.GetReader(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendLoad(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Load(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendWrite(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Write(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendGeneric(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Generic(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendDelete(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Delete(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSftpBackendCleanup(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Cleanup(t)
|
||||||
|
}
|
|
@ -369,6 +369,10 @@ func (r *SFTP) GetReader(t backend.Type, name string, offset, length uint) (io.R
|
||||||
// Load returns the data stored in the backend for h at the given offset
|
// Load returns the data stored in the backend for h at the given offset
|
||||||
// and saves it in p. Load has the same semantics as io.ReaderAt.
|
// and saves it in p. Load has the same semantics as io.ReaderAt.
|
||||||
func (r *SFTP) Load(h backend.Handle, p []byte, off int64) (n int, err error) {
|
func (r *SFTP) Load(h backend.Handle, p []byte, off int64) (n int, err error) {
|
||||||
|
if err := h.Valid(); err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
f, err := r.c.Open(r.filename(h.Type, h.Name))
|
f, err := r.c.Open(r.filename(h.Type, h.Name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|
81
backend/sftp/sftp_backend_test.go
Normal file
81
backend/sftp/sftp_backend_test.go
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
package sftp_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/restic/restic/backend"
|
||||||
|
"github.com/restic/restic/backend/sftp"
|
||||||
|
"github.com/restic/restic/backend/test"
|
||||||
|
|
||||||
|
. "github.com/restic/restic/test"
|
||||||
|
)
|
||||||
|
|
||||||
|
var tempBackendDir string
|
||||||
|
|
||||||
|
//go:generate go run ../test/generate_backend_tests.go
|
||||||
|
|
||||||
|
func createTempdir() error {
|
||||||
|
if tempBackendDir != "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
tempdir, err := ioutil.TempDir("", "restic-local-test-")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("created new test backend at %v\n", tempdir)
|
||||||
|
tempBackendDir = tempdir
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
sftpserver := ""
|
||||||
|
|
||||||
|
for _, dir := range strings.Split(TestSFTPPath, ":") {
|
||||||
|
testpath := filepath.Join(dir, "sftp-server")
|
||||||
|
fd, err := os.Open(testpath)
|
||||||
|
fd.Close()
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
|
sftpserver = testpath
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if sftpserver == "" {
|
||||||
|
SkipMessage = "sftp server binary not found, skipping tests"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
test.CreateFn = func() (backend.Backend, error) {
|
||||||
|
err := createTempdir()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return sftp.Create(tempBackendDir, sftpserver)
|
||||||
|
}
|
||||||
|
|
||||||
|
test.OpenFn = func() (backend.Backend, error) {
|
||||||
|
err := createTempdir()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return sftp.Open(tempBackendDir, sftpserver)
|
||||||
|
}
|
||||||
|
|
||||||
|
test.CleanupFn = func() error {
|
||||||
|
if tempBackendDir == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("removing test backend at %v\n", tempBackendDir)
|
||||||
|
err := os.RemoveAll(tempBackendDir)
|
||||||
|
tempBackendDir = ""
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,65 +0,0 @@
|
||||||
package backend_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/restic/restic/backend/sftp"
|
|
||||||
. "github.com/restic/restic/test"
|
|
||||||
)
|
|
||||||
|
|
||||||
func setupSFTPBackend(t *testing.T) *sftp.SFTP {
|
|
||||||
sftpserver := ""
|
|
||||||
|
|
||||||
for _, dir := range strings.Split(TestSFTPPath, ":") {
|
|
||||||
testpath := filepath.Join(dir, "sftp-server")
|
|
||||||
fd, err := os.Open(testpath)
|
|
||||||
fd.Close()
|
|
||||||
if !os.IsNotExist(err) {
|
|
||||||
sftpserver = testpath
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if sftpserver == "" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
tempdir, err := ioutil.TempDir("", "restic-test-")
|
|
||||||
OK(t, err)
|
|
||||||
|
|
||||||
b, err := sftp.Create(tempdir, sftpserver)
|
|
||||||
OK(t, err)
|
|
||||||
|
|
||||||
t.Logf("created sftp backend locally at %s", tempdir)
|
|
||||||
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func teardownSFTPBackend(t *testing.T, b *sftp.SFTP) {
|
|
||||||
if !TestCleanup {
|
|
||||||
t.Logf("leaving backend at %s\n", b.Location())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err := os.RemoveAll(b.Location())
|
|
||||||
OK(t, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSFTPBackend(t *testing.T) {
|
|
||||||
if !RunIntegrationTest {
|
|
||||||
t.Skip("integration tests disabled")
|
|
||||||
}
|
|
||||||
|
|
||||||
s := setupSFTPBackend(t)
|
|
||||||
if s == nil {
|
|
||||||
t.Skip("unable to find sftp-server binary")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer teardownSFTPBackend(t, s)
|
|
||||||
|
|
||||||
testBackend(s, t)
|
|
||||||
}
|
|
|
@ -7,14 +7,81 @@ import (
|
||||||
"github.com/restic/restic/backend/test"
|
"github.com/restic/restic/backend/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTestBackendCreate(t *testing.T) { test.Create(t) }
|
var SkipMessage string
|
||||||
func TestTestBackendOpen(t *testing.T) { test.Open(t) }
|
|
||||||
func TestTestBackendCreateWithConfig(t *testing.T) { test.CreateWithConfig(t) }
|
func TestTestBackendCreate(t *testing.T) {
|
||||||
func TestTestBackendLocation(t *testing.T) { test.Location(t) }
|
if SkipMessage != "" {
|
||||||
func TestTestBackendConfig(t *testing.T) { test.Config(t) }
|
t.Skip(SkipMessage)
|
||||||
func TestTestBackendGetReader(t *testing.T) { test.GetReader(t) }
|
}
|
||||||
func TestTestBackendLoad(t *testing.T) { test.Load(t) }
|
test.Create(t)
|
||||||
func TestTestBackendWrite(t *testing.T) { test.Write(t) }
|
}
|
||||||
func TestTestBackendGeneric(t *testing.T) { test.Generic(t) }
|
|
||||||
func TestTestBackendDelete(t *testing.T) { test.Delete(t) }
|
func TestTestBackendOpen(t *testing.T) {
|
||||||
func TestTestBackendCleanup(t *testing.T) { test.Cleanup(t) }
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Open(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendCreateWithConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.CreateWithConfig(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendLocation(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Location(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendConfig(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Config(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendGetReader(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.GetReader(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendLoad(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Load(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendWrite(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Write(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendGeneric(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Generic(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendDelete(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Delete(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTestBackendCleanup(t *testing.T) {
|
||||||
|
if SkipMessage != "" {
|
||||||
|
t.Skip(SkipMessage)
|
||||||
|
}
|
||||||
|
test.Cleanup(t)
|
||||||
|
}
|
||||||
|
|
|
@ -33,8 +33,15 @@ import (
|
||||||
"github.com/restic/restic/backend/test"
|
"github.com/restic/restic/backend/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var SkipMessage string
|
||||||
|
|
||||||
{{ $prefix := .PackagePrefix }}
|
{{ $prefix := .PackagePrefix }}
|
||||||
{{ range $f := .Funcs }}func Test{{ $prefix }}{{ $f }}(t *testing.T){ test.{{ $f }}(t) }
|
{{ range $f := .Funcs }}
|
||||||
|
func Test{{ $prefix }}{{ $f }}(t *testing.T){
|
||||||
|
if SkipMessage != "" { t.Skip(SkipMessage) }
|
||||||
|
test.{{ $f }}(t)
|
||||||
|
}
|
||||||
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
@ -42,6 +49,7 @@ var testFile = flag.String("testfile", "../test/tests.go", "file to search test
|
||||||
var outputFile = flag.String("output", "backend_test.go", "output file to write generated code to")
|
var outputFile = flag.String("output", "backend_test.go", "output file to write generated code to")
|
||||||
var packageName = flag.String("package", "", "the package name to use")
|
var packageName = flag.String("package", "", "the package name to use")
|
||||||
var prefix = flag.String("prefix", "", "test function prefix")
|
var prefix = flag.String("prefix", "", "test function prefix")
|
||||||
|
var quiet = flag.Bool("quiet", false, "be quiet")
|
||||||
|
|
||||||
func errx(err error) {
|
func errx(err error) {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
@ -126,5 +134,7 @@ func main() {
|
||||||
|
|
||||||
errx(f.Close())
|
errx(f.Close())
|
||||||
|
|
||||||
fmt.Printf("wrote backend tests for package %v to %v\n", data.Package, *outputFile)
|
if !*quiet {
|
||||||
|
fmt.Printf("wrote backend tests for package %v to %v\n", data.Package, *outputFile)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue