typo (#3281)
This commit is contained in:
@@ -78,7 +78,7 @@ func TestBulkExecutorFlush(t *testing.T) {
|
|||||||
wait.Wait()
|
wait.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBuldExecutorFlushSlowTasks(t *testing.T) {
|
func TestBulkExecutorFlushSlowTasks(t *testing.T) {
|
||||||
const total = 1500
|
const total = 1500
|
||||||
lock := new(sync.Mutex)
|
lock := new(sync.Mutex)
|
||||||
result := make([]any, 0, 10000)
|
result := make([]any, 0, 10000)
|
||||||
|
|||||||
@@ -168,23 +168,23 @@ func TestPeriodicalExecutor_FlushPanic(t *testing.T) {
|
|||||||
|
|
||||||
func TestPeriodicalExecutor_Wait(t *testing.T) {
|
func TestPeriodicalExecutor_Wait(t *testing.T) {
|
||||||
var lock sync.Mutex
|
var lock sync.Mutex
|
||||||
executer := NewBulkExecutor(func(tasks []any) {
|
executor := NewBulkExecutor(func(tasks []any) {
|
||||||
lock.Lock()
|
lock.Lock()
|
||||||
defer lock.Unlock()
|
defer lock.Unlock()
|
||||||
time.Sleep(10 * time.Millisecond)
|
time.Sleep(10 * time.Millisecond)
|
||||||
}, WithBulkTasks(1), WithBulkInterval(time.Second))
|
}, WithBulkTasks(1), WithBulkInterval(time.Second))
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
executer.Add(1)
|
executor.Add(1)
|
||||||
}
|
}
|
||||||
executer.Flush()
|
executor.Flush()
|
||||||
executer.Wait()
|
executor.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPeriodicalExecutor_WaitFast(t *testing.T) {
|
func TestPeriodicalExecutor_WaitFast(t *testing.T) {
|
||||||
const total = 3
|
const total = 3
|
||||||
var cnt int
|
var cnt int
|
||||||
var lock sync.Mutex
|
var lock sync.Mutex
|
||||||
executer := NewBulkExecutor(func(tasks []any) {
|
executor := NewBulkExecutor(func(tasks []any) {
|
||||||
defer func() {
|
defer func() {
|
||||||
cnt++
|
cnt++
|
||||||
}()
|
}()
|
||||||
@@ -193,10 +193,10 @@ func TestPeriodicalExecutor_WaitFast(t *testing.T) {
|
|||||||
time.Sleep(10 * time.Millisecond)
|
time.Sleep(10 * time.Millisecond)
|
||||||
}, WithBulkTasks(1), WithBulkInterval(10*time.Millisecond))
|
}, WithBulkTasks(1), WithBulkInterval(10*time.Millisecond))
|
||||||
for i := 0; i < total; i++ {
|
for i := 0; i < total; i++ {
|
||||||
executer.Add(2)
|
executor.Add(2)
|
||||||
}
|
}
|
||||||
executer.Flush()
|
executor.Flush()
|
||||||
executer.Wait()
|
executor.Wait()
|
||||||
assert.Equal(t, total, cnt)
|
assert.Equal(t, total, cnt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,29 +11,29 @@ import (
|
|||||||
// The file is kept as open, the caller should close the file handle,
|
// The file is kept as open, the caller should close the file handle,
|
||||||
// and remove the file by name.
|
// and remove the file by name.
|
||||||
func TempFileWithText(text string) (*os.File, error) {
|
func TempFileWithText(text string) (*os.File, error) {
|
||||||
tmpfile, err := os.CreateTemp(os.TempDir(), hash.Md5Hex([]byte(text)))
|
tmpFile, err := os.CreateTemp(os.TempDir(), hash.Md5Hex([]byte(text)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(tmpfile.Name(), []byte(text), os.ModeTemporary); err != nil {
|
if err := os.WriteFile(tmpFile.Name(), []byte(text), os.ModeTemporary); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmpfile, nil
|
return tmpFile, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// TempFilenameWithText creates the file with the given content,
|
// TempFilenameWithText creates the file with the given content,
|
||||||
// and returns the filename (full path).
|
// and returns the filename (full path).
|
||||||
// The caller should remove the file after use.
|
// The caller should remove the file after use.
|
||||||
func TempFilenameWithText(text string) (string, error) {
|
func TempFilenameWithText(text string) (string, error) {
|
||||||
tmpfile, err := TempFileWithText(text)
|
tmpFile, err := TempFileWithText(text)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
filename := tmpfile.Name()
|
filename := tmpFile.Name()
|
||||||
if err = tmpfile.Close(); err != nil {
|
if err = tmpFile.Close(); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,11 +40,11 @@ b`,
|
|||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.input, func(t *testing.T) {
|
t.Run(test.input, func(t *testing.T) {
|
||||||
tmpfile, err := fs.TempFilenameWithText(test.input)
|
tmpFile, err := fs.TempFilenameWithText(test.input)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
defer os.Remove(tmpfile)
|
defer os.Remove(tmpFile)
|
||||||
|
|
||||||
content, err := ReadText(tmpfile)
|
content, err := ReadText(tmpFile)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
assert.Equal(t, test.expect, content)
|
assert.Equal(t, test.expect, content)
|
||||||
})
|
})
|
||||||
@@ -59,9 +59,9 @@ func TestReadTextLines(t *testing.T) {
|
|||||||
#a
|
#a
|
||||||
3`
|
3`
|
||||||
|
|
||||||
tmpfile, err := fs.TempFilenameWithText(text)
|
tmpFile, err := fs.TempFilenameWithText(text)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
defer os.Remove(tmpfile)
|
defer os.Remove(tmpFile)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
options []TextReadOption
|
options []TextReadOption
|
||||||
@@ -87,7 +87,7 @@ func TestReadTextLines(t *testing.T) {
|
|||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(stringx.Rand(), func(t *testing.T) {
|
t.Run(stringx.Rand(), func(t *testing.T) {
|
||||||
lines, err := ReadTextLines(tmpfile, test.options...)
|
lines, err := ReadTextLines(tmpFile, test.options...)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
assert.Equal(t, test.expectLines, len(lines))
|
assert.Equal(t, test.expectLines, len(lines))
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -250,11 +250,11 @@ func EqualDoc(spec1, spec2 Spec) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v *ApiVisitor) getDoc(t TokenStream) []Expr {
|
func (v *ApiVisitor) getDoc(t TokenStream) []Expr {
|
||||||
return v.getHiddenTokensToLeft(t, api.COMEMNTS, false)
|
return v.getHiddenTokensToLeft(t, api.COMMENTS, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *ApiVisitor) getComment(t TokenStream) Expr {
|
func (v *ApiVisitor) getComment(t TokenStream) Expr {
|
||||||
list := v.getHiddenTokensToRight(t, api.COMEMNTS)
|
list := v.getHiddenTokensToRight(t, api.COMMENTS)
|
||||||
if len(list) == 0 {
|
if len(list) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,4 +237,4 @@ const (
|
|||||||
ApiParserLexerLetterOrDigit = 25
|
ApiParserLexerLetterOrDigit = 25
|
||||||
)
|
)
|
||||||
|
|
||||||
const COMEMNTS = 88
|
const COMMENTS = 88
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ func isNormal(p *ApiParserParser) bool {
|
|||||||
return len(list) > 1
|
return len(list) > 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// MatchTag returns a Boolean value, which returns true if it does matched, otherwise returns fase
|
// MatchTag returns a Boolean value, which returns true if it does matched, otherwise returns false
|
||||||
func MatchTag(v string) bool {
|
func MatchTag(v string) bool {
|
||||||
return matchRegex(v, tagRegex)
|
return matchRegex(v, tagRegex)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user