mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
78 lines
1.8 KiB
Go
78 lines
1.8 KiB
Go
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/mattermost/platform/model"
|
|
"github.com/mattermost/platform/utils"
|
|
"net/url"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func BenchmarkUploadFile(b *testing.B) {
|
|
_, _, channel := SetupBenchmark()
|
|
|
|
testPoster := NewAutoPostCreator(Client, channel.Id)
|
|
|
|
// Benchmark Start
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
testPoster.UploadTestFile()
|
|
}
|
|
}
|
|
|
|
func BenchmarkGetFile(b *testing.B) {
|
|
team, _, channel := SetupBenchmark()
|
|
|
|
testPoster := NewAutoPostCreator(Client, channel.Id)
|
|
filenames, err := testPoster.UploadTestFile()
|
|
if err == false {
|
|
b.Fatal("Unable to upload file for benchmark")
|
|
}
|
|
|
|
newProps := make(map[string]string)
|
|
newProps["filename"] = filenames[0]
|
|
newProps["time"] = fmt.Sprintf("%v", model.GetMillis())
|
|
|
|
data := model.MapToJson(newProps)
|
|
hash := model.HashPassword(fmt.Sprintf("%v:%v", data, utils.Cfg.FileSettings.PublicLinkSalt))
|
|
|
|
// wait a bit for files to ready
|
|
time.Sleep(5 * time.Second)
|
|
|
|
// Benchmark Start
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
if _, downErr := Client.GetFile(filenames[0]+"?d="+url.QueryEscape(data)+"&h="+url.QueryEscape(hash)+"&t="+team.Id, true); downErr != nil {
|
|
b.Fatal(downErr)
|
|
}
|
|
}
|
|
}
|
|
|
|
func BenchmarkGetPublicLink(b *testing.B) {
|
|
_, _, channel := SetupBenchmark()
|
|
|
|
testPoster := NewAutoPostCreator(Client, channel.Id)
|
|
filenames, err := testPoster.UploadTestFile()
|
|
if err == false {
|
|
b.Fatal("Unable to upload file for benchmark")
|
|
}
|
|
|
|
data := make(map[string]string)
|
|
data["filename"] = filenames[0]
|
|
|
|
// wait a bit for files to ready
|
|
time.Sleep(5 * time.Second)
|
|
|
|
// Benchmark Start
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
if _, downErr := Client.GetPublicLink(data); downErr != nil {
|
|
b.Fatal(downErr)
|
|
}
|
|
}
|
|
}
|