Files

34 lines
940 B
Go
Raw Permalink Normal View History

package playback
import (
"os"
"path/filepath"
"testing"
)
// CloseProcess must leave the output directory intact so a session sharing the
// same directory (e.g. a concurrent reconstruct winner) keeps serving its
// segments and init.mp4. Close, by contrast, removes the directory.
func TestCloseProcessKeepsOutputDir(t *testing.T) {
dir := t.TempDir()
seg := filepath.Join(dir, "init.mp4")
if err := os.WriteFile(seg, []byte("data"), 0o644); err != nil {
t.Fatalf("seed segment: %v", err)
}
s := &TranscodeSession{outputDir: dir}
if err := s.CloseProcess(); err != nil {
t.Fatalf("CloseProcess: %v", err)
}
if _, err := os.Stat(seg); err != nil {
t.Fatalf("CloseProcess must not remove output dir, but segment is gone: %v", err)
}
if err := s.Close(); err != nil {
t.Fatalf("Close: %v", err)
}
if _, err := os.Stat(dir); !os.IsNotExist(err) {
t.Fatalf("Close must remove output dir, stat err = %v", err)
}
}