(t *testing.T)
| 1481 | } |
| 1482 | |
| 1483 | func TestPITRIDMapOnStorage(t *testing.T) { |
| 1484 | ctx := context.Background() |
| 1485 | s := utiltest.CreateRestoreSchemaSuite(t) |
| 1486 | tk := testkit.NewTestKit(t, s.Mock.Storage) |
| 1487 | tk.MustExec("DROP TABLE IF EXISTS mysql.tidb_pitr_id_map") |
| 1488 | g := gluetidb.New() |
| 1489 | se, err := g.CreateSession(s.Mock.Storage) |
| 1490 | require.NoError(t, err) |
| 1491 | client := logclient.TEST_NewLogClient(123, 1, 2, 3, s.Mock.Domain, se) |
| 1492 | backend, err := storage.ParseBackend("local://"+filepath.ToSlash(t.TempDir()), nil) |
| 1493 | require.NoError(t, err) |
| 1494 | err = client.SetStorage(ctx, backend, nil) |
| 1495 | require.NoError(t, err) |
| 1496 | baseTableMappingManager := &stream.TableMappingManager{ |
| 1497 | DBReplaceMap: getDBMap(), |
| 1498 | } |
| 1499 | err = client.TEST_saveIDMap(ctx, baseTableMappingManager, nil) |
| 1500 | require.NoError(t, err) |
| 1501 | newSchemaReplaces, err := client.TEST_initSchemasMap(ctx, 1, nil) |
| 1502 | require.NoError(t, err) |
| 1503 | require.Nil(t, newSchemaReplaces) |
| 1504 | client2 := logclient.TEST_NewLogClient(123, 1, 2, 4, s.Mock.Domain, se) |
| 1505 | backend2, err := storage.ParseBackend("local://"+filepath.ToSlash(t.TempDir()+"/temp_another"), nil) |
| 1506 | require.NoError(t, err) |
| 1507 | err = client2.SetStorage(ctx, backend2, nil) |
| 1508 | require.NoError(t, err) |
| 1509 | newSchemaReplaces, err = client2.TEST_initSchemasMap(ctx, 2, nil) |
| 1510 | require.NoError(t, err) |
| 1511 | require.Nil(t, newSchemaReplaces) |
| 1512 | newSchemaReplaces, err = client.TEST_initSchemasMap(ctx, 2, nil) |
| 1513 | require.NoError(t, err) |
| 1514 | |
| 1515 | require.Equal(t, len(baseTableMappingManager.DBReplaceMap), len(newSchemaReplaces)) |
| 1516 | for _, dbMap := range newSchemaReplaces { |
| 1517 | baseDbMap := baseTableMappingManager.DBReplaceMap[dbMap.IdMap.UpstreamId] |
| 1518 | require.NotNil(t, baseDbMap) |
| 1519 | require.Equal(t, baseDbMap.DbID, dbMap.IdMap.DownstreamId) |
| 1520 | require.Equal(t, baseDbMap.Name, dbMap.Name) |
| 1521 | require.Equal(t, len(baseDbMap.TableMap), len(dbMap.Tables)) |
| 1522 | for _, tableMap := range dbMap.Tables { |
| 1523 | baseTableMap := baseDbMap.TableMap[tableMap.IdMap.UpstreamId] |
| 1524 | require.NotNil(t, baseTableMap) |
| 1525 | require.Equal(t, baseTableMap.TableID, tableMap.IdMap.DownstreamId) |
| 1526 | require.Equal(t, baseTableMap.Name, tableMap.Name) |
| 1527 | require.Equal(t, len(baseTableMap.PartitionMap), len(tableMap.Partitions)) |
| 1528 | for _, partitionMap := range tableMap.Partitions { |
| 1529 | basePartitionMap, exist := baseTableMap.PartitionMap[partitionMap.UpstreamId] |
| 1530 | require.True(t, exist) |
| 1531 | require.Equal(t, basePartitionMap, partitionMap.DownstreamId) |
| 1532 | } |
| 1533 | } |
| 1534 | } |
| 1535 | } |
| 1536 | |
| 1537 | func TestPITRIDMapOnCheckpointStorage(t *testing.T) { |
| 1538 | ctx := context.Background() |
nothing calls this directly
no test coverage detected