TestWriteTempFileAtomic_FileIsSynced verifies that Sync is called after writing data to the temporary file.
(t *testing.T)
| 117 | // TestWriteTempFileAtomic_FileIsSynced verifies that Sync is called after |
| 118 | // writing data to the temporary file. |
| 119 | func TestWriteTempFileAtomic_FileIsSynced(t *testing.T) { |
| 120 | t.Parallel() |
| 121 | |
| 122 | var mockedFile mockFileSynced |
| 123 | |
| 124 | dir := t.TempDir() |
| 125 | data := []byte("synced-content") |
| 126 | |
| 127 | mfs := mockfs{ |
| 128 | createWrapper: func(f file) file { |
| 129 | mockedFile.file = f |
| 130 | |
| 131 | return &mockedFile |
| 132 | }, |
| 133 | } |
| 134 | |
| 135 | name, err := writeTempFileAtomicImp(mfs, dir, data) |
| 136 | require.NoError(t, err) |
| 137 | require.True(t, mockedFile.synced.Load()) |
| 138 | |
| 139 | // Open a new handle to avoid OS read-cache of the same descriptor. |
| 140 | b, err := os.ReadFile(name) |
| 141 | require.NoError(t, err) |
| 142 | require.Equal(t, data, b) |
| 143 | } |
| 144 | |
| 145 | // TestWriteTempFileAtomic_NoTempFilesLeft verifies that writeTempFileAtomic |
| 146 | // does not leak the temporary file after a successful call — the caller is |
nothing calls this directly
no test coverage detected