fix truncate test cases on Windows

This commit is contained in:
Nicola Murino 2020-08-20 14:44:38 +02:00
parent f41ce6619f
commit 7381a867ba
3 changed files with 5 additions and 2 deletions

View file

@ -496,7 +496,8 @@ func (c *BaseConnection) truncateFile(fsPath string, size int64) error {
// if we found no transfer we truncate by path.
// pkg/sftp should expose an optional interface and call truncate directly on the opened handle ...
// If we try to truncate by path an already opened file we get an error on Windows
err := c.truncateOpenHandle(fsPath, size)
var err error
err = c.truncateOpenHandle(fsPath, size)
if err == errNoTransfer {
c.Log(logger.LevelDebug, "file path %#v not found in active transfers, execute trucate by path", fsPath)
err = c.Fs.Truncate(fsPath, size)

View file

@ -530,7 +530,7 @@ func TestSetStat(t *testing.T) {
})
assert.Error(t, err)
// truncate
err = c.SetStat(filepath.Join(user.GetHomeDir(), "missing"), "/missing", &StatAttributes{
err = c.SetStat(filepath.Join(user.GetHomeDir(), "/missing/missing"), "/missing/missing", &StatAttributes{
Size: 1,
Flags: StatAttrSize,
})

View file

@ -106,6 +106,8 @@ func TestTruncate(t *testing.T) {
assert.NoError(t, err)
err = transfer.Close()
assert.NoError(t, err)
err = file.Close()
assert.NoError(t, err)
fi, err := os.Stat(testFile)
if assert.NoError(t, err) {
assert.Equal(t, int64(2), fi.Size())