34 lines
940 B
Go
34 lines
940 B
Go
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)
|
||
|
|
}
|
||
|
|
}
|