gitech

Форк
0
/
utils_e2e_test.go 
56 строк · 1.3 Кб
1
// Copyright 2019 The Gitea Authors. All rights reserved.
2
// SPDX-License-Identifier: MIT
3

4
package e2e
5

6
import (
7
	"context"
8
	"net"
9
	"net/http"
10
	"net/url"
11
	"testing"
12
	"time"
13

14
	"code.gitea.io/gitea/modules/setting"
15
	"code.gitea.io/gitea/tests"
16

17
	"github.com/stretchr/testify/assert"
18
)
19

20
func onGiteaRunTB(t testing.TB, callback func(testing.TB, *url.URL), prepare ...bool) {
21
	if len(prepare) == 0 || prepare[0] {
22
		defer tests.PrepareTestEnv(t, 1)()
23
	}
24
	s := http.Server{
25
		Handler: testE2eWebRoutes,
26
	}
27

28
	u, err := url.Parse(setting.AppURL)
29
	assert.NoError(t, err)
30
	listener, err := net.Listen("tcp", u.Host)
31
	i := 0
32
	for err != nil && i <= 10 {
33
		time.Sleep(100 * time.Millisecond)
34
		listener, err = net.Listen("tcp", u.Host)
35
		i++
36
	}
37
	assert.NoError(t, err)
38
	u.Host = listener.Addr().String()
39

40
	defer func() {
41
		ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
42
		s.Shutdown(ctx)
43
		cancel()
44
	}()
45

46
	go s.Serve(listener)
47
	// Started by config go ssh.Listen(setting.SSH.ListenHost, setting.SSH.ListenPort, setting.SSH.ServerCiphers, setting.SSH.ServerKeyExchanges, setting.SSH.ServerMACs)
48

49
	callback(t, u)
50
}
51

52
func onGiteaRun(t *testing.T, callback func(*testing.T, *url.URL), prepare ...bool) {
53
	onGiteaRunTB(t, func(t testing.TB, u *url.URL) {
54
		callback(t.(*testing.T), u)
55
	}, prepare...)
56
}
57

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

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

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

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