cephfs: replace tests mount setup boilerplate with func

In the cephfs tests the setup of the mount/connection was largely being
done as a copy-n-paste. This change adds a common setup function for
most of the test cases that need an active connection.
Similar to other recent changes this also adds a timeout such that
if the test fails to get a connection it will fail quickly rather
than block forever.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
This commit is contained in:
John Mulligan 2019-12-20 07:51:53 -05:00 committed by Niels de Vos
parent d51628ca59
commit b177121473
1 changed files with 44 additions and 69 deletions

View File

@ -5,6 +5,7 @@ import (
"os" "os"
"syscall" "syscall"
"testing" "testing"
"time"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@ -15,53 +16,52 @@ var (
) )
func TestCreateMount(t *testing.T) { func TestCreateMount(t *testing.T) {
mount := fsConnect(t)
mount, err := CreateMount() mount, err := CreateMount()
assert.NoError(t, err) assert.NoError(t, err)
assert.NotNil(t, mount) assert.NotNil(t, mount)
} }
func TestMountRoot(t *testing.T) { func fsConnect(t *testing.T) *MountInfo {
mount, err := CreateMount() mount, err := CreateMount()
assert.NoError(t, err) require.NoError(t, err)
require.NotNil(t, mount) require.NotNil(t, mount)
err = mount.ReadDefaultConfigFile() err = mount.ReadDefaultConfigFile()
assert.NoError(t, err) require.NoError(t, err)
err = mount.Mount() timeout := time.After(time.Second * 5)
assert.NoError(t, err) ch := make(chan error)
go func(mount *MountInfo) {
ch <- mount.Mount()
}(mount)
select {
case err = <-ch:
case <-timeout:
err = fmt.Errorf("timed out waiting for connect")
}
require.NoError(t, err)
return mount
}
func TestMountRoot(t *testing.T) {
fsConnect(t)
} }
func TestSyncFs(t *testing.T) { func TestSyncFs(t *testing.T) {
mount, err := CreateMount() mount := fsConnect(t)
assert.NoError(t, err)
require.NotNil(t, mount)
err = mount.ReadDefaultConfigFile() err := mount.SyncFs()
assert.NoError(t, err)
err = mount.Mount()
assert.NoError(t, err)
err = mount.SyncFs()
assert.NoError(t, err) assert.NoError(t, err)
} }
func TestChangeDir(t *testing.T) { func TestChangeDir(t *testing.T) {
mount, err := CreateMount() mount := fsConnect(t)
assert.NoError(t, err)
require.NotNil(t, mount)
err = mount.ReadDefaultConfigFile()
assert.NoError(t, err)
err = mount.Mount()
require.NoError(t, err)
dir1 := mount.CurrentDir() dir1 := mount.CurrentDir()
assert.NotNil(t, dir1) assert.NotNil(t, dir1)
err = mount.MakeDir("/asdf", 0755) err := mount.MakeDir("/asdf", 0755)
assert.NoError(t, err) assert.NoError(t, err)
err = mount.ChangeDir("/asdf") err = mount.ChangeDir("/asdf")
@ -77,17 +77,9 @@ func TestChangeDir(t *testing.T) {
func TestRemoveDir(t *testing.T) { func TestRemoveDir(t *testing.T) {
dirname := "one" dirname := "one"
mount, err := CreateMount() mount := fsConnect(t)
assert.NoError(t, err)
require.NotNil(t, mount)
err = mount.ReadDefaultConfigFile() err := mount.MakeDir(dirname, 0755)
assert.NoError(t, err)
err = mount.Mount()
assert.NoError(t, err)
err = mount.MakeDir(dirname, 0755)
assert.NoError(t, err) assert.NoError(t, err)
err = mount.SyncFs() err = mount.SyncFs()
@ -106,21 +98,20 @@ func TestRemoveDir(t *testing.T) {
} }
func TestUnmountMount(t *testing.T) { func TestUnmountMount(t *testing.T) {
t.Run("neverMounted", func(t *testing.T) {
mount, err := CreateMount() mount, err := CreateMount()
assert.NoError(t, err) require.NoError(t, err)
require.NotNil(t, mount) require.NotNil(t, mount)
fmt.Printf("%#v\n", mount.IsMounted()) assert.False(t, mount.IsMounted())
})
err = mount.ReadDefaultConfigFile() t.Run("mountUnmount", func(t *testing.T) {
assert.NoError(t, err) mount := fsConnect(t)
err = mount.Mount()
assert.NoError(t, err)
assert.True(t, mount.IsMounted()) assert.True(t, mount.IsMounted())
err = mount.Unmount() err := mount.Unmount()
assert.NoError(t, err) assert.NoError(t, err)
assert.False(t, mount.IsMounted()) assert.False(t, mount.IsMounted())
})
} }
func TestReleaseMount(t *testing.T) { func TestReleaseMount(t *testing.T) {
@ -136,17 +127,9 @@ func TestChmodDir(t *testing.T) {
dirname := "two" dirname := "two"
var stats_before uint32 = 0755 var stats_before uint32 = 0755
var stats_after uint32 = 0700 var stats_after uint32 = 0700
mount, err := CreateMount() mount := fsConnect(t)
assert.NoError(t, err)
require.NotNil(t, mount)
err = mount.ReadDefaultConfigFile() err := mount.MakeDir(dirname, stats_before)
assert.NoError(t, err)
err = mount.Mount()
assert.NoError(t, err)
err = mount.MakeDir(dirname, stats_before)
assert.NoError(t, err) assert.NoError(t, err)
err = mount.SyncFs() err = mount.SyncFs()
@ -172,17 +155,9 @@ func TestChown(t *testing.T) {
var bob uint32 = 1010 var bob uint32 = 1010
var root uint32 var root uint32
mount, err := CreateMount() mount := fsConnect(t)
assert.NoError(t, err)
require.NotNil(t, mount)
err = mount.ReadDefaultConfigFile() err := mount.MakeDir(dirname, 0755)
assert.NoError(t, err)
err = mount.Mount()
assert.NoError(t, err)
err = mount.MakeDir(dirname, 0755)
assert.NoError(t, err) assert.NoError(t, err)
err = mount.SyncFs() err = mount.SyncFs()