test: use T.TempDir to create temporary test directory
The directory created by `T.TempDir` is automatically removed when the test and all its subtests complete. Reference: https://pkg.go.dev/testing#T.TempDir Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
This commit is contained in:
parent
c9a08da29f
commit
00ea3eb285
12 changed files with 104 additions and 392 deletions
|
|
@ -11,13 +11,7 @@ import (
|
|||
)
|
||||
|
||||
func TestWriteFileAtomically(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "jsondb-test-")
|
||||
require.NoError(t, err)
|
||||
|
||||
defer func() {
|
||||
err := os.RemoveAll(dir)
|
||||
require.NoError(t, err)
|
||||
}()
|
||||
dir := t.TempDir()
|
||||
|
||||
t.Run("success", func(t *testing.T) {
|
||||
octopus := []byte("🐙\n")
|
||||
|
|
@ -25,7 +19,7 @@ func TestWriteFileAtomically(t *testing.T) {
|
|||
// use an uncommon mode to check it's set correctly
|
||||
perm := os.FileMode(0750)
|
||||
|
||||
err = writeFileAtomically(dir, "octopus", perm, func(f *os.File) error {
|
||||
err := writeFileAtomically(dir, "octopus", perm, func(f *os.File) error {
|
||||
_, err := f.Write(octopus)
|
||||
return err
|
||||
})
|
||||
|
|
@ -48,12 +42,12 @@ func TestWriteFileAtomically(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
err = writeFileAtomically(dir, "no-octopus", 0750, func(f *os.File) error {
|
||||
err := writeFileAtomically(dir, "no-octopus", 0750, func(f *os.File) error {
|
||||
return errors.New("something went wrong")
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err := os.Stat(path.Join(dir, "no-octopus"))
|
||||
_, err = os.Stat(path.Join(dir, "no-octopus"))
|
||||
require.Error(t, err)
|
||||
|
||||
// ensure there are no stray temporary files
|
||||
|
|
|
|||
|
|
@ -17,11 +17,6 @@ type document struct {
|
|||
CanSwim bool `json:"can-swim"`
|
||||
}
|
||||
|
||||
func cleanupTempDir(t *testing.T, dir string) {
|
||||
err := os.RemoveAll(dir)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// If the passed directory is not readable (writable), we should notice on the
|
||||
// first read (write).
|
||||
func TestDegenerate(t *testing.T) {
|
||||
|
|
@ -42,14 +37,12 @@ func TestDegenerate(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("invalid-json", func(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "jsondb-test-")
|
||||
require.NoError(t, err)
|
||||
defer cleanupTempDir(t, dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
db := jsondb.New(dir, 0755)
|
||||
|
||||
// write-only file
|
||||
err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
|
||||
err := ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
|
||||
require.NoError(t, err)
|
||||
|
||||
var d document
|
||||
|
|
@ -59,11 +52,9 @@ func TestDegenerate(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestCorrupt(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "jsondb-test-")
|
||||
require.NoError(t, err)
|
||||
defer cleanupTempDir(t, dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
|
||||
err := ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
|
||||
require.NoError(t, err)
|
||||
|
||||
db := jsondb.New(dir, 0755)
|
||||
|
|
@ -73,11 +64,9 @@ func TestCorrupt(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestRead(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "jsondb-test-")
|
||||
require.NoError(t, err)
|
||||
defer cleanupTempDir(t, dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("true"), 0600)
|
||||
err := ioutil.WriteFile(path.Join(dir, "one.json"), []byte("true"), 0600)
|
||||
require.NoError(t, err)
|
||||
|
||||
db := jsondb.New(dir, 0755)
|
||||
|
|
@ -106,9 +95,7 @@ func TestRead(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestMultiple(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "jsondb-test-")
|
||||
require.NoError(t, err)
|
||||
defer cleanupTempDir(t, dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
perm := os.FileMode(0600)
|
||||
documents := map[string]document{
|
||||
|
|
@ -120,7 +107,7 @@ func TestMultiple(t *testing.T) {
|
|||
db := jsondb.New(dir, perm)
|
||||
|
||||
for name, doc := range documents {
|
||||
err = db.Write(name, doc)
|
||||
err := db.Write(name, doc)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
names, err := db.List()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue