package mysqlimport import ( "os" "testing" ) func TestParseDump(t *testing.T) { path := `D:\Новая папка (10)\wg\wg.sql` raw, err := os.ReadFile(path) if err != nil { t.Skip(err) } text := string(raw) counts := map[string]int{} for _, m := range reInsert.FindAllStringSubmatch(text, -1) { table := m[1] rows, err := splitValueTuples(m[2]) if err != nil { t.Fatalf("%s: %v", table, err) } for _, row := range rows { cols, err := tableColumns(table) if err != nil { t.Fatalf("cols %s: %v", table, err) } vals, err := parseRowValues(row) if err != nil { t.Fatalf("row %s: %v", table, err) } if len(vals) != len(cols) { t.Fatalf("%s col mismatch got=%d want=%d sample=%s", table, len(vals), len(cols), truncate(row, 100)) } } counts[table] += len(rows) } if counts["wg_configs"] < 1 { t.Fatalf("expected wg_configs rows, got %+v", counts) } if counts["users"] < 1 { t.Fatalf("expected users rows, got %+v", counts) } t.Logf("counts: %+v", counts) }