fix(audio): NullSink-Verwurf-Zeile im CLI-Pfad sichtbar machen
NewSink bekommt einen optionalen Log-Writer (die CLI übergibt stderr);
zuvor verwarf der null-Sink bei erfolgreicher Synthese stumm — die
sichtbare Zeile kam nur aus dem ErrNoByteOutput-Zweig. Sink-Interface
unverändert; Aufrufstellen ab Task 03 müssen den Writer übergeben.
TestSayArgumentMitNullSink beweist die Zeile jetzt extern auf dem
CLI-Pfad, TestNewSink deckt das Factory-Wiring ab; Live-Beweis mit
espeak-ng dokumentiert ("audio: N Bytes verworfen (null sink)", Exit 0).
Dazu (Minor): "was" aus englishWords entfernt — widersprach dem
Mehrdeutigkeits-Kommentar und dem Report; neuer TestFall
"Was macht er?" → de.
This commit is contained in:
1 parent
8306c6b384
commit
ae9f3b680e
6 files changed
+31
-10
No files matched your search
@@ -115,7 +115,7 @@ func TestDecodeWAVFehler(t *testing.T) {
|
||||
|
||||
func TestNewSink(t *testing.T) {
|
||||
for _, name := range []string{NameOto, NameNull} {
|
||||
s, err := NewSink(name)
|
||||
s, err := NewSink(name, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("NewSink(%q): %v", name, err)
|
||||
}
|
||||
@@ -123,9 +123,22 @@ func TestNewSink(t *testing.T) {
|
||||
t.Errorf("NewSink(%q).Name() = %q", name, s.Name())
|
||||
}
|
||||
}
|
||||
if _, err := NewSink("mpv"); err == nil {
|
||||
if _, err := NewSink("mpv", nil); err == nil {
|
||||
t.Error("NewSink(\"mpv\") soll fehlschlagen")
|
||||
}
|
||||
t.Run("null-Sink loggt über den Factory-Writer", func(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
s, err := NewSink(NameNull, &buf)
|
||||
if err != nil {
|
||||
t.Fatalf("NewSink(%q): %v", NameNull, err)
|
||||
}
|
||||
if err := s.Play(context.Background(), []byte("audio")); err != nil {
|
||||
t.Fatalf("Play: %v", err)
|
||||
}
|
||||
if !strings.Contains(buf.String(), "verworfen (null sink)") {
|
||||
t.Errorf("Log = %q, will Verwurf-Zeile über den Factory-Writer", buf.String())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestNullSinkVerwirftUndLoggt(t *testing.T) {
|
||||
|
||||
Reference in new issue
Block a user