diff --git a/testscript/script_test.go b/testscript/script_test.go index 43fdde90015476a6a974e7e0cf7990b6ed98b076..564372808f2e8f6b7eacc86a33f348a48428e070 100644 --- a/testscript/script_test.go +++ b/testscript/script_test.go @@ -79,20 +79,20 @@ func TestScript(t *testing.T) { UpdateScripts: *update, RequireExplicitExec: true, Cmds: map[string]func(ts *testscript.TestScript, neg bool, args []string){ - "soft": cmdSoft("admin", admin1.Signer()), - "usoft": cmdSoft("user1", user1.Signer()), - "git": cmdGit(admin1Key), - "ugit": cmdGit(user1Key), - "curl": cmdCurl, - "mkfile": cmdMkfile, - "envfile": cmdEnvfile, - "readfile": cmdReadfile, - "dos2unix": cmdDos2Unix, - "new-webhook": cmdNewWebhook, - "waitforserver": cmdWaitforserver, - "stopserver": cmdStopserver, - "ui": cmdUI(admin1.Signer()), - "uui": cmdUI(user1.Signer()), + "soft": cmdSoft("admin", admin1.Signer()), + "usoft": cmdSoft("user1", user1.Signer()), + "git": cmdGit(admin1Key), + "ugit": cmdGit(user1Key), + "curl": cmdCurl, + "mkfile": cmdMkfile, + "envfile": cmdEnvfile, + "readfile": cmdReadfile, + "dos2unix": cmdDos2Unix, + "new-webhook": cmdNewWebhook, + "ensureserverrunning": cmdEnsureServerRunning, + "stopserver": cmdStopserver, + "ui": cmdUI(admin1.Signer()), + "uui": cmdUI(user1.Signer()), }, Setup: func(e *testscript.Env) error { // Add binPath to PATH @@ -470,9 +470,18 @@ func cmdCurl(ts *testscript.TestScript, neg bool, args []string) { check(ts, cmd.Execute(), neg) } -func cmdWaitforserver(ts *testscript.TestScript, neg bool, args []string) { - // wait until the server is up - addr := net.JoinHostPort("localhost", ts.Getenv("SSH_PORT")) +func cmdEnsureServerRunning(ts *testscript.TestScript, neg bool, args []string) { + if len(args) < 1 { + ts.Fatalf("Must supply a TCP port of one of the services to connect to. " + + "These are set as env vars as they are randomized. " + + "Example usage: \"cmdensureserverrunning SSH_PORT\"\n" + + "Valid values for the env var: SSH_PORT|HTTP_PORT|GIT_PORT|STATS_PORT") + } + + port := ts.Getenv(args[0]) + + // verify that the server is up + addr := net.JoinHostPort("localhost", port) for { conn, _ := net.DialTimeout( "tcp", @@ -480,6 +489,7 @@ func cmdWaitforserver(ts *testscript.TestScript, neg bool, args []string) { time.Second, ) if conn != nil { + ts.Logf("Server is running on port: %s", port) conn.Close() break } diff --git a/testscript/testdata/anon-access.txtar b/testscript/testdata/anon-access.txtar index 54958fa11a8f75b8618a4fb760adcc8a27441e7f..c43dc23cd47de1074cbfa38e9c2931f2ccbb00f5 100644 --- a/testscript/testdata/anon-access.txtar +++ b/testscript/testdata/anon-access.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # set settings soft settings allow-keyless true diff --git a/testscript/testdata/help.txtar b/testscript/testdata/help.txtar index d6756ca02fde1607ffa23add93e1b95adc8de89f..299e29500350aed529f20281c8eec3d3abb4507e 100644 --- a/testscript/testdata/help.txtar +++ b/testscript/testdata/help.txtar @@ -3,8 +3,8 @@ # start soft serve exec soft serve --sync-hooks & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT soft --help cmpenv stdout help.txt diff --git a/testscript/testdata/http.txtar b/testscript/testdata/http.txtar index 98f6902a5f08062ac20b671fd705937cab756955..796c6421a7a73eb8e1c3c0a8e11eb93fa31a60e9 100644 --- a/testscript/testdata/http.txtar +++ b/testscript/testdata/http.txtar @@ -8,8 +8,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create user soft user create user1 --key "$USER1_AUTHORIZED_KEY" diff --git a/testscript/testdata/jwt.txtar b/testscript/testdata/jwt.txtar index 7a257044ecf0ead8e1676c51b23276b99f171a0f..667ec7985febf17f69fc434177a6d39299434ed3 100644 --- a/testscript/testdata/jwt.txtar +++ b/testscript/testdata/jwt.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create user soft user create user1 --key "$USER1_AUTHORIZED_KEY" diff --git a/testscript/testdata/mirror.txtar b/testscript/testdata/mirror.txtar index d3cc1915de47e519a678468fedcf749277e5dc82..76feb782eb6259e319eed66a9206615bad6a40da 100644 --- a/testscript/testdata/mirror.txtar +++ b/testscript/testdata/mirror.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # import a repo soft repo import --mirror charmbracelet/catwalk https://github.com/charmbracelet/catwalk.git diff --git a/testscript/testdata/repo-blob.txtar b/testscript/testdata/repo-blob.txtar index e2712acfe6638c9c2eed5f98d08fbbb4c880ec3e..685c15d8023c85c67350712f6fb737d10f607f14 100644 --- a/testscript/testdata/repo-blob.txtar +++ b/testscript/testdata/repo-blob.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo soft repo create repo1 diff --git a/testscript/testdata/repo-collab.txtar b/testscript/testdata/repo-collab.txtar index d2960693a7a5df941a0aac1a875dc22065972179..ead5fdce455f81172fe2604fec0595dd3efa4149 100644 --- a/testscript/testdata/repo-collab.txtar +++ b/testscript/testdata/repo-collab.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # setup soft repo import test https://github.com/charmbracelet/catwalk.git diff --git a/testscript/testdata/repo-commit.txtar b/testscript/testdata/repo-commit.txtar index 70ca3da125876d954a739e262542166a37f11754..a3b61e5140e55384bb0f64390fe57a27ca5fffce 100644 --- a/testscript/testdata/repo-commit.txtar +++ b/testscript/testdata/repo-commit.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo soft repo import basic1 https://github.com/git-fixtures/basic diff --git a/testscript/testdata/repo-create.txtar b/testscript/testdata/repo-create.txtar index 7b7f12d77f17eae7c66b02704e79a16d19638b17..2b8cf4522676ab8e795d6bdc18dd78c8117b0467 100644 --- a/testscript/testdata/repo-create.txtar +++ b/testscript/testdata/repo-create.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo soft repo create repo1 -d 'description' -H -p -n 'repo11' diff --git a/testscript/testdata/repo-delete.txtar b/testscript/testdata/repo-delete.txtar index ca513e782523d1325e986f87cde1af38308b1628..b9197e17dead9547dac8c76c39491be9e576689f 100644 --- a/testscript/testdata/repo-delete.txtar +++ b/testscript/testdata/repo-delete.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT soft repo create repo1 soft repo create repo-to-delete diff --git a/testscript/testdata/repo-import.txtar b/testscript/testdata/repo-import.txtar index 84d4334b4505990626c3f2d19cae19062b6963ae..e9bfa31e4cf5a7bd0fedc927f79f1b41060a4230 100644 --- a/testscript/testdata/repo-import.txtar +++ b/testscript/testdata/repo-import.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # import private soft repo import --private repo1 https://github.com/charmbracelet/catwalk.git diff --git a/testscript/testdata/repo-perms.txtar b/testscript/testdata/repo-perms.txtar index 1cc371e93c404a92d6c21d31ed5f8cbd275b1d2a..a3e4515c066791dfa2998d0b7e6186c70edba352 100644 --- a/testscript/testdata/repo-perms.txtar +++ b/testscript/testdata/repo-perms.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo & user1 with admin soft repo create repo1 -p diff --git a/testscript/testdata/repo-push.txtar b/testscript/testdata/repo-push.txtar index cadb735b95349f71161515f034d420a4cb8f2100..d9f947537f105e879ab54275777c62250ffaa673 100644 --- a/testscript/testdata/repo-push.txtar +++ b/testscript/testdata/repo-push.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo soft repo create repo-empty -d 'description' -H -p -n 'repo-empty' diff --git a/testscript/testdata/repo-tree.txtar b/testscript/testdata/repo-tree.txtar index b3e6320de5f84429277f4f41829db9ee4544253f..75a9978a2b62f9c15fb1a01043232e701be38866 100644 --- a/testscript/testdata/repo-tree.txtar +++ b/testscript/testdata/repo-tree.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo soft repo create repo1 diff --git a/testscript/testdata/repo-webhooks.txtar b/testscript/testdata/repo-webhooks.txtar index fe393a5b65776f7164ee1c226809f24d0a40b9d5..6b370d31eb6c3c698d4529fe50121dc9800e15c0 100644 --- a/testscript/testdata/repo-webhooks.txtar +++ b/testscript/testdata/repo-webhooks.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a repo soft repo create repo-123 diff --git a/testscript/testdata/set-username.txtar b/testscript/testdata/set-username.txtar index 30f1a8e0019cfefb8e532a4b3b1e20aa2ab5aafa..745134c7353be44735504d131568a422d04901ab 100644 --- a/testscript/testdata/set-username.txtar +++ b/testscript/testdata/set-username.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # get original username soft info diff --git a/testscript/testdata/settings.txtar b/testscript/testdata/settings.txtar index 1ceaec57d24ddabe68cc8c0f0c569f18993264e1..fc6bdf463cde118f1d500e7c14bb548c789abf3b 100644 --- a/testscript/testdata/settings.txtar +++ b/testscript/testdata/settings.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # check default allow-keyless soft settings allow-keyless true diff --git a/testscript/testdata/ssh-lfs.txtar b/testscript/testdata/ssh-lfs.txtar index fbba49d3ec750a61df2e2a2a35fe7db4e0b24fe2..a647dff91a996cc6dc0eeaf4041464550b5a6cd3 100644 --- a/testscript/testdata/ssh-lfs.txtar +++ b/testscript/testdata/ssh-lfs.txtar @@ -8,8 +8,8 @@ skip 'breaks with git-lfs 3.5.1' env SOFT_SERVE_LFS_SSH_ENABLED=true # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a user soft user create foo --key "$USER1_AUTHORIZED_KEY" diff --git a/testscript/testdata/ssh.txtar b/testscript/testdata/ssh.txtar index 3e652aeb248b62e99beed85f424e4251bd9e5f6d..e968fa63a69f46f94a1e6042d2f890b8ac9e65f4 100644 --- a/testscript/testdata/ssh.txtar +++ b/testscript/testdata/ssh.txtar @@ -4,8 +4,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create a user soft user create foo --key "$USER1_AUTHORIZED_KEY" diff --git a/testscript/testdata/token.txtar b/testscript/testdata/token.txtar index 821cea84d61cea3dbd4527a74f30c0df341a0d91..7a88701c1d73fe58e45f9788e3ce0f330c2029c8 100644 --- a/testscript/testdata/token.txtar +++ b/testscript/testdata/token.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # create user soft user create user1 --key "$USER1_AUTHORIZED_KEY" diff --git a/testscript/testdata/ui-home.txtar b/testscript/testdata/ui-home.txtar index 0a5c04ab793a4384d8fb1660942594c1547a4648..126b38e7b47b77f70c464a94500fd2dcdb320469 100644 --- a/testscript/testdata/ui-home.txtar +++ b/testscript/testdata/ui-home.txtar @@ -2,8 +2,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # test repositories tab ui '" q"' diff --git a/testscript/testdata/user_management.txtar b/testscript/testdata/user_management.txtar index f65397090a444479b764d5f6958d7ffb5c17f138..233e8fd5d4e88031a7259dc179785365b27cdb1d 100644 --- a/testscript/testdata/user_management.txtar +++ b/testscript/testdata/user_management.txtar @@ -5,8 +5,8 @@ # start soft serve exec soft serve & -# wait for server to start -waitforserver +# wait for SSH server to start +ensureserverrunning SSH_PORT # add key to admin soft user add-pubkey admin "$ADMIN2_AUTHORIZED_KEY"