Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b4b0479

Browse files
committed
pg tests
1 parent f420062 commit b4b0479

File tree

2 files changed

+73
-1
lines changed

2 files changed

+73
-1
lines changed

scripts/dbpool/dbpool_test.go

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package main_test
2+
3+
import (
4+
"context"
5+
"database/sql"
6+
"fmt"
7+
"testing"
8+
"time"
9+
10+
"github.com/google/uuid"
11+
"github.com/stretchr/testify/require"
12+
13+
"github.com/coder/coder/v2/coderd/database"
14+
"github.com/coder/coder/v2/coderd/database/dbgen"
15+
"github.com/coder/coder/v2/coderd/database/dbtestutil"
16+
)
17+
18+
func TestDBPool(t *testing.T) {
19+
t.Parallel()
20+
21+
numConcurrentTests := 512
22+
for i := range numConcurrentTests {
23+
ctx := context.Background()
24+
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
25+
t.Parallel()
26+
27+
now := time.Now()
28+
db, ps := dbtestutil.NewDB(t)
29+
t.Logf("%d: newDB took %s", i, time.Since(now))
30+
31+
ownerID := uuid.New()
32+
user := dbgen.User(t, db, database.User{
33+
ID: ownerID,
34+
})
35+
org := dbgen.Organization(t, db, database.Organization{})
36+
template := dbgen.Template(t, db, database.Template{
37+
CreatedBy: user.ID,
38+
OrganizationID: org.ID,
39+
CreatedAt: now.Add(time.Second * time.Duration(i)),
40+
})
41+
templateVersionJob := dbgen.ProvisionerJob(t, db, ps, database.ProvisionerJob{
42+
CreatedAt: now,
43+
CompletedAt: sql.NullTime{Time: now.Add(time.Second * time.Duration(i)), Valid: true},
44+
OrganizationID: org.ID,
45+
InitiatorID: user.ID,
46+
})
47+
templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{
48+
TemplateID: uuid.NullUUID{UUID: template.ID, Valid: true},
49+
OrganizationID: org.ID,
50+
CreatedBy: user.ID,
51+
JobID: templateVersionJob.ID,
52+
CreatedAt: now,
53+
})
54+
require.NoError(t, db.UpdateTemplateActiveVersionByID(ctx, database.UpdateTemplateActiveVersionByIDParams{
55+
ID: template.ID,
56+
ActiveVersionID: templateVersion.ID,
57+
}))
58+
// Make sure immutable params don't break prebuilt workspace deletion logic
59+
dbgen.TemplateVersionParameter(t, db, database.TemplateVersionParameter{
60+
TemplateVersionID: templateVersion.ID,
61+
Name: "test",
62+
Description: "required & immutable param",
63+
Type: "string",
64+
DefaultValue: "",
65+
Required: true,
66+
Mutable: false,
67+
})
68+
69+
t.Logf("%d: test took %s", i, time.Since(now))
70+
})
71+
}
72+
}

scripts/dbpool/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ var errAlreadyPrinted = xerrors.New("error already printed")
204204

205205
func inner(logger *slog.Logger) error {
206206
dbPool := NewDBPool(DBPoolArgs{
207-
PoolSize: 250,
207+
PoolSize: 512,
208208
NumCleanupWorkers: 16,
209209
Logger: logger,
210210
})

0 commit comments

Comments
 (0)