mirror of
https://github.com/rclone/rclone.git
synced 2025-08-09 05:54:43 +02:00
config: prevent use of windows reserved names in config file name
This commit is contained in:
@ -6,6 +6,7 @@ import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"runtime"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@ -152,3 +153,29 @@ func TestOpenFileOperations(t *testing.T) {
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Smoke test the IsReserved function
|
||||
func TestIsReserved(t *testing.T) {
|
||||
if runtime.GOOS != "windows" {
|
||||
t.Skip("Skipping test on !windows")
|
||||
}
|
||||
// Regular name
|
||||
require.NoError(t, IsReserved("readme.txt"))
|
||||
require.NoError(t, IsReserved("some/path/readme.txt"))
|
||||
// Empty
|
||||
require.Error(t, IsReserved(""))
|
||||
// Separators only
|
||||
require.Error(t, IsReserved("/"))
|
||||
require.Error(t, IsReserved("////"))
|
||||
require.Error(t, IsReserved("./././././"))
|
||||
// Legacy device name
|
||||
require.Error(t, IsReserved("NUL"))
|
||||
require.Error(t, IsReserved("nul"))
|
||||
require.Error(t, IsReserved("Nul"))
|
||||
require.Error(t, IsReserved("NUL.txt"))
|
||||
require.Error(t, IsReserved("some/path/to/nul.txt"))
|
||||
require.NoError(t, IsReserved("NULL"))
|
||||
// Name end with a space or a period
|
||||
require.Error(t, IsReserved("test."))
|
||||
require.Error(t, IsReserved("test "))
|
||||
}
|
||||
|
Reference in New Issue
Block a user