Skip to content

Commit 23d9e22

Browse files
committed
feat: partial test files support
Signed-off-by: Norman <[email protected]>
1 parent 68c7731 commit 23d9e22

File tree

4 files changed

+124
-202
lines changed

4 files changed

+124
-202
lines changed

go.mod

+1-23
Original file line numberDiff line numberDiff line change
@@ -25,36 +25,14 @@ require (
2525
github.com/BurntSushi/toml v1.2.1 // indirect
2626
github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect
2727
github.com/btcsuite/btcd/btcutil v1.1.6 // indirect
28-
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
2928
github.com/cockroachdb/apd/v3 v3.2.1 // indirect
3029
github.com/davecgh/go-spew v1.1.1 // indirect
3130
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
32-
github.com/gnolang/overflow v0.0.0-20170615021017-4d914c927216 // indirect
33-
github.com/go-logr/logr v1.4.2 // indirect
34-
github.com/go-logr/stdr v1.2.2 // indirect
3531
github.com/google/safehtml v0.1.0 // indirect
36-
github.com/google/uuid v1.6.0 // indirect
37-
github.com/gorilla/websocket v1.5.3 // indirect
38-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
39-
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
40-
github.com/pmezard/go-difflib v1.0.0 // indirect
41-
github.com/rs/xid v1.6.0 // indirect
42-
github.com/stretchr/testify v1.9.0 // indirect
43-
go.opentelemetry.io/otel v1.29.0 // indirect
44-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect
45-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 // indirect
46-
go.opentelemetry.io/otel/metric v1.29.0 // indirect
47-
go.opentelemetry.io/otel/sdk v1.29.0 // indirect
48-
go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect
49-
go.opentelemetry.io/otel/trace v1.29.0 // indirect
50-
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
5132
go.uber.org/multierr v1.11.0 // indirect
5233
golang.org/x/crypto v0.27.0 // indirect
5334
golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect
5435
golang.org/x/exp/typeparams v0.0.0-20221212164502-fae10dda9338 // indirect
55-
golang.org/x/net v0.29.0 // indirect
56-
google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd // indirect
57-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect
58-
google.golang.org/grpc v1.65.0 // indirect
5936
google.golang.org/protobuf v1.35.1 // indirect
37+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
6038
)

go.sum

+3-51
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
2-
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
31
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
42
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
53
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
@@ -30,8 +28,6 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku
3028
github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
3129
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
3230
github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
33-
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
34-
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
3531
github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg=
3632
github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc=
3733
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -45,21 +41,10 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeC
4541
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg=
4642
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
4743
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
48-
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
49-
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
5044
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
5145
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
52-
github.com/gnolang/gno v0.0.0-20241111130702-2e9f5ce8ecc9 h1:KdfD615fbKz7YgrccElqxYAXjUfk1PEp8hG2UbZvheE=
53-
github.com/gnolang/gno v0.0.0-20241111130702-2e9f5ce8ecc9/go.mod h1:UlU+FYRfmTCIvmid4S7rUuWsjOuIPGSwjREof1T0WAs=
5446
github.com/gnolang/gno v0.0.0-20241217133227-fdedae90bfc1 h1:w4Yx08+Gwrt1nybd2Bpp/IfJVSFKkbiscE5sfPvaL1o=
5547
github.com/gnolang/gno v0.0.0-20241217133227-fdedae90bfc1/go.mod h1:xXhCN7qw5tPQqzQ1Qi0LvCl43xgAg/r6lovGUdd2j0U=
56-
github.com/gnolang/overflow v0.0.0-20170615021017-4d914c927216 h1:GKvsK3oLWG9B1GL7WP/VqwM6C92j5tIvB844oggL9Lk=
57-
github.com/gnolang/overflow v0.0.0-20170615021017-4d914c927216/go.mod h1:xJhtEL7ahjM1WJipt89gel8tHzfIl/LyMY+lCYh38d8=
58-
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
59-
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
60-
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
61-
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
62-
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
6348
github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
6449
github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
6550
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -80,28 +65,23 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
8065
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
8166
github.com/google/safehtml v0.1.0 h1:EwLKo8qawTKfsi0orxcQAZzu07cICaBeFMegAU9eaT8=
8267
github.com/google/safehtml v0.1.0/go.mod h1:L4KWwDsUJdECRAEpZoBn3O64bQaywRscowZjJAzjHnU=
83-
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
84-
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
8568
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
86-
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
87-
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
88-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
89-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
9069
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
9170
github.com/jba/templatecheck v0.7.0 h1:wjTb/VhGgSFeim5zjWVePBdaMo28X74bGLSABZV+zIA=
9271
github.com/jba/templatecheck v0.7.0/go.mod h1:n1Etw+Rrw1mDDD8dDRsEKTwMZsJ98EkktgNJC6wLUGo=
9372
github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
9473
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
9574
github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
9675
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
76+
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
9777
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
9878
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
79+
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
80+
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
9981
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
10082
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
10183
github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
10284
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
103-
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
104-
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
10585
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
10686
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
10787
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -111,14 +91,10 @@ github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5
11191
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
11292
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
11393
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
114-
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
115-
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
11694
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
11795
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
11896
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
11997
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
120-
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
121-
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
12298
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
12399
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
124100
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -132,22 +108,6 @@ github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70
132108
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
133109
go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0=
134110
go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I=
135-
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
136-
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
137-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 h1:k6fQVDQexDE+3jG2SfCQjnHS7OamcP73YMoxEVq5B6k=
138-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0/go.mod h1:t4BrYLHU450Zo9fnydWlIuswB1bm7rM8havDpWOJeDo=
139-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 h1:xvhQxJ/C9+RTnAj5DpTg7LSM1vbbMTiXt7e9hsfqHNw=
140-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0/go.mod h1:Fcvs2Bz1jkDM+Wf5/ozBGmi3tQ/c9zPKLnsipnfhGAo=
141-
go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc=
142-
go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8=
143-
go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo=
144-
go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
145-
go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY=
146-
go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ=
147-
go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4=
148-
go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ=
149-
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
150-
go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
151111
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
152112
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
153113
golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -166,8 +126,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
166126
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
167127
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
168128
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
169-
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
170-
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
171129
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
172130
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
173131
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
@@ -196,12 +154,6 @@ golang.org/x/vuln v1.0.4 h1:SP0mPeg2PmGCu03V+61EcQiOjmpri2XijexKdzv8Z1I=
196154
golang.org/x/vuln v1.0.4/go.mod h1:NbJdUQhX8jY++FtuhrXs2Eyx0yePo9pF7nPlIjo9aaQ=
197155
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
198156
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
199-
google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd h1:BBOTEWLuuEGQy9n1y9MhVJ9Qt0BDu21X8qZs71/uPZo=
200-
google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:fO8wJzT2zbQbAjbIoos1285VfEIYKDDY+Dt+WpTkh6g=
201-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E=
202-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
203-
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
204-
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
205157
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
206158
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
207159
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=

pkg/resolver/driver.go

+105-35
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ package resolver
22

33
import (
44
"fmt"
5+
"go/parser"
6+
"go/scanner"
7+
"go/token"
58
"io/fs"
69
"log/slog"
710
"os"
@@ -53,44 +56,18 @@ func Resolve(req *packages.DriverRequest, patterns ...string) (*packages.DriverR
5356
}
5457

5558
pkgDir := filepath.Join(libsRoot, path)
56-
entries, err := os.ReadDir(pkgDir)
57-
if err != nil {
58-
return fmt.Errorf("failed to read dir %q: %w", path, err)
59-
}
6059

61-
gnoFiles := []string{}
62-
for _, e := range entries {
63-
if e.IsDir() || !strings.HasSuffix(e.Name(), ".gno") {
64-
continue
65-
}
66-
if strings.HasSuffix(e.Name(), "_test.gno") || strings.HasSuffix(e.Name(), "_filetest.gno") {
67-
continue
68-
}
69-
gnoFiles = append(gnoFiles, filepath.Join(pkgDir, e.Name()))
70-
}
71-
72-
if len(gnoFiles) == 0 {
60+
pkg := &packages.Package{}
61+
readPkg(pkg, pkgDir, path, logger)
62+
if pkg == nil {
7363
return nil
7464
}
7565

76-
name, imports, err := resolveNameAndImports(gnoFiles, logger)
77-
if err != nil {
78-
return fmt.Errorf("failed to resolve name and imports for %q: %w", path, err)
79-
}
80-
81-
logger.Info("injecting stdlib", slog.String("path", path), slog.String("name", name))
82-
83-
pkg := &packages.Package{
84-
ID: path,
85-
Name: name,
86-
PkgPath: path,
87-
Imports: imports,
88-
GoFiles: gnoFiles,
89-
CompiledGoFiles: gnoFiles,
90-
}
9166
pkgsCache[path] = pkg
9267
res.Packages = append(res.Packages, pkg)
9368

69+
logger.Info("injected stdlib", slog.String("path", pkg.PkgPath), slog.String("name", pkg.Name))
70+
9471
return nil
9572
}); err != nil {
9673
logger.Warn("failed to inject all stdlibs", slog.String("error", err.Error()))
@@ -131,14 +108,15 @@ func Resolve(req *packages.DriverRequest, patterns ...string) (*packages.DriverR
131108

132109
// Convert packages
133110

134-
for _, pkg := range gnomods {
135-
pkg, err := gnoPkgToGo(pkg, logger)
136-
if err != nil {
137-
logger.Error("failed to convert gno pkg to go pkg", slog.String("error", err.Error()))
111+
for _, gnomodPath := range gnomods {
112+
pkg := gnoPkgToGo(gnomodPath, logger)
113+
if pkg == nil {
114+
logger.Error("failed to convert gno pkg to go pkg", slog.String("gnomod", gnomodPath))
138115
continue
139116
}
140117
if _, ok := pkgsCache[pkg.PkgPath]; ok {
141118
// ignore duplicates in later targets, mostly useful to ignore examples present in explicit targets
119+
logger.Debug("ignored duplicate", slog.String("pkg-path", pkg.PkgPath), slog.String("new", gnomodPath))
142120
continue
143121
}
144122
pkgsCache[pkg.PkgPath] = pkg
@@ -168,3 +146,95 @@ func Resolve(req *packages.DriverRequest, patterns ...string) (*packages.DriverR
168146

169147
return &res, nil
170148
}
149+
150+
func readPkg(pkg *packages.Package, dir string, pkgPath string, logger *slog.Logger) {
151+
entries, err := os.ReadDir(dir)
152+
if err != nil {
153+
logger.Error("failed to read pkg dir", slog.String("dir", dir))
154+
return
155+
}
156+
157+
for _, entry := range entries {
158+
if entry.IsDir() {
159+
continue
160+
}
161+
162+
filename := entry.Name()
163+
if !strings.HasSuffix(filename, ".gno") {
164+
continue
165+
}
166+
167+
// ignore filetests
168+
if strings.HasSuffix(filename, "_filetest.gno") {
169+
continue
170+
}
171+
172+
file := filepath.Join(dir, filename)
173+
pkg.GoFiles = append(pkg.GoFiles, file)
174+
pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, file)
175+
}
176+
177+
if len(pkg.GoFiles) == 0 {
178+
return
179+
}
180+
181+
pkg.ID = pkgPath
182+
pkg.PkgPath = pkgPath
183+
184+
resolveNameAndImports(pkg, logger)
185+
}
186+
187+
func resolveNameAndImports(pkg *packages.Package, logger *slog.Logger) {
188+
names := map[string]int{}
189+
imports := map[string]*packages.Package{}
190+
bestName := ""
191+
bestNameCount := 0
192+
for _, srcPath := range pkg.CompiledGoFiles {
193+
fset := token.NewFileSet()
194+
f, err := parser.ParseFile(fset, srcPath, nil, parser.SkipObjectResolution|parser.ImportsOnly)
195+
if err != nil {
196+
if errList, ok := err.(scanner.ErrorList); ok {
197+
for _, err := range errList {
198+
pkg.Errors = append(pkg.Errors, packages.Error{
199+
Pos: err.Pos.String(),
200+
Msg: err.Msg,
201+
Kind: packages.ParseError,
202+
})
203+
}
204+
} else {
205+
pkg.Errors = append(pkg.Errors, packages.Error{
206+
Pos: fmt.Sprintf("%s:1", srcPath),
207+
Msg: err.Error(),
208+
Kind: packages.ParseError,
209+
})
210+
}
211+
}
212+
213+
if f == nil {
214+
continue
215+
}
216+
217+
name := f.Name.String()
218+
if !strings.HasSuffix(name, "_test") {
219+
names[name] += 1
220+
count := names[name]
221+
if count > bestNameCount {
222+
bestName = name
223+
bestNameCount = count
224+
}
225+
}
226+
227+
for _, imp := range f.Imports {
228+
importPath := imp.Path.Value
229+
if len(importPath) >= 2 {
230+
importPath = importPath[1 : len(importPath)-1]
231+
}
232+
imports[importPath] = nil
233+
}
234+
}
235+
236+
pkg.Name = bestName
237+
pkg.Imports = imports
238+
239+
logger.Info("analyzed sources", slog.String("path", pkg.PkgPath), slog.String("name", bestName), slog.Any("imports", imports), slog.Any("errs", pkg.Errors), slog.Any("compfiles", pkg.CompiledGoFiles))
240+
}

0 commit comments

Comments
 (0)