MCPcopy
hub / github.com/nakabonne/ali / TestFileExporter_AtomicResultsWrite

Function TestFileExporter_AtomicResultsWrite

export/export_test.go:217–252  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

215}
216
217func TestFileExporter_AtomicResultsWrite(t *testing.T) {
218 if runtime.GOOS == "windows" {
219 t.Skip("chmod semantics are not reliable on windows")
220 }
221
222 dir := t.TempDir()
223 original := []byte("id,timestamp,latency_ns,url,method,status_code\n")
224 resultsPath := filepath.Join(dir, resultsFilename)
225 require.NoError(t, os.WriteFile(resultsPath, original, 0o644))
226
227 exporter := NewFileExporter(dir)
228 zone := time.FixedZone("JST", 9*60*60)
229 run, err := exporter.StartRun(Meta{
230 ID: "cccccccc-cccc-cccc-cccc-cccccccccccc",
231 TargetURL: "https://example.com/",
232 Method: "GET",
233 Rate: 1,
234 Duration: time.Second,
235 })
236 require.NoError(t, err)
237 require.NoError(t, run.WriteResult(Result{
238 Timestamp: time.Date(2021, 3, 13, 15, 20, 43, 0, zone),
239 LatencyNS: 3,
240 StatusCode: 200,
241 }))
242
243 require.NoError(t, os.Chmod(dir, 0o555))
244 err = run.Close(Summary{})
245 require.Error(t, err)
246 require.NoError(t, os.Chmod(dir, 0o755))
247
248 got := readFile(t, resultsPath)
249 require.Equal(t, string(original), string(got))
250 _, err = os.Stat(filepath.Join(dir, summaryFilename("cccccccc-cccc-cccc-cccc-cccccccccccc")))
251 require.True(t, os.IsNotExist(err))
252}
253
254func readGolden(t *testing.T, path string) []byte {
255 t.Helper()

Callers

nothing calls this directly

Calls 6

StartRunMethod · 0.95
NewFileExporterFunction · 0.85
readFileFunction · 0.85
summaryFilenameFunction · 0.85
WriteResultMethod · 0.80
CloseMethod · 0.80

Tested by

no test coverage detected