Runs the defined test, applying its asserts.
(t *testing.T)
| 430 | |
| 431 | // Runs the defined test, applying its asserts. |
| 432 | func (test Test) Run(t *testing.T) { |
| 433 | if test.Skip != "" { |
| 434 | t.Skip(test.Skip) |
| 435 | } |
| 436 | |
| 437 | var ports DynamicResources |
| 438 | ports.global = &GlobalPorts |
| 439 | ports.t = t |
| 440 | |
| 441 | u, err := driver.NewDoltUser() |
| 442 | require.NoError(t, err) |
| 443 | t.Cleanup(func() { |
| 444 | u.Cleanup() |
| 445 | }) |
| 446 | |
| 447 | servers := make(map[string]*driver.SqlServer) |
| 448 | |
| 449 | for _, r := range test.Repos { |
| 450 | // Each repo with a server gets its own store (data-dir) so that |
| 451 | // independent doltgres server processes do not collide on the same |
| 452 | // on-disk databases. |
| 453 | rs, err := u.MakeRepoStore() |
| 454 | require.NoError(t, err) |
| 455 | |
| 456 | MakeRepo(t, rs, r, &ports) |
| 457 | |
| 458 | if r.Server != nil { |
| 459 | if r.Server.Name == "" { |
| 460 | r.Server.Name = r.Name |
| 461 | } |
| 462 | server := MakeServer(t, rs, rs.Dir, r.Server, &ports) |
| 463 | if server != nil { |
| 464 | server.DBName = r.Name |
| 465 | servers[r.Name] = server |
| 466 | } |
| 467 | } |
| 468 | } |
| 469 | |
| 470 | for _, mr := range test.MultiRepos { |
| 471 | // Each MultiRepo gets its own data-dir. |
| 472 | rs, err := u.MakeRepoStore() |
| 473 | require.NoError(t, err) |
| 474 | for _, r := range mr.Repos { |
| 475 | MakeRepo(t, rs, r, &ports) |
| 476 | } |
| 477 | for _, f := range mr.WithFiles { |
| 478 | f.Template = func(s string) string { |
| 479 | return ports.ApplyTemplate(s) |
| 480 | } |
| 481 | require.NoError(t, f.WriteAtDir(rs.Dir)) |
| 482 | } |
| 483 | if mr.Server != nil { |
| 484 | if mr.Server.Name == "" { |
| 485 | mr.Server.Name = mr.Name |
| 486 | } |
| 487 | server := MakeServer(t, rs, rs.Dir, mr.Server, &ports) |
| 488 | if server != nil { |
| 489 | servers[mr.Name] = server |