refactor: move shared packages up a level
This commit is contained in:
47
transcode/transcode_test.go
Normal file
47
transcode/transcode_test.go
Normal file
@@ -0,0 +1,47 @@
|
||||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
package transcode_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/matryer/is"
|
||||
"go.senan.xyz/gonic/transcode"
|
||||
)
|
||||
|
||||
// FuzzGuessExpectedSize makes sure all of our profile's estimated transcode
|
||||
// file sizes are slightly bigger than the real thing.
|
||||
func FuzzGuessExpectedSize(f *testing.F) {
|
||||
var profiles []transcode.Profile
|
||||
for _, v := range transcode.UserProfiles {
|
||||
profiles = append(profiles, v)
|
||||
}
|
||||
|
||||
type track struct {
|
||||
path string
|
||||
length time.Duration
|
||||
}
|
||||
var tracks []track
|
||||
tracks = append(tracks, track{"testdata/5s.mp3", 5 * time.Second})
|
||||
tracks = append(tracks, track{"testdata/10s.mp3", 10 * time.Second})
|
||||
|
||||
tr := transcode.NewFFmpegTranscoder()
|
||||
f.Fuzz(func(t *testing.T, pseed uint8, tseed uint8) {
|
||||
is := is.New(t)
|
||||
profile := profiles[int(pseed)%len(profiles)]
|
||||
track := tracks[int(tseed)%len(tracks)]
|
||||
|
||||
sizeGuess := transcode.GuessExpectedSize(profile, track.length)
|
||||
|
||||
reader, err := tr.Transcode(context.Background(), profile, track.path)
|
||||
is.NoErr(err)
|
||||
|
||||
actual, err := io.ReadAll(reader)
|
||||
is.NoErr(err)
|
||||
is.True(sizeGuess > len(actual))
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user