kuma

Форк
0
44 строки · 934.0 Байт
1
package utils
2

3
import (
4
	"bytes"
5
	"fmt"
6
	"net"
7
	"strings"
8
	"text/template"
9

10
	ginko "github.com/onsi/ginkgo/v2"
11
	"github.com/onsi/gomega"
12
)
13

14
func ShellEscape(arg string) string {
15
	return fmt.Sprintf("'%s'", strings.ReplaceAll(arg, "'", "\\'"))
16
}
17

18
func GetFreePort() (int, error) {
19
	address, err := net.ResolveTCPAddr("tcp", "localhost:0")
20
	if err != nil {
21
		return 0, err
22
	}
23

24
	listener, err := net.ListenTCP("tcp", address)
25
	if err != nil {
26
		return 0, err
27
	}
28
	defer listener.Close()
29

30
	return listener.Addr().(*net.TCPAddr).Port, nil
31
}
32

33
func FromTemplate(g gomega.Gomega, tmpl string, data any) string {
34
	t, err := template.New("tmpl").Parse(tmpl)
35
	g.Expect(err).ToNot(gomega.HaveOccurred())
36
	b := bytes.Buffer{}
37
	g.Expect(t.Execute(&b, data)).To(gomega.Succeed())
38
	return b.String()
39
}
40

41
func TestCaseName(ginkgo ginko.FullGinkgoTInterface) string {
42
	nameSplit := strings.Split(ginkgo.Name(), " ")
43
	return nameSplit[len(nameSplit)-1]
44
}
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.