@@ -25,66 +25,49 @@ import (
2525 "strings"
2626 "testing"
2727
28- "github.com/jmoiron/sqlx"
29- "github.com/multiformats/go-multihash"
3028 "github.com/stretchr/testify/require"
3129
3230 "github.com/ethereum/go-ethereum/statediff/indexer/database/file"
3331 "github.com/ethereum/go-ethereum/statediff/indexer/database/file/types"
3432 "github.com/ethereum/go-ethereum/statediff/indexer/database/sql/postgres"
35- "github.com/ethereum/go-ethereum/statediff/indexer/interfaces "
36- "github.com/ethereum/go-ethereum/statediff/indexer/ipld "
33+ "github.com/ethereum/go-ethereum/statediff/indexer/test "
34+ "github.com/ethereum/go-ethereum/statediff/indexer/test_helpers "
3735)
3836
3937const dbDirectory = "/file_indexer"
4038const pgCopyStatement = `COPY %s FROM '%s' CSV`
4139
42- func setupCSVLegacy (t * testing.T ) {
43- mockLegacyBlock = legacyData .MockBlock
44- legacyHeaderCID , _ = ipld .RawdataToCid (ipld .MEthHeader , legacyData .MockHeaderRlp , multihash .KECCAK_256 )
45- file .CSVTestConfig .OutputDir = "./statediffing_legacy_test"
46-
40+ func setupLegacyCSVIndexer (t * testing.T ) {
4741 if _ , err := os .Stat (file .CSVTestConfig .OutputDir ); ! errors .Is (err , os .ErrNotExist ) {
4842 err := os .RemoveAll (file .CSVTestConfig .OutputDir )
4943 require .NoError (t , err )
5044 }
5145
52- ind , err := file .NewStateDiffIndexer (context .Background (), legacyData .Config , file .CSVTestConfig )
53- require .NoError (t , err )
54- var tx interfaces.Batch
55- tx , err = ind .PushBlock (
56- mockLegacyBlock ,
57- legacyData .MockReceipts ,
58- legacyData .MockBlock .Difficulty ())
46+ ind , err = file .NewStateDiffIndexer (context .Background (), test .LegacyConfig , file .CSVTestConfig )
5947 require .NoError (t , err )
6048
61- defer func () {
62- if err := tx .Submit (err ); err != nil {
63- t .Fatal (err )
64- }
65- if err := ind .Close (); err != nil {
66- t .Fatal (err )
67- }
68- }()
69-
70- for _ , node := range legacyData .StateDiffs {
71- err = ind .PushStateNode (tx , node , legacyData .MockBlock .Hash ().String ())
72- require .NoError (t , err )
73- }
74-
75- require .Equal (t , legacyData .BlockNumber .String (), tx .(* file.BatchTx ).BlockNumber )
76-
77- connStr := postgres .DefaultConfig .DbConnectionString ()
78- sqlxdb , err = sqlx .Connect ("postgres" , connStr )
49+ db , err = postgres .SetupSQLXDB ()
7950 if err != nil {
80- t .Fatalf ( "failed to connect to db with connection string: %s err: %v" , connStr , err )
51+ t .Fatal ( err )
8152 }
8253}
8354
55+ func setupLegacyCSV (t * testing.T ) {
56+ setupLegacyCSVIndexer (t )
57+ test .SetupLegacyTestData (t , ind )
58+ }
59+
8460func dumpCSVFileData (t * testing.T ) {
8561 outputDir := filepath .Join (dbDirectory , file .CSVTestConfig .OutputDir )
62+ workingDir , err := os .Getwd ()
63+ require .NoError (t , err )
64+
65+ localOutputDir := filepath .Join (workingDir , file .CSVTestConfig .OutputDir )
8666
8767 for _ , tbl := range file .Tables {
68+ err := test_helpers .DedupFile (file .TableFilePath (localOutputDir , tbl .Name ))
69+ require .NoError (t , err )
70+
8871 var stmt string
8972 varcharColumns := tbl .VarcharColumns ()
9073 if len (varcharColumns ) > 0 {
@@ -98,38 +81,38 @@ func dumpCSVFileData(t *testing.T) {
9881 stmt = fmt .Sprintf (pgCopyStatement , tbl .Name , file .TableFilePath (outputDir , tbl .Name ))
9982 }
10083
101- _ , err = sqlxdb .Exec (stmt )
84+ _ , err = db .Exec (context . Background (), stmt )
10285 require .NoError (t , err )
10386 }
10487}
10588
106- func dumpWatchedAddressesCSVFileData (t * testing.T ) {
89+ func resetAndDumpWatchedAddressesCSVFileData (t * testing.T ) {
90+ test_helpers .TearDownDB (t , db )
91+
10792 outputFilePath := filepath .Join (dbDirectory , file .CSVTestConfig .WatchedAddressesFilePath )
10893 stmt := fmt .Sprintf (pgCopyStatement , types .TableWatchedAddresses .Name , outputFilePath )
10994
110- _ , err = sqlxdb .Exec (stmt )
95+ _ , err = db .Exec (context . Background (), stmt )
11196 require .NoError (t , err )
11297}
11398
11499func tearDownCSV (t * testing.T ) {
115- file .TearDownDB (t , sqlxdb )
100+ test_helpers .TearDownDB (t , db )
101+ require .NoError (t , db .Close ())
116102
117- err := os .RemoveAll (file .CSVTestConfig .OutputDir )
118- require .NoError (t , err )
103+ require .NoError (t , os .RemoveAll (file .CSVTestConfig .OutputDir ))
119104
120105 if err := os .Remove (file .CSVTestConfig .WatchedAddressesFilePath ); ! errors .Is (err , os .ErrNotExist ) {
121106 require .NoError (t , err )
122107 }
123-
124- err = sqlxdb .Close ()
125- require .NoError (t , err )
126108}
127109
128- func TestCSVFileIndexerLegacy (t * testing.T ) {
110+ func TestLegacyCSVFileIndexer (t * testing.T ) {
129111 t .Run ("Publish and index header IPLDs" , func (t * testing.T ) {
130- setupCSVLegacy (t )
112+ setupLegacyCSV (t )
131113 dumpCSVFileData (t )
132114 defer tearDownCSV (t )
133- testLegacyPublishAndIndexHeaderIPLDs (t )
115+
116+ test .TestLegacyIndexer (t , db )
134117 })
135118}
0 commit comments