fix: normalize Bailian TTS streaming audio
This commit is contained in:
+11
-22
@@ -107,6 +107,12 @@ func rejected(r *report, err error) {
|
||||
visit(validation)
|
||||
}
|
||||
}
|
||||
|
||||
func readProbeTasks(ctx context.Context, client *configread.Client) ([]configread.DiscoveredTask, error) {
|
||||
tasks, _, err := client.ReadAllTasks(ctx)
|
||||
return tasks, err
|
||||
}
|
||||
|
||||
func check(in input) (r report) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 90*time.Second)
|
||||
defer cancel()
|
||||
@@ -171,28 +177,11 @@ func check(in input) (r report) {
|
||||
return
|
||||
}
|
||||
r.Providers = len(providers)
|
||||
var tasks []configread.DiscoveredTask
|
||||
cursor := ""
|
||||
seen := map[string]bool{}
|
||||
for {
|
||||
r.Phase = "tasks"
|
||||
page, err := client.ReadTasks(ctx, cursor)
|
||||
if err != nil {
|
||||
rejected(&r, err)
|
||||
return
|
||||
}
|
||||
for _, task := range page.Tasks {
|
||||
if seen[task.TaskID] {
|
||||
rejected(&r, errors.New("duplicate discovery task"))
|
||||
return
|
||||
}
|
||||
seen[task.TaskID] = true
|
||||
tasks = append(tasks, task)
|
||||
}
|
||||
if page.Cursor == "" {
|
||||
break
|
||||
}
|
||||
cursor = page.Cursor
|
||||
r.Phase = "tasks"
|
||||
tasks, err := readProbeTasks(ctx, client)
|
||||
if err != nil {
|
||||
rejected(&r, err)
|
||||
return
|
||||
}
|
||||
r.Tasks = len(tasks)
|
||||
for _, task := range tasks {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
@@ -8,13 +9,52 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
"syscall"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.ipao.vip/rogee/go-sip/internal/configread"
|
||||
"git.ipao.vip/rogee/go-sip/internal/contract"
|
||||
)
|
||||
|
||||
func TestReadProbeTasksStopsOnEmptyPageWithUnchangedCursor(t *testing.T) {
|
||||
const dispatcherID = "c046b893-8628-4589-ae50-619d049248a6"
|
||||
var requests atomic.Int32
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path != "/internal/v1/dispatcher/tasks" {
|
||||
t.Errorf("unexpected path %q", r.URL.Path)
|
||||
}
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
switch r.URL.Query().Get("after") {
|
||||
case "":
|
||||
requests.Add(1)
|
||||
_, _ = w.Write([]byte(`{"dispatcher_id":"` + dispatcherID + `","cursor":"115","tasks":[{"task_id":"6","tenant_id":1001,"status":"running","task_revision":1}]}`))
|
||||
case "115":
|
||||
requests.Add(1)
|
||||
_, _ = w.Write([]byte(`{"dispatcher_id":"` + dispatcherID + `","cursor":"115","tasks":[]}`))
|
||||
default:
|
||||
t.Errorf("unexpected task cursor %q", r.URL.RawQuery)
|
||||
}
|
||||
}))
|
||||
defer server.Close()
|
||||
client, err := configread.NewClient(server.URL, dispatcherID, "test-secret", server.Client())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||
defer cancel()
|
||||
tasks, err := readProbeTasks(ctx, client)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(tasks) != 1 || tasks[0].TaskID != "6" || requests.Load() != 2 {
|
||||
t.Fatalf("tasks=%+v request_count=%d, want one task and two page requests", tasks, requests.Load())
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnvironmentRejectsMissingConfigurationWithoutNetworking(t *testing.T) {
|
||||
t.Setenv("DISPATCHER_ID", "")
|
||||
t.Setenv("AGENT_ID", "")
|
||||
|
||||
Reference in New Issue
Block a user