✅ Adjust the default data size of the test and add a timeout control
This commit is contained in:
@@ -788,9 +788,9 @@ func TestResourceConstraints(t *testing.T) {
|
|||||||
// 测试极大数据量
|
// 测试极大数据量
|
||||||
t.Run("极大数据量", func(t *testing.T) {
|
t.Run("极大数据量", func(t *testing.T) {
|
||||||
// 使用流式生成器模拟大数据,避免一次性分配太多内存
|
// 使用流式生成器模拟大数据,避免一次性分配太多内存
|
||||||
dataSize := 200 * 1024 * 1024 // 200MB
|
dataSize := 20 * 1024 * 1024 // 默认20MB
|
||||||
if testing.Short() {
|
if testing.Short() {
|
||||||
dataSize = 20 * 1024 * 1024 // 短测试模式下降为20MB
|
dataSize = 5 * 1024 * 1024 // 短测试模式下降为5MB
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建数据生成器
|
// 创建数据生成器
|
||||||
@@ -804,9 +804,12 @@ func TestResourceConstraints(t *testing.T) {
|
|||||||
bufferSizes := []int{
|
bufferSizes := []int{
|
||||||
32 * 1024, // 32KB,较小
|
32 * 1024, // 32KB,较小
|
||||||
128 * 1024, // 128KB,适中
|
128 * 1024, // 128KB,适中
|
||||||
512 * 1024, // 512KB,较大
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 添加超时控制
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
for _, bufSize := range bufferSizes {
|
for _, bufSize := range bufferSizes {
|
||||||
t.Run(fmt.Sprintf("缓冲区%dKB", bufSize/1024), func(t *testing.T) {
|
t.Run(fmt.Sprintf("缓冲区%dKB", bufSize/1024), func(t *testing.T) {
|
||||||
// 重置数据生成器位置
|
// 重置数据生成器位置
|
||||||
@@ -817,10 +820,11 @@ func TestResourceConstraints(t *testing.T) {
|
|||||||
options.BufferSize = bufSize
|
options.BufferSize = bufSize
|
||||||
options.UseParallel = true // 使用并行模式
|
options.UseParallel = true // 使用并行模式
|
||||||
options.CollectStats = true
|
options.CollectStats = true
|
||||||
|
options.CancelChan = ctx.Done() // 添加取消通道
|
||||||
|
|
||||||
// 创建输出缓冲区
|
// 创建输出缓冲区
|
||||||
outBuf := &limitedBuffer{
|
outBuf := &limitedBuffer{
|
||||||
maxSize: 300 * 1024 * 1024, // 300MB 限制
|
maxSize: 30 * 1024 * 1024, // 30MB 限制
|
||||||
}
|
}
|
||||||
|
|
||||||
// 尝试加密
|
// 尝试加密
|
||||||
@@ -829,6 +833,9 @@ func TestResourceConstraints(t *testing.T) {
|
|||||||
duration := time.Since(startTime)
|
duration := time.Since(startTime)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, ErrOperationCancelled) {
|
||||||
|
t.Fatal("测试超时")
|
||||||
|
}
|
||||||
t.Fatalf("大数据量加密失败 (size=%dMB, buffer=%dKB): %v",
|
t.Fatalf("大数据量加密失败 (size=%dMB, buffer=%dKB): %v",
|
||||||
dataSize/(1024*1024), bufSize/1024, err)
|
dataSize/(1024*1024), bufSize/1024, err)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user