2016-12-29 02:44:32 +03:00
// Copyright 2016 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package models
import (
2018-07-21 21:17:10 +03:00
"fmt"
2016-12-29 02:44:32 +03:00
"testing"
2019-03-27 12:33:00 +03:00
"code.gitea.io/gitea/modules/git"
2016-12-29 02:44:32 +03:00
)
func BenchmarkGetCommitGraph ( b * testing . B ) {
currentRepo , err := git . OpenRepository ( "." )
if err != nil {
b . Error ( "Could not open repository" )
}
2017-01-03 05:52:09 +03:00
for i := 0 ; i < b . N ; i ++ {
graph , err := GetCommitGraph ( currentRepo )
if err != nil {
b . Error ( "Could get commit graph" )
}
if len ( graph ) < 100 {
b . Error ( "Should get 100 log lines." )
}
2016-12-29 02:44:32 +03:00
}
}
func BenchmarkParseCommitString ( b * testing . B ) {
testString := "* DATA:||4e61bacab44e9b4730e44a6615d04098dd3a8eaf|2016-12-20 21:10:41 +0100|Kjell Kvinge|kjell@kvinge.biz|4e61bac|Add route for graph"
2017-01-03 05:52:09 +03:00
for i := 0 ; i < b . N ; i ++ {
graphItem , err := graphItemFromString ( testString , nil )
if err != nil {
b . Error ( "could not parse teststring" )
}
2016-12-29 02:44:32 +03:00
2017-01-03 05:52:09 +03:00
if graphItem . Author != "Kjell Kvinge" {
b . Error ( "Did not get expected data" )
}
2016-12-29 02:44:32 +03:00
}
}
2018-07-21 21:17:10 +03:00
func TestCommitStringParsing ( t * testing . T ) {
dataFirstPart := "* DATA:||4e61bacab44e9b4730e44a6615d04098dd3a8eaf|2016-12-20 21:10:41 +0100|Author|user@mail.something|4e61bac|"
tests := [ ] struct {
shouldPass bool
testName string
commitMessage string
} {
{ true , "normal" , "not a fancy message" } ,
{ true , "extra pipe" , "An extra pipe: |" } ,
{ true , "extra 'Data:'" , "DATA: might be trouble" } ,
}
for _ , test := range tests {
t . Run ( test . testName , func ( t * testing . T ) {
testString := fmt . Sprintf ( "%s%s" , dataFirstPart , test . commitMessage )
graphItem , err := graphItemFromString ( testString , nil )
if err != nil && test . shouldPass {
t . Errorf ( "Could not parse %s" , testString )
return
}
if test . commitMessage != graphItem . Subject {
t . Errorf ( "%s does not match %s" , test . commitMessage , graphItem . Subject )
}
} )
}
}