64 lines
1.2 KiB
Go
64 lines
1.2 KiB
Go
package remotefileupload
|
|
|
|
import (
|
|
"math/rand"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// without the goroutine, only sends 11
|
|
func BenchmarkAzureUpload(b *testing.B) {
|
|
azureAccount = "fiskerclouddev"
|
|
azureAccountKey = "REPLACE_ME"
|
|
|
|
uploader, err := NewAzureUploader("trex-logs", ".txt")
|
|
if err != nil {
|
|
b.Error(err)
|
|
}
|
|
|
|
benchmarkUploadTime(uploader, b)
|
|
}
|
|
|
|
func BenchmarkAzureBatchUpload(b *testing.B) {
|
|
azureAccount = "fiskerclouddev"
|
|
azureAccountKey = "REPLACE_ME"
|
|
|
|
uploader, err := NewAzureBatchUploader("trex-logs", ".txt", 1, "\n")
|
|
if err != nil {
|
|
b.Error(err)
|
|
}
|
|
|
|
benchmarkUploadTime(uploader, b)
|
|
}
|
|
|
|
// 1762456 messages,
|
|
func benchmarkUploadTime(uploader Uploader, b *testing.B) {
|
|
endTimer := time.NewTimer(time.Second * 5)
|
|
messagesSent := 0
|
|
Loop:
|
|
for {
|
|
select {
|
|
case <-endTimer.C:
|
|
break Loop
|
|
default:
|
|
SendMessage(time.Now(), uploader, b)
|
|
messagesSent++
|
|
}
|
|
}
|
|
|
|
time.Sleep(5 * time.Second)
|
|
b.Logf("Benchmark %s 'sent' %d messages\n", b.Name(), messagesSent)
|
|
}
|
|
|
|
func SendMessage(t time.Time, uploader Uploader, b *testing.B) {
|
|
thread := rand.Intn(10)
|
|
_, err := uploader.Upload([]byte(t.Format(time.RubyDate)), LogPayload{
|
|
Title: "This",
|
|
Value: "Some",
|
|
}, "/benchmark", strconv.Itoa(thread))
|
|
if err != nil {
|
|
b.Error(b)
|
|
}
|
|
}
|