test(dump): don't depend on directory listing order
cmd/dump.go uses os.Readdir to list the directory. This is fine on its own, but TestAddRecursiveExclude in cmd/dump_test.go depends on the order of the directory listing, which is where the issue lays. Directory listings using os.Readdir (lstat) don't actually guarantee an order. They can differ due to a number of factors. Most notably the OS, file system and settings. As such, the test should not check the /order of the files/ added to the archive, but instead simply check whether the archive /contains/ them. So this is precisely what this commit does. Note that only TestAddRecursiveExclude/File_inside_directory/No_exclude has been observed to fail due to this, but all TestAddRecursiveExclude subtests have been updated for consistency.
This commit is contained in:
parent
82ae7460bf
commit
230a677c74
1 changed files with 12 additions and 12 deletions
|
@ -50,7 +50,7 @@ func TestAddRecursiveExclude(t *testing.T) {
|
||||||
err = addRecursiveExclude(archiver, "", dir, nil, false)
|
err = addRecursiveExclude(archiver, "", dir, nil, false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, archiver.addedFiles, 1)
|
assert.Len(t, archiver.addedFiles, 1)
|
||||||
assert.EqualValues(t, "example", archiver.addedFiles[0])
|
assert.Contains(t, archiver.addedFiles, "example")
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("With exclude", func(t *testing.T) {
|
t.Run("With exclude", func(t *testing.T) {
|
||||||
|
@ -77,11 +77,11 @@ func TestAddRecursiveExclude(t *testing.T) {
|
||||||
err = addRecursiveExclude(archiver, "", dir, nil, false)
|
err = addRecursiveExclude(archiver, "", dir, nil, false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, archiver.addedFiles, 5)
|
assert.Len(t, archiver.addedFiles, 5)
|
||||||
assert.EqualValues(t, "deep", archiver.addedFiles[0])
|
assert.Contains(t, archiver.addedFiles, "deep")
|
||||||
assert.EqualValues(t, "deep/nested", archiver.addedFiles[1])
|
assert.Contains(t, archiver.addedFiles, "deep/nested")
|
||||||
assert.EqualValues(t, "deep/nested/folder", archiver.addedFiles[2])
|
assert.Contains(t, archiver.addedFiles, "deep/nested/folder")
|
||||||
assert.EqualValues(t, "deep/nested/folder/example", archiver.addedFiles[3])
|
assert.Contains(t, archiver.addedFiles, "deep/nested/folder/example")
|
||||||
assert.EqualValues(t, "deep/nested/folder/another-file", archiver.addedFiles[4])
|
assert.Contains(t, archiver.addedFiles, "deep/nested/folder/another-file")
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Exclude first directory", func(t *testing.T) {
|
t.Run("Exclude first directory", func(t *testing.T) {
|
||||||
|
@ -98,8 +98,8 @@ func TestAddRecursiveExclude(t *testing.T) {
|
||||||
err = addRecursiveExclude(archiver, "", dir, []string{dir + "/deep/nested/folder"}, false)
|
err = addRecursiveExclude(archiver, "", dir, []string{dir + "/deep/nested/folder"}, false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, archiver.addedFiles, 2)
|
assert.Len(t, archiver.addedFiles, 2)
|
||||||
assert.EqualValues(t, "deep", archiver.addedFiles[0])
|
assert.Contains(t, archiver.addedFiles, "deep")
|
||||||
assert.EqualValues(t, "deep/nested", archiver.addedFiles[1])
|
assert.Contains(t, archiver.addedFiles, "deep/nested")
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Exclude file", func(t *testing.T) {
|
t.Run("Exclude file", func(t *testing.T) {
|
||||||
|
@ -108,10 +108,10 @@ func TestAddRecursiveExclude(t *testing.T) {
|
||||||
err = addRecursiveExclude(archiver, "", dir, []string{dir + "/deep/nested/folder/example"}, false)
|
err = addRecursiveExclude(archiver, "", dir, []string{dir + "/deep/nested/folder/example"}, false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, archiver.addedFiles, 4)
|
assert.Len(t, archiver.addedFiles, 4)
|
||||||
assert.EqualValues(t, "deep", archiver.addedFiles[0])
|
assert.Contains(t, archiver.addedFiles, "deep")
|
||||||
assert.EqualValues(t, "deep/nested", archiver.addedFiles[1])
|
assert.Contains(t, archiver.addedFiles, "deep/nested")
|
||||||
assert.EqualValues(t, "deep/nested/folder", archiver.addedFiles[2])
|
assert.Contains(t, archiver.addedFiles, "deep/nested/folder")
|
||||||
assert.EqualValues(t, "deep/nested/folder/another-file", archiver.addedFiles[3])
|
assert.Contains(t, archiver.addedFiles, "deep/nested/folder/another-file")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue