MCPcopy Create free account
hub / github.com/compozy/agh / openLowBusyTestKernel

Function openLowBusyTestKernel

internal/resources/kernel_test.go:1196–1241  ·  view source on GitHub ↗
(t *testing.T, opts ...Option)

Source from the content-addressed store, hash-verified

1194}
1195
1196func openLowBusyTestKernel(t *testing.T, opts ...Option) (*Kernel, *sql.DB) {
1197 t.Helper()
1198
1199 dbPath := filepath.Join(t.TempDir(), store.GlobalDatabaseName)
1200 dsnURL := url.URL{
1201 Scheme: "file",
1202 Path: filepath.ToSlash(dbPath),
1203 }
1204 query := dsnURL.Query()
1205 query.Add("_pragma", "busy_timeout(1)")
1206 query.Add("_pragma", "foreign_keys(ON)")
1207 query.Add("_pragma", "journal_mode(WAL)")
1208 query.Add("_pragma", "synchronous(NORMAL)")
1209 dsnURL.RawQuery = query.Encode()
1210
1211 db, err := sql.Open("sqlite", dsnURL.String())
1212 if err != nil {
1213 t.Fatalf("sql.Open() error = %v", err)
1214 }
1215 db.SetMaxOpenConns(8)
1216 db.SetMaxIdleConns(8)
1217 t.Cleanup(func() {
1218 if closeErr := db.Close(); closeErr != nil {
1219 t.Fatalf("db.Close() error = %v", closeErr)
1220 }
1221 })
1222
1223 ctx := testutil.Context(t)
1224 if err := db.PingContext(ctx); err != nil {
1225 t.Fatalf("db.PingContext() error = %v", err)
1226 }
1227 if err := store.EnsureSchema(ctx, db, SchemaStatements()); err != nil {
1228 t.Fatalf("EnsureSchema() error = %v", err)
1229 }
1230
1231 options := append([]Option{
1232 WithNow(func() time.Time {
1233 return time.Date(2026, 4, 15, 12, 0, 0, 0, time.UTC)
1234 }),
1235 }, opts...)
1236 kernel, err := NewKernel(db, options...)
1237 if err != nil {
1238 t.Fatalf("NewKernel() error = %v", err)
1239 }
1240 return kernel, db
1241}
1242
1243func holdResourceWriteLock(ctx context.Context, t *testing.T, db *sql.DB) {
1244 t.Helper()

Calls 12

ContextFunction · 0.92
EnsureSchemaFunction · 0.92
SchemaStatementsFunction · 0.85
appendFunction · 0.85
NewKernelFunction · 0.85
CleanupMethod · 0.80
WithNowFunction · 0.70
QueryMethod · 0.65
EncodeMethod · 0.65
CloseMethod · 0.65
AddMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected