mirror of
https://github.com/FiloSottile/age.git
synced 2026-02-06 18:20:42 +00:00
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package inspect
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"filippo.io/age/internal/stream"
|
|
)
|
|
|
|
func TestStreamOverhead(t *testing.T) {
|
|
tests := []struct {
|
|
payloadSize int64
|
|
want int64
|
|
wantErr bool
|
|
}{
|
|
{payloadSize: 0, wantErr: true},
|
|
{payloadSize: 15, wantErr: true},
|
|
{payloadSize: 16, wantErr: true},
|
|
{payloadSize: 16 + 15, wantErr: true},
|
|
{payloadSize: 16 + 16, want: 16 + 16}, // empty plaintext
|
|
{payloadSize: 16 + 1 + 16, want: 16 + 16},
|
|
{payloadSize: 16 + stream.ChunkSize + 16, want: 16 + 16},
|
|
{payloadSize: 16 + stream.ChunkSize + 16 + 1, wantErr: true},
|
|
{payloadSize: 16 + stream.ChunkSize + 16 + 15, wantErr: true},
|
|
{payloadSize: 16 + stream.ChunkSize + 16 + 16, wantErr: true}, // empty final chunk
|
|
{payloadSize: 16 + stream.ChunkSize + 16 + 1 + 16, want: 16 + 16 + 16},
|
|
}
|
|
for _, tt := range tests {
|
|
name := "payloadSize=" + fmt.Sprint(tt.payloadSize)
|
|
t.Run(name, func(t *testing.T) {
|
|
got, gotErr := streamOverhead(tt.payloadSize)
|
|
if gotErr != nil {
|
|
if !tt.wantErr {
|
|
t.Errorf("streamOverhead() failed: %v", gotErr)
|
|
}
|
|
return
|
|
}
|
|
if tt.wantErr {
|
|
t.Fatal("streamOverhead() succeeded unexpectedly")
|
|
}
|
|
if got != tt.want {
|
|
t.Errorf("streamOverhead() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|