file_windows_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package loggerutils
  2. import (
  3. "io"
  4. "os"
  5. "path/filepath"
  6. "testing"
  7. "gotest.tools/v3/assert"
  8. )
  9. func TestOpenFileDelete(t *testing.T) {
  10. tmpDir := t.TempDir()
  11. f, err := openFile(filepath.Join(tmpDir, "test.txt"), os.O_CREATE|os.O_RDWR, 644)
  12. assert.NilError(t, err)
  13. defer f.Close()
  14. assert.NilError(t, os.RemoveAll(f.Name()))
  15. }
  16. func TestOpenFileRename(t *testing.T) {
  17. tmpDir := t.TempDir()
  18. f, err := openFile(filepath.Join(tmpDir, "test.txt"), os.O_CREATE|os.O_RDWR, 0o644)
  19. assert.NilError(t, err)
  20. defer f.Close()
  21. assert.NilError(t, os.Rename(f.Name(), f.Name()+"renamed"))
  22. }
  23. func TestUnlinkOpenFile(t *testing.T) {
  24. tmpDir := t.TempDir()
  25. name := filepath.Join(tmpDir, "test.txt")
  26. f, err := openFile(name, os.O_CREATE|os.O_RDWR, 0o644)
  27. assert.NilError(t, err)
  28. defer func() { assert.NilError(t, f.Close()) }()
  29. _, err = io.WriteString(f, "first")
  30. assert.NilError(t, err)
  31. assert.NilError(t, unlink(name))
  32. f2, err := openFile(name, os.O_CREATE|os.O_RDWR, 0o644)
  33. assert.NilError(t, err)
  34. defer func() { assert.NilError(t, f2.Close()) }()
  35. _, err = io.WriteString(f2, "second")
  36. assert.NilError(t, err)
  37. _, err = f.Seek(0, io.SeekStart)
  38. assert.NilError(t, err)
  39. fdata, err := io.ReadAll(f)
  40. assert.NilError(t, err)
  41. assert.Check(t, "first" == string(fdata))
  42. _, err = f2.Seek(0, io.SeekStart)
  43. assert.NilError(t, err)
  44. f2data, err := io.ReadAll(f2)
  45. assert.NilError(t, err)
  46. assert.Check(t, "second" == string(f2data))
  47. }