Files
monibuca/test/stream_test.go
langhuihui 4ab1f8e9a1 - API 现在可以返回{"data":xxx,"code":0,"msg":"ok"}
格式
- 按需拉流的事件的类型从`*Stream`修改为`InvitePublish`
- 远程拉流频繁重连后导致多路远程流同时写入同一个`track`
- 在并发序列化`Tracks`时导致错误,通过加锁解决
- 修复`Record`插件录制`fmp4`格式报错
- 更新`WebRTC`插件依赖库版本
- 更新依赖库`quic-go`版本
- 优化`ps`插件中的`tcp`收流逻辑
- 优化`rtmp`插件streamId计算方法
2023-08-14 12:39:57 +08:00

53 lines
1008 B
Go

package test
import (
"fmt"
"testing"
"time"
)
// TestPubAndSub 测试发布和订阅
func TestPubAndSub(t *testing.T) {
t.Cleanup(FreeEngine)
UseEngine()
t.Run("publish", func(t *testing.T) {
t.Parallel()
var pub UnitTestPublisher
unitTestPlugin.Publish("test/001", &pub)
})
t.Run("subscribe", func(t *testing.T) {
t.Parallel()
var sub UnitTestSubsciber
sub.tb = t
err := unitTestPlugin.Subscribe("test/001", &sub)
if err != nil {
t.Fatal(err)
} else {
sub.PlayRaw()
}
})
}
func BenchmarkPubAndSub(b *testing.B) {
b.Cleanup(FreeEngine)
UseEngine()
for i := 0; i < 10; i++ {
i := i
go func(i int) {
var pub UnitTestPublisher
unitTestPlugin.Publish(fmt.Sprintf("testb/%d", i), &pub)
}(i)
go b.RunParallel(func(pb *testing.PB) {
var sub UnitTestSubsciber
sub.tb = b
err := unitTestPlugin.Subscribe(fmt.Sprintf("testb/%d", i), &sub)
if err != nil {
// b.Fatal(err)
} else {
sub.PlayRaw()
}
})
}
time.Sleep(time.Second * 10)
}