Merge pull request #1056 from containernetworking/dependabot/go_modules/golang-82cdb19fbc
build(deps): bump the golang group across 1 directory with 3 updates
This commit is contained in:
commit
c29dc79f96
12
go.mod
12
go.mod
@ -15,12 +15,12 @@ require (
|
|||||||
github.com/godbus/dbus/v5 v5.1.0
|
github.com/godbus/dbus/v5 v5.1.0
|
||||||
github.com/mattn/go-shellwords v1.0.12
|
github.com/mattn/go-shellwords v1.0.12
|
||||||
github.com/networkplumbing/go-nft v0.4.0
|
github.com/networkplumbing/go-nft v0.4.0
|
||||||
github.com/onsi/ginkgo/v2 v2.17.3
|
github.com/onsi/ginkgo/v2 v2.19.0
|
||||||
github.com/onsi/gomega v1.33.1
|
github.com/onsi/gomega v1.33.1
|
||||||
github.com/opencontainers/selinux v1.11.0
|
github.com/opencontainers/selinux v1.11.0
|
||||||
github.com/safchain/ethtool v0.3.0
|
github.com/safchain/ethtool v0.4.0
|
||||||
github.com/vishvananda/netlink v1.2.1-beta.2
|
github.com/vishvananda/netlink v1.2.1-beta.2
|
||||||
golang.org/x/sys v0.20.0
|
golang.org/x/sys v0.21.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
@ -38,9 +38,9 @@ require (
|
|||||||
github.com/sirupsen/logrus v1.9.3 // indirect
|
github.com/sirupsen/logrus v1.9.3 // indirect
|
||||||
github.com/vishvananda/netns v0.0.4 // indirect
|
github.com/vishvananda/netns v0.0.4 // indirect
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
golang.org/x/net v0.24.0 // indirect
|
golang.org/x/net v0.25.0 // indirect
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.15.0 // indirect
|
||||||
golang.org/x/tools v0.20.0 // indirect
|
golang.org/x/tools v0.21.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
|
||||||
google.golang.org/grpc v1.62.0 // indirect
|
google.golang.org/grpc v1.62.0 // indirect
|
||||||
google.golang.org/protobuf v1.33.0 // indirect
|
google.golang.org/protobuf v1.33.0 // indirect
|
||||||
|
25
go.sum
25
go.sum
@ -93,8 +93,8 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W
|
|||||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||||
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
|
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
|
||||||
github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU=
|
github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
|
||||||
github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc=
|
github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
|
||||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
|
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
|
||||||
@ -107,8 +107,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
|
|||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0=
|
github.com/safchain/ethtool v0.4.0 h1:vq1i2HCjshJNywOXFZ1BpwIjyeFR/kvNdHiRzqSElDI=
|
||||||
github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs=
|
github.com/safchain/ethtool v0.4.0/go.mod h1:XLLnZmy4OCRTkksP/UiMjij96YmIsBfmBQcs7H6tA48=
|
||||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
@ -151,8 +151,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
|
|||||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
||||||
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
|
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
|
||||||
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
|
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
@ -177,16 +177,15 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
|
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
|
||||||
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
|
||||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
@ -195,8 +194,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
|
|||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
|
golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
|
||||||
golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
|
golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
20
vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md
generated
vendored
20
vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md
generated
vendored
@ -1,3 +1,23 @@
|
|||||||
|
## 2.19.0
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
[Label Sets](https://onsi.github.io/ginkgo/#label-sets) allow for more expressive and flexible label filtering.
|
||||||
|
|
||||||
|
## 2.18.0
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Add --slience-skips and --force-newlines [f010b65]
|
||||||
|
- fail when no tests were run and --fail-on-empty was set [d80eebe]
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix table entry context edge case [42013d6]
|
||||||
|
|
||||||
|
### Maintenance
|
||||||
|
- Bump golang.org/x/tools from 0.20.0 to 0.21.0 (#1406) [fcf1fd7]
|
||||||
|
- Bump github.com/onsi/gomega from 1.33.0 to 1.33.1 (#1399) [8bb14fd]
|
||||||
|
- Bump golang.org/x/net from 0.24.0 to 0.25.0 (#1407) [04bfad7]
|
||||||
|
|
||||||
## 2.17.3
|
## 2.17.3
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
8
vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md
generated
vendored
8
vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md
generated
vendored
@ -6,8 +6,10 @@ Your contributions to Ginkgo are essential for its long-term maintenance and imp
|
|||||||
- Ensure adequate test coverage:
|
- Ensure adequate test coverage:
|
||||||
- When adding to the Ginkgo library, add unit and/or integration tests (under the `integration` folder).
|
- When adding to the Ginkgo library, add unit and/or integration tests (under the `integration` folder).
|
||||||
- When adding to the Ginkgo CLI, note that there are very few unit tests. Please add an integration test.
|
- When adding to the Ginkgo CLI, note that there are very few unit tests. Please add an integration test.
|
||||||
- Make sure all the tests succeed via `ginkgo -r -p`
|
- Run `make` or:
|
||||||
- Vet your changes via `go vet ./...`
|
- Install ginkgo locally via `go install ./...`
|
||||||
- Update the documentation. Ginkgo uses `godoc` comments and documentation in `docs/index.md`. You can run `bundle exec jekyll serve` in the `docs` directory to preview your changes.
|
- Make sure all the tests succeed via `ginkgo -r -p`
|
||||||
|
- Vet your changes via `go vet ./...`
|
||||||
|
- Update the documentation. Ginkgo uses `godoc` comments and documentation in `docs/index.md`. You can run `bundle && bundle exec jekyll serve` in the `docs` directory to preview your changes.
|
||||||
|
|
||||||
Thanks for supporting Ginkgo!
|
Thanks for supporting Ginkgo!
|
11
vendor/github.com/onsi/ginkgo/v2/Makefile
generated
vendored
Normal file
11
vendor/github.com/onsi/ginkgo/v2/Makefile
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# default task since it's first
|
||||||
|
.PHONY: all
|
||||||
|
all: vet test
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
go run github.com/onsi/ginkgo/v2/ginkgo -r -p
|
||||||
|
|
||||||
|
.PHONY: vet
|
||||||
|
vet:
|
||||||
|
go vet ./...
|
7
vendor/github.com/onsi/ginkgo/v2/internal/suite.go
generated
vendored
7
vendor/github.com/onsi/ginkgo/v2/internal/suite.go
generated
vendored
@ -489,10 +489,15 @@ func (suite *Suite) runSpecs(description string, suiteLabels Labels, suitePath s
|
|||||||
newGroup(suite).run(specs.AtIndices(groupedSpecIndices[groupedSpecIdx]))
|
newGroup(suite).run(specs.AtIndices(groupedSpecIndices[groupedSpecIdx]))
|
||||||
}
|
}
|
||||||
|
|
||||||
if specs.HasAnySpecsMarkedPending() && suite.config.FailOnPending {
|
if suite.config.FailOnPending && specs.HasAnySpecsMarkedPending() {
|
||||||
suite.report.SpecialSuiteFailureReasons = append(suite.report.SpecialSuiteFailureReasons, "Detected pending specs and --fail-on-pending is set")
|
suite.report.SpecialSuiteFailureReasons = append(suite.report.SpecialSuiteFailureReasons, "Detected pending specs and --fail-on-pending is set")
|
||||||
suite.report.SuiteSucceeded = false
|
suite.report.SuiteSucceeded = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if suite.config.FailOnEmpty && specs.CountWithoutSkip() == 0 {
|
||||||
|
suite.report.SpecialSuiteFailureReasons = append(suite.report.SpecialSuiteFailureReasons, "Detected no specs ran and --fail-on-empty is set")
|
||||||
|
suite.report.SuiteSucceeded = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ranBeforeSuite {
|
if ranBeforeSuite {
|
||||||
|
10
vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go
generated
vendored
10
vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go
generated
vendored
@ -202,6 +202,11 @@ func (r *DefaultReporter) DidRun(report types.SpecReport) {
|
|||||||
v := r.conf.Verbosity()
|
v := r.conf.Verbosity()
|
||||||
inParallel := report.RunningInParallel
|
inParallel := report.RunningInParallel
|
||||||
|
|
||||||
|
//should we completely omit this spec?
|
||||||
|
if report.State.Is(types.SpecStateSkipped) && r.conf.SilenceSkips {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
header := r.specDenoter
|
header := r.specDenoter
|
||||||
if report.LeafNodeType.Is(types.NodeTypesForSuiteLevelNodes) {
|
if report.LeafNodeType.Is(types.NodeTypesForSuiteLevelNodes) {
|
||||||
header = fmt.Sprintf("[%s]", report.LeafNodeType)
|
header = fmt.Sprintf("[%s]", report.LeafNodeType)
|
||||||
@ -278,9 +283,12 @@ func (r *DefaultReporter) DidRun(report types.SpecReport) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we have no content to show, jsut emit the header and return
|
// If we have no content to show, just emit the header and return
|
||||||
if !reportHasContent {
|
if !reportHasContent {
|
||||||
r.emit(r.f(highlightColor + header + "{{/}}"))
|
r.emit(r.f(highlightColor + header + "{{/}}"))
|
||||||
|
if r.conf.ForceNewlines {
|
||||||
|
r.emit("\n")
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go
generated
vendored
1
vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go
generated
vendored
@ -177,6 +177,7 @@ func GenerateJUnitReportWithConfig(report types.Report, dst string, config Junit
|
|||||||
{"FocusFiles", strings.Join(report.SuiteConfig.FocusFiles, ";")},
|
{"FocusFiles", strings.Join(report.SuiteConfig.FocusFiles, ";")},
|
||||||
{"SkipFiles", strings.Join(report.SuiteConfig.SkipFiles, ";")},
|
{"SkipFiles", strings.Join(report.SuiteConfig.SkipFiles, ";")},
|
||||||
{"FailOnPending", fmt.Sprintf("%t", report.SuiteConfig.FailOnPending)},
|
{"FailOnPending", fmt.Sprintf("%t", report.SuiteConfig.FailOnPending)},
|
||||||
|
{"FailOnEmpty", fmt.Sprintf("%t", report.SuiteConfig.FailOnEmpty)},
|
||||||
{"FailFast", fmt.Sprintf("%t", report.SuiteConfig.FailFast)},
|
{"FailFast", fmt.Sprintf("%t", report.SuiteConfig.FailFast)},
|
||||||
{"FlakeAttempts", fmt.Sprintf("%d", report.SuiteConfig.FlakeAttempts)},
|
{"FlakeAttempts", fmt.Sprintf("%d", report.SuiteConfig.FlakeAttempts)},
|
||||||
{"DryRun", fmt.Sprintf("%t", report.SuiteConfig.DryRun)},
|
{"DryRun", fmt.Sprintf("%t", report.SuiteConfig.DryRun)},
|
||||||
|
8
vendor/github.com/onsi/ginkgo/v2/table_dsl.go
generated
vendored
8
vendor/github.com/onsi/ginkgo/v2/table_dsl.go
generated
vendored
@ -269,11 +269,15 @@ func generateTable(description string, isSubtree bool, args ...interface{}) {
|
|||||||
internalNodeArgs = append(internalNodeArgs, entry.decorations...)
|
internalNodeArgs = append(internalNodeArgs, entry.decorations...)
|
||||||
|
|
||||||
hasContext := false
|
hasContext := false
|
||||||
if internalBodyType.NumIn() > 0. {
|
if internalBodyType.NumIn() > 0 {
|
||||||
if internalBodyType.In(0).Implements(specContextType) {
|
if internalBodyType.In(0).Implements(specContextType) {
|
||||||
hasContext = true
|
hasContext = true
|
||||||
} else if internalBodyType.In(0).Implements(contextType) && (len(entry.parameters) == 0 || !reflect.TypeOf(entry.parameters[0]).Implements(contextType)) {
|
} else if internalBodyType.In(0).Implements(contextType) {
|
||||||
hasContext = true
|
hasContext = true
|
||||||
|
if len(entry.parameters) > 0 && reflect.TypeOf(entry.parameters[0]) != nil && reflect.TypeOf(entry.parameters[0]).Implements(contextType) {
|
||||||
|
// we allow you to pass in a non-nil context
|
||||||
|
hasContext = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
vendor/github.com/onsi/ginkgo/v2/types/config.go
generated
vendored
9
vendor/github.com/onsi/ginkgo/v2/types/config.go
generated
vendored
@ -25,6 +25,7 @@ type SuiteConfig struct {
|
|||||||
SkipFiles []string
|
SkipFiles []string
|
||||||
LabelFilter string
|
LabelFilter string
|
||||||
FailOnPending bool
|
FailOnPending bool
|
||||||
|
FailOnEmpty bool
|
||||||
FailFast bool
|
FailFast bool
|
||||||
FlakeAttempts int
|
FlakeAttempts int
|
||||||
MustPassRepeatedly int
|
MustPassRepeatedly int
|
||||||
@ -90,6 +91,8 @@ type ReporterConfig struct {
|
|||||||
FullTrace bool
|
FullTrace bool
|
||||||
ShowNodeEvents bool
|
ShowNodeEvents bool
|
||||||
GithubOutput bool
|
GithubOutput bool
|
||||||
|
SilenceSkips bool
|
||||||
|
ForceNewlines bool
|
||||||
|
|
||||||
JSONReport string
|
JSONReport string
|
||||||
JUnitReport string
|
JUnitReport string
|
||||||
@ -275,6 +278,8 @@ var SuiteConfigFlags = GinkgoFlags{
|
|||||||
Usage: "If set, ginkgo will stop running a test suite after a failure occurs."},
|
Usage: "If set, ginkgo will stop running a test suite after a failure occurs."},
|
||||||
{KeyPath: "S.FlakeAttempts", Name: "flake-attempts", SectionKey: "failure", UsageDefaultValue: "0 - failed tests are not retried", DeprecatedName: "flakeAttempts", DeprecatedDocLink: "changed-command-line-flags",
|
{KeyPath: "S.FlakeAttempts", Name: "flake-attempts", SectionKey: "failure", UsageDefaultValue: "0 - failed tests are not retried", DeprecatedName: "flakeAttempts", DeprecatedDocLink: "changed-command-line-flags",
|
||||||
Usage: "Make up to this many attempts to run each spec. If any of the attempts succeed, the suite will not be failed."},
|
Usage: "Make up to this many attempts to run each spec. If any of the attempts succeed, the suite will not be failed."},
|
||||||
|
{KeyPath: "S.FailOnEmpty", Name: "fail-on-empty", SectionKey: "failure",
|
||||||
|
Usage: "If set, ginkgo will mark the test suite as failed if no specs are run."},
|
||||||
|
|
||||||
{KeyPath: "S.DryRun", Name: "dry-run", SectionKey: "debug", DeprecatedName: "dryRun", DeprecatedDocLink: "changed-command-line-flags",
|
{KeyPath: "S.DryRun", Name: "dry-run", SectionKey: "debug", DeprecatedName: "dryRun", DeprecatedDocLink: "changed-command-line-flags",
|
||||||
Usage: "If set, ginkgo will walk the test hierarchy without actually running anything. Best paired with -v."},
|
Usage: "If set, ginkgo will walk the test hierarchy without actually running anything. Best paired with -v."},
|
||||||
@ -334,6 +339,10 @@ var ReporterConfigFlags = GinkgoFlags{
|
|||||||
Usage: "If set, default reporter prints node > Enter and < Exit events when specs fail"},
|
Usage: "If set, default reporter prints node > Enter and < Exit events when specs fail"},
|
||||||
{KeyPath: "R.GithubOutput", Name: "github-output", SectionKey: "output",
|
{KeyPath: "R.GithubOutput", Name: "github-output", SectionKey: "output",
|
||||||
Usage: "If set, default reporter prints easier to manage output in Github Actions."},
|
Usage: "If set, default reporter prints easier to manage output in Github Actions."},
|
||||||
|
{KeyPath: "R.SilenceSkips", Name: "silence-skips", SectionKey: "output",
|
||||||
|
Usage: "If set, default reporter will not print out skipped tests."},
|
||||||
|
{KeyPath: "R.ForceNewlines", Name: "force-newlines", SectionKey: "output",
|
||||||
|
Usage: "If set, default reporter will ensure a newline appears after each test."},
|
||||||
|
|
||||||
{KeyPath: "R.JSONReport", Name: "json-report", UsageArgument: "filename.json", SectionKey: "output",
|
{KeyPath: "R.JSONReport", Name: "json-report", UsageArgument: "filename.json", SectionKey: "output",
|
||||||
Usage: "If set, Ginkgo will generate a JSON-formatted test report at the specified location."},
|
Usage: "If set, Ginkgo will generate a JSON-formatted test report at the specified location."},
|
||||||
|
229
vendor/github.com/onsi/ginkgo/v2/types/label_filter.go
generated
vendored
229
vendor/github.com/onsi/ginkgo/v2/types/label_filter.go
generated
vendored
@ -45,6 +45,83 @@ func orAction(a, b LabelFilter) LabelFilter {
|
|||||||
return func(labels []string) bool { return a(labels) || b(labels) }
|
return func(labels []string) bool { return a(labels) || b(labels) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func labelSetFor(key string, labels []string) map[string]bool {
|
||||||
|
key = strings.ToLower(strings.TrimSpace(key))
|
||||||
|
out := map[string]bool{}
|
||||||
|
for _, label := range labels {
|
||||||
|
components := strings.SplitN(label, ":", 2)
|
||||||
|
if len(components) < 2 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if key == strings.ToLower(strings.TrimSpace(components[0])) {
|
||||||
|
out[strings.ToLower(strings.TrimSpace(components[1]))] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
func isEmptyLabelSetAction(key string) LabelFilter {
|
||||||
|
return func(labels []string) bool {
|
||||||
|
return len(labelSetFor(key, labels)) == 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func containsAnyLabelSetAction(key string, expectedValues []string) LabelFilter {
|
||||||
|
return func(labels []string) bool {
|
||||||
|
set := labelSetFor(key, labels)
|
||||||
|
for _, value := range expectedValues {
|
||||||
|
if set[value] {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func containsAllLabelSetAction(key string, expectedValues []string) LabelFilter {
|
||||||
|
return func(labels []string) bool {
|
||||||
|
set := labelSetFor(key, labels)
|
||||||
|
for _, value := range expectedValues {
|
||||||
|
if !set[value] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func consistsOfLabelSetAction(key string, expectedValues []string) LabelFilter {
|
||||||
|
return func(labels []string) bool {
|
||||||
|
set := labelSetFor(key, labels)
|
||||||
|
if len(set) != len(expectedValues) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
for _, value := range expectedValues {
|
||||||
|
if !set[value] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func isSubsetOfLabelSetAction(key string, expectedValues []string) LabelFilter {
|
||||||
|
expectedSet := map[string]bool{}
|
||||||
|
for _, value := range expectedValues {
|
||||||
|
expectedSet[value] = true
|
||||||
|
}
|
||||||
|
return func(labels []string) bool {
|
||||||
|
set := labelSetFor(key, labels)
|
||||||
|
for value := range set {
|
||||||
|
if !expectedSet[value] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type lfToken uint
|
type lfToken uint
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -58,6 +135,9 @@ const (
|
|||||||
lfTokenOr
|
lfTokenOr
|
||||||
lfTokenRegexp
|
lfTokenRegexp
|
||||||
lfTokenLabel
|
lfTokenLabel
|
||||||
|
lfTokenSetKey
|
||||||
|
lfTokenSetOperation
|
||||||
|
lfTokenSetArgument
|
||||||
lfTokenEOF
|
lfTokenEOF
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -71,6 +151,8 @@ func (l lfToken) Precedence() int {
|
|||||||
return 2
|
return 2
|
||||||
case lfTokenNot:
|
case lfTokenNot:
|
||||||
return 3
|
return 3
|
||||||
|
case lfTokenSetOperation:
|
||||||
|
return 4
|
||||||
}
|
}
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
@ -93,6 +175,12 @@ func (l lfToken) String() string {
|
|||||||
return "/regexp/"
|
return "/regexp/"
|
||||||
case lfTokenLabel:
|
case lfTokenLabel:
|
||||||
return "label"
|
return "label"
|
||||||
|
case lfTokenSetKey:
|
||||||
|
return "set_key"
|
||||||
|
case lfTokenSetOperation:
|
||||||
|
return "set_operation"
|
||||||
|
case lfTokenSetArgument:
|
||||||
|
return "set_argument"
|
||||||
case lfTokenEOF:
|
case lfTokenEOF:
|
||||||
return "EOF"
|
return "EOF"
|
||||||
}
|
}
|
||||||
@ -148,6 +236,35 @@ func (tn *treeNode) constructLabelFilter(input string) (LabelFilter, error) {
|
|||||||
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, tn.location, fmt.Sprintf("RegExp compilation error: %s", err))
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, tn.location, fmt.Sprintf("RegExp compilation error: %s", err))
|
||||||
}
|
}
|
||||||
return matchLabelRegexAction(re), nil
|
return matchLabelRegexAction(re), nil
|
||||||
|
case lfTokenSetOperation:
|
||||||
|
tokenSetOperation := strings.ToLower(tn.value)
|
||||||
|
if tokenSetOperation == "isempty" {
|
||||||
|
return isEmptyLabelSetAction(tn.leftNode.value), nil
|
||||||
|
}
|
||||||
|
if tn.rightNode == nil {
|
||||||
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, tn.location, fmt.Sprintf("Set operation '%s' is missing an argument.", tn.value))
|
||||||
|
}
|
||||||
|
|
||||||
|
rawValues := strings.Split(tn.rightNode.value, ",")
|
||||||
|
values := make([]string, len(rawValues))
|
||||||
|
for i := range rawValues {
|
||||||
|
values[i] = strings.ToLower(strings.TrimSpace(rawValues[i]))
|
||||||
|
if strings.ContainsAny(values[i], "&|!,()/") {
|
||||||
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, tn.rightNode.location, fmt.Sprintf("Invalid label value '%s' in set operation argument.", values[i]))
|
||||||
|
} else if values[i] == "" {
|
||||||
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, tn.rightNode.location, "Empty label value in set operation argument.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch tokenSetOperation {
|
||||||
|
case "containsany":
|
||||||
|
return containsAnyLabelSetAction(tn.leftNode.value, values), nil
|
||||||
|
case "containsall":
|
||||||
|
return containsAllLabelSetAction(tn.leftNode.value, values), nil
|
||||||
|
case "consistsof":
|
||||||
|
return consistsOfLabelSetAction(tn.leftNode.value, values), nil
|
||||||
|
case "issubsetof":
|
||||||
|
return isSubsetOfLabelSetAction(tn.leftNode.value, values), nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if tn.rightNode == nil {
|
if tn.rightNode == nil {
|
||||||
@ -203,7 +320,17 @@ func (tn *treeNode) toString(indent int) string {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var validSetOperations = map[string]string{
|
||||||
|
"containsany": "containsAny",
|
||||||
|
"containsall": "containsAll",
|
||||||
|
"consistsof": "consistsOf",
|
||||||
|
"issubsetof": "isSubsetOf",
|
||||||
|
"isempty": "isEmpty",
|
||||||
|
}
|
||||||
|
|
||||||
func tokenize(input string) func() (*treeNode, error) {
|
func tokenize(input string) func() (*treeNode, error) {
|
||||||
|
lastToken := lfTokenInvalid
|
||||||
|
lastValue := ""
|
||||||
runes, i := []rune(input), 0
|
runes, i := []rune(input), 0
|
||||||
|
|
||||||
peekIs := func(r rune) bool {
|
peekIs := func(r rune) bool {
|
||||||
@ -233,6 +360,53 @@ func tokenize(input string) func() (*treeNode, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
node := &treeNode{location: i}
|
node := &treeNode{location: i}
|
||||||
|
defer func() {
|
||||||
|
lastToken = node.token
|
||||||
|
lastValue = node.value
|
||||||
|
}()
|
||||||
|
|
||||||
|
if lastToken == lfTokenSetKey {
|
||||||
|
//we should get a valid set operation next
|
||||||
|
value, n := consumeUntil(" )")
|
||||||
|
if validSetOperations[strings.ToLower(value)] == "" {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, i, fmt.Sprintf("Invalid set operation '%s'.", value))
|
||||||
|
}
|
||||||
|
i += n
|
||||||
|
node.token, node.value = lfTokenSetOperation, value
|
||||||
|
return node, nil
|
||||||
|
}
|
||||||
|
if lastToken == lfTokenSetOperation {
|
||||||
|
//we should get an argument next, if we aren't isempty
|
||||||
|
var arg = ""
|
||||||
|
origI := i
|
||||||
|
if runes[i] == '{' {
|
||||||
|
i += 1
|
||||||
|
value, n := consumeUntil("}")
|
||||||
|
if i+n >= len(runes) {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, i-1, "Missing closing '}' in set operation argument?")
|
||||||
|
}
|
||||||
|
i += n + 1
|
||||||
|
arg = value
|
||||||
|
} else {
|
||||||
|
value, n := consumeUntil("&|!,()/")
|
||||||
|
i += n
|
||||||
|
arg = strings.TrimSpace(value)
|
||||||
|
}
|
||||||
|
if strings.ToLower(lastValue) == "isempty" && arg != "" {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, origI, fmt.Sprintf("isEmpty does not take arguments, was passed '%s'.", arg))
|
||||||
|
}
|
||||||
|
if arg == "" && strings.ToLower(lastValue) != "isempty" {
|
||||||
|
if i < len(runes) && runes[i] == '/' {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, origI, "Set operations do not support regular expressions.")
|
||||||
|
} else {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, origI, fmt.Sprintf("Set operation '%s' requires an argument.", lastValue))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// note that we sent an empty SetArgument token if we are isempty
|
||||||
|
node.token, node.value = lfTokenSetArgument, arg
|
||||||
|
return node, nil
|
||||||
|
}
|
||||||
|
|
||||||
switch runes[i] {
|
switch runes[i] {
|
||||||
case '&':
|
case '&':
|
||||||
if !peekIs('&') {
|
if !peekIs('&') {
|
||||||
@ -264,8 +438,38 @@ func tokenize(input string) func() (*treeNode, error) {
|
|||||||
i += n + 1
|
i += n + 1
|
||||||
node.token, node.value = lfTokenRegexp, value
|
node.token, node.value = lfTokenRegexp, value
|
||||||
default:
|
default:
|
||||||
value, n := consumeUntil("&|!,()/")
|
value, n := consumeUntil("&|!,()/:")
|
||||||
i += n
|
i += n
|
||||||
|
value = strings.TrimSpace(value)
|
||||||
|
|
||||||
|
//are we the beginning of a set operation?
|
||||||
|
if i < len(runes) && runes[i] == ':' {
|
||||||
|
if peekIs(' ') {
|
||||||
|
if value == "" {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, i, "Missing set key.")
|
||||||
|
}
|
||||||
|
i += 1
|
||||||
|
//we are the beginning of a set operation
|
||||||
|
node.token, node.value = lfTokenSetKey, value
|
||||||
|
return node, nil
|
||||||
|
}
|
||||||
|
additionalValue, n := consumeUntil("&|!,()/")
|
||||||
|
additionalValue = strings.TrimSpace(additionalValue)
|
||||||
|
if additionalValue == ":" {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, i, "Missing set operation.")
|
||||||
|
}
|
||||||
|
i += n
|
||||||
|
value += additionalValue
|
||||||
|
}
|
||||||
|
|
||||||
|
valueToCheckForSetOperation := strings.ToLower(value)
|
||||||
|
for setOperation := range validSetOperations {
|
||||||
|
idx := strings.Index(valueToCheckForSetOperation, " "+setOperation)
|
||||||
|
if idx > 0 {
|
||||||
|
return &treeNode{}, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, i-n+idx+1, fmt.Sprintf("Looks like you are using the set operator '%s' but did not provide a set key. Did you forget the ':'?", validSetOperations[setOperation]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
node.token, node.value = lfTokenLabel, strings.TrimSpace(value)
|
node.token, node.value = lfTokenLabel, strings.TrimSpace(value)
|
||||||
}
|
}
|
||||||
return node, nil
|
return node, nil
|
||||||
@ -307,7 +511,7 @@ LOOP:
|
|||||||
switch node.token {
|
switch node.token {
|
||||||
case lfTokenEOF:
|
case lfTokenEOF:
|
||||||
break LOOP
|
break LOOP
|
||||||
case lfTokenLabel, lfTokenRegexp:
|
case lfTokenLabel, lfTokenRegexp, lfTokenSetKey:
|
||||||
if current.rightNode != nil {
|
if current.rightNode != nil {
|
||||||
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, node.location, "Found two adjacent labels. You need an operator between them.")
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, node.location, "Found two adjacent labels. You need an operator between them.")
|
||||||
}
|
}
|
||||||
@ -326,6 +530,18 @@ LOOP:
|
|||||||
node.setLeftNode(nodeToStealFrom.rightNode)
|
node.setLeftNode(nodeToStealFrom.rightNode)
|
||||||
nodeToStealFrom.setRightNode(node)
|
nodeToStealFrom.setRightNode(node)
|
||||||
current = node
|
current = node
|
||||||
|
case lfTokenSetOperation:
|
||||||
|
if current.rightNode == nil {
|
||||||
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, node.location, fmt.Sprintf("Set operation '%s' missing left hand operand.", node.value))
|
||||||
|
}
|
||||||
|
node.setLeftNode(current.rightNode)
|
||||||
|
current.setRightNode(node)
|
||||||
|
current = node
|
||||||
|
case lfTokenSetArgument:
|
||||||
|
if current.rightNode != nil {
|
||||||
|
return nil, GinkgoErrors.SyntaxErrorParsingLabelFilter(input, node.location, fmt.Sprintf("Unexpected set argument '%s'.", node.token))
|
||||||
|
}
|
||||||
|
current.setRightNode(node)
|
||||||
case lfTokenCloseGroup:
|
case lfTokenCloseGroup:
|
||||||
firstUnmatchedOpenNode := current.firstUnmatchedOpenNode()
|
firstUnmatchedOpenNode := current.firstUnmatchedOpenNode()
|
||||||
if firstUnmatchedOpenNode == nil {
|
if firstUnmatchedOpenNode == nil {
|
||||||
@ -354,5 +570,14 @@ func ValidateAndCleanupLabel(label string, cl CodeLocation) (string, error) {
|
|||||||
if strings.ContainsAny(out, "&|!,()/") {
|
if strings.ContainsAny(out, "&|!,()/") {
|
||||||
return "", GinkgoErrors.InvalidLabel(label, cl)
|
return "", GinkgoErrors.InvalidLabel(label, cl)
|
||||||
}
|
}
|
||||||
|
if out[0] == ':' {
|
||||||
|
return "", GinkgoErrors.InvalidLabel(label, cl)
|
||||||
|
}
|
||||||
|
if strings.Contains(out, ":") {
|
||||||
|
components := strings.SplitN(out, ":", 2)
|
||||||
|
if len(components) < 2 || components[1] == "" {
|
||||||
|
return "", GinkgoErrors.InvalidLabel(label, cl)
|
||||||
|
}
|
||||||
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/onsi/ginkgo/v2/types/version.go
generated
vendored
2
vendor/github.com/onsi/ginkgo/v2/types/version.go
generated
vendored
@ -1,3 +1,3 @@
|
|||||||
package types
|
package types
|
||||||
|
|
||||||
const VERSION = "2.17.3"
|
const VERSION = "2.19.0"
|
||||||
|
7
vendor/github.com/safchain/ethtool/.yamllint
generated
vendored
Normal file
7
vendor/github.com/safchain/ethtool/.yamllint
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
document-start: disable
|
||||||
|
truthy:
|
||||||
|
check-keys: false
|
334
vendor/github.com/safchain/ethtool/ethtool.go
generated
vendored
334
vendor/github.com/safchain/ethtool/ethtool.go
generated
vendored
@ -47,33 +47,41 @@ const (
|
|||||||
|
|
||||||
// ethtool stats related constants.
|
// ethtool stats related constants.
|
||||||
const (
|
const (
|
||||||
ETH_GSTRING_LEN = 32
|
ETH_GSTRING_LEN = 32
|
||||||
ETH_SS_STATS = 1
|
ETH_SS_STATS = 1
|
||||||
ETH_SS_FEATURES = 4
|
ETH_SS_PRIV_FLAGS = 2
|
||||||
|
ETH_SS_FEATURES = 4
|
||||||
|
|
||||||
// CMD supported
|
// CMD supported
|
||||||
|
ETHTOOL_GSET = 0x00000001 /* Get settings. */
|
||||||
|
ETHTOOL_SSET = 0x00000002 /* Set settings. */
|
||||||
ETHTOOL_GDRVINFO = 0x00000003 /* Get driver info. */
|
ETHTOOL_GDRVINFO = 0x00000003 /* Get driver info. */
|
||||||
ETHTOOL_GSTRINGS = 0x0000001b /* get specified string set */
|
ETHTOOL_GMSGLVL = 0x00000007 /* Get driver message level */
|
||||||
ETHTOOL_GSTATS = 0x0000001d /* get NIC-specific statistics */
|
ETHTOOL_SMSGLVL = 0x00000008 /* Set driver msg level. */
|
||||||
// other CMDs from ethtool-copy.h of ethtool-3.5 package
|
|
||||||
ETHTOOL_GSET = 0x00000001 /* Get settings. */
|
|
||||||
ETHTOOL_SSET = 0x00000002 /* Set settings. */
|
|
||||||
ETHTOOL_GMSGLVL = 0x00000007 /* Get driver message level */
|
|
||||||
ETHTOOL_SMSGLVL = 0x00000008 /* Set driver msg level. */
|
|
||||||
ETHTOOL_GCHANNELS = 0x0000003c /* Get no of channels */
|
|
||||||
ETHTOOL_SCHANNELS = 0x0000003d /* Set no of channels */
|
|
||||||
ETHTOOL_GCOALESCE = 0x0000000e /* Get coalesce config */
|
|
||||||
/* Get link status for host, i.e. whether the interface *and* the
|
/* Get link status for host, i.e. whether the interface *and* the
|
||||||
* physical port (if there is one) are up (ethtool_value). */
|
* physical port (if there is one) are up (ethtool_value). */
|
||||||
ETHTOOL_GLINK = 0x0000000a
|
ETHTOOL_GLINK = 0x0000000a
|
||||||
ETHTOOL_GMODULEINFO = 0x00000042 /* Get plug-in module information */
|
ETHTOOL_GCOALESCE = 0x0000000e /* Get coalesce config */
|
||||||
ETHTOOL_GMODULEEEPROM = 0x00000043 /* Get plug-in module eeprom */
|
ETHTOOL_SCOALESCE = 0x0000000f /* Set coalesce config */
|
||||||
|
ETHTOOL_GRINGPARAM = 0x00000010 /* Get ring parameters */
|
||||||
|
ETHTOOL_SRINGPARAM = 0x00000011 /* Set ring parameters. */
|
||||||
|
ETHTOOL_GPAUSEPARAM = 0x00000012 /* Get pause parameters */
|
||||||
|
ETHTOOL_SPAUSEPARAM = 0x00000013 /* Set pause parameters. */
|
||||||
|
ETHTOOL_GSTRINGS = 0x0000001b /* Get specified string set */
|
||||||
|
ETHTOOL_GSTATS = 0x0000001d /* Get NIC-specific statistics */
|
||||||
ETHTOOL_GPERMADDR = 0x00000020 /* Get permanent hardware address */
|
ETHTOOL_GPERMADDR = 0x00000020 /* Get permanent hardware address */
|
||||||
|
ETHTOOL_GFLAGS = 0x00000025 /* Get flags bitmap(ethtool_value) */
|
||||||
|
ETHTOOL_GPFLAGS = 0x00000027 /* Get driver-private flags bitmap */
|
||||||
|
ETHTOOL_SPFLAGS = 0x00000028 /* Set driver-private flags bitmap */
|
||||||
|
ETHTOOL_GSSET_INFO = 0x00000037 /* Get string set info */
|
||||||
ETHTOOL_GFEATURES = 0x0000003a /* Get device offload settings */
|
ETHTOOL_GFEATURES = 0x0000003a /* Get device offload settings */
|
||||||
ETHTOOL_SFEATURES = 0x0000003b /* Change device offload settings */
|
ETHTOOL_SFEATURES = 0x0000003b /* Change device offload settings */
|
||||||
ETHTOOL_GFLAGS = 0x00000025 /* Get flags bitmap(ethtool_value) */
|
ETHTOOL_GCHANNELS = 0x0000003c /* Get no of channels */
|
||||||
ETHTOOL_GSSET_INFO = 0x00000037 /* Get string set info */
|
ETHTOOL_SCHANNELS = 0x0000003d /* Set no of channels */
|
||||||
ETHTOOL_GET_TS_INFO = 0x00000041 /* Get time stamping and PHC info */
|
ETHTOOL_GET_TS_INFO = 0x00000041 /* Get time stamping and PHC info */
|
||||||
|
ETHTOOL_GMODULEINFO = 0x00000042 /* Get plug-in module information */
|
||||||
|
ETHTOOL_GMODULEEEPROM = 0x00000043 /* Get plug-in module eeprom */
|
||||||
)
|
)
|
||||||
|
|
||||||
// MAX_GSTRINGS maximum number of stats entries that ethtool can
|
// MAX_GSTRINGS maximum number of stats entries that ethtool can
|
||||||
@ -85,6 +93,41 @@ const (
|
|||||||
PERMADDR_LEN = 32
|
PERMADDR_LEN = 32
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ethtool sset_info related constants
|
||||||
|
const (
|
||||||
|
MAX_SSET_INFO = 64
|
||||||
|
)
|
||||||
|
|
||||||
|
var supportedCapabilities = []struct {
|
||||||
|
name string
|
||||||
|
mask uint64
|
||||||
|
speed uint64
|
||||||
|
}{
|
||||||
|
{"10baseT_Half", unix.ETHTOOL_LINK_MODE_10baseT_Half_BIT, 10_000_000},
|
||||||
|
{"10baseT_Full", unix.ETHTOOL_LINK_MODE_10baseT_Full_BIT, 10_000_000},
|
||||||
|
{"100baseT_Half", unix.ETHTOOL_LINK_MODE_100baseT_Half_BIT, 100_000_000},
|
||||||
|
{"100baseT_Full", unix.ETHTOOL_LINK_MODE_100baseT_Full_BIT, 100_000_000},
|
||||||
|
{"1000baseT_Half", unix.ETHTOOL_LINK_MODE_1000baseT_Half_BIT, 1_000_000_000},
|
||||||
|
{"1000baseT_Full", unix.ETHTOOL_LINK_MODE_1000baseT_Full_BIT, 1_000_000_000},
|
||||||
|
{"10000baseT_Full", unix.ETHTOOL_LINK_MODE_10000baseT_Full_BIT, 10_000_000_000},
|
||||||
|
{"2500baseT_Full", unix.ETHTOOL_LINK_MODE_2500baseT_Full_BIT, 2_500_000_000},
|
||||||
|
{"1000baseKX_Full", unix.ETHTOOL_LINK_MODE_1000baseKX_Full_BIT, 1_000_000_000},
|
||||||
|
{"10000baseKX_Full", unix.ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT, 10_000_000_000},
|
||||||
|
{"10000baseKR_Full", unix.ETHTOOL_LINK_MODE_10000baseKR_Full_BIT, 10_000_000_000},
|
||||||
|
{"10000baseR_FEC", unix.ETHTOOL_LINK_MODE_10000baseR_FEC_BIT, 10_000_000_000},
|
||||||
|
{"20000baseMLD2_Full", unix.ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT, 20_000_000_000},
|
||||||
|
{"20000baseKR2_Full", unix.ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT, 20_000_000_000},
|
||||||
|
{"40000baseKR4_Full", unix.ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT, 40_000_000_000},
|
||||||
|
{"40000baseCR4_Full", unix.ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT, 40_000_000_000},
|
||||||
|
{"40000baseSR4_Full", unix.ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT, 40_000_000_000},
|
||||||
|
{"40000baseLR4_Full", unix.ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT, 40_000_000_000},
|
||||||
|
{"56000baseKR4_Full", unix.ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT, 56_000_000_000},
|
||||||
|
{"56000baseCR4_Full", unix.ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT, 56_000_000_000},
|
||||||
|
{"56000baseSR4_Full", unix.ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT, 56_000_000_000},
|
||||||
|
{"56000baseLR4_Full", unix.ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT, 56_000_000_000},
|
||||||
|
{"25000baseCR_Full", unix.ETHTOOL_LINK_MODE_25000baseCR_Full_BIT, 25_000_000_000},
|
||||||
|
}
|
||||||
|
|
||||||
type ifreq struct {
|
type ifreq struct {
|
||||||
ifr_name [IFNAMSIZ]byte
|
ifr_name [IFNAMSIZ]byte
|
||||||
ifr_data uintptr
|
ifr_data uintptr
|
||||||
@ -94,8 +137,8 @@ type ifreq struct {
|
|||||||
type ethtoolSsetInfo struct {
|
type ethtoolSsetInfo struct {
|
||||||
cmd uint32
|
cmd uint32
|
||||||
reserved uint32
|
reserved uint32
|
||||||
sset_mask uint32
|
sset_mask uint64
|
||||||
data uintptr
|
data [MAX_SSET_INFO]uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
type ethtoolGetFeaturesBlock struct {
|
type ethtoolGetFeaturesBlock struct {
|
||||||
@ -315,6 +358,27 @@ type ethtoolPermAddr struct {
|
|||||||
data [PERMADDR_LEN]byte
|
data [PERMADDR_LEN]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ring is a ring config for an interface
|
||||||
|
type Ring struct {
|
||||||
|
Cmd uint32
|
||||||
|
RxMaxPending uint32
|
||||||
|
RxMiniMaxPending uint32
|
||||||
|
RxJumboMaxPending uint32
|
||||||
|
TxMaxPending uint32
|
||||||
|
RxPending uint32
|
||||||
|
RxMiniPending uint32
|
||||||
|
RxJumboPending uint32
|
||||||
|
TxPending uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pause is a pause config for an interface
|
||||||
|
type Pause struct {
|
||||||
|
Cmd uint32
|
||||||
|
Autoneg uint32
|
||||||
|
RxPause uint32
|
||||||
|
TxPause uint32
|
||||||
|
}
|
||||||
|
|
||||||
type Ethtool struct {
|
type Ethtool struct {
|
||||||
fd int
|
fd int
|
||||||
}
|
}
|
||||||
@ -421,6 +485,15 @@ func (e *Ethtool) GetCoalesce(intf string) (Coalesce, error) {
|
|||||||
return coalesce, nil
|
return coalesce, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetCoalesce sets the coalesce config for the given interface name.
|
||||||
|
func (e *Ethtool) SetCoalesce(intf string, coalesce Coalesce) (Coalesce, error) {
|
||||||
|
coalesce, err := e.setCoalesce(intf, coalesce)
|
||||||
|
if err != nil {
|
||||||
|
return Coalesce{}, err
|
||||||
|
}
|
||||||
|
return coalesce, nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetTimestampingInformation returns the PTP timestamping information for the given interface name.
|
// GetTimestampingInformation returns the PTP timestamping information for the given interface name.
|
||||||
func (e *Ethtool) GetTimestampingInformation(intf string) (TimestampingInformation, error) {
|
func (e *Ethtool) GetTimestampingInformation(intf string) (TimestampingInformation, error) {
|
||||||
ts, err := e.getTimestampingInformation(intf)
|
ts, err := e.getTimestampingInformation(intf)
|
||||||
@ -516,6 +589,16 @@ func (e *Ethtool) getCoalesce(intf string) (Coalesce, error) {
|
|||||||
return coalesce, nil
|
return coalesce, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Ethtool) setCoalesce(intf string, coalesce Coalesce) (Coalesce, error) {
|
||||||
|
coalesce.Cmd = ETHTOOL_SCOALESCE
|
||||||
|
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&coalesce))); err != nil {
|
||||||
|
return Coalesce{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return coalesce, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (e *Ethtool) getTimestampingInformation(intf string) (TimestampingInformation, error) {
|
func (e *Ethtool) getTimestampingInformation(intf string) (TimestampingInformation, error) {
|
||||||
ts := TimestampingInformation{
|
ts := TimestampingInformation{
|
||||||
Cmd: ETHTOOL_GET_TS_INFO,
|
Cmd: ETHTOOL_GET_TS_INFO,
|
||||||
@ -567,10 +650,74 @@ func (e *Ethtool) getModuleEeprom(intf string) (ethtoolEeprom, ethtoolModInfo, e
|
|||||||
return eeprom, modInfo, nil
|
return eeprom, modInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRing retrieves ring parameters of the given interface name.
|
||||||
|
func (e *Ethtool) GetRing(intf string) (Ring, error) {
|
||||||
|
ring := Ring{
|
||||||
|
Cmd: ETHTOOL_GRINGPARAM,
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&ring))); err != nil {
|
||||||
|
return Ring{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return ring, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetRing sets ring parameters of the given interface name.
|
||||||
|
func (e *Ethtool) SetRing(intf string, ring Ring) (Ring, error) {
|
||||||
|
ring.Cmd = ETHTOOL_SRINGPARAM
|
||||||
|
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&ring))); err != nil {
|
||||||
|
return Ring{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return ring, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPause retrieves pause parameters of the given interface name.
|
||||||
|
func (e *Ethtool) GetPause(intf string) (Pause, error) {
|
||||||
|
pause := Pause{
|
||||||
|
Cmd: ETHTOOL_GPAUSEPARAM,
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&pause))); err != nil {
|
||||||
|
return Pause{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return pause, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPause sets pause parameters of the given interface name.
|
||||||
|
func (e *Ethtool) SetPause(intf string, pause Pause) (Pause, error) {
|
||||||
|
pause.Cmd = ETHTOOL_SPAUSEPARAM
|
||||||
|
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&pause))); err != nil {
|
||||||
|
return Pause{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return pause, nil
|
||||||
|
}
|
||||||
|
|
||||||
func isFeatureBitSet(blocks [MAX_FEATURE_BLOCKS]ethtoolGetFeaturesBlock, index uint) bool {
|
func isFeatureBitSet(blocks [MAX_FEATURE_BLOCKS]ethtoolGetFeaturesBlock, index uint) bool {
|
||||||
return (blocks)[index/32].active&(1<<(index%32)) != 0
|
return (blocks)[index/32].active&(1<<(index%32)) != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FeatureState struct {
|
||||||
|
Available bool
|
||||||
|
Requested bool
|
||||||
|
Active bool
|
||||||
|
NeverChanged bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func getFeatureStateBits(blocks [MAX_FEATURE_BLOCKS]ethtoolGetFeaturesBlock, index uint) FeatureState {
|
||||||
|
return FeatureState{
|
||||||
|
Available: (blocks)[index/32].available&(1<<(index%32)) != 0,
|
||||||
|
Requested: (blocks)[index/32].requested&(1<<(index%32)) != 0,
|
||||||
|
Active: (blocks)[index/32].active&(1<<(index%32)) != 0,
|
||||||
|
NeverChanged: (blocks)[index/32].never_changed&(1<<(index%32)) != 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func setFeatureBit(blocks *[MAX_FEATURE_BLOCKS]ethtoolSetFeaturesBlock, index uint, value bool) {
|
func setFeatureBit(blocks *[MAX_FEATURE_BLOCKS]ethtoolSetFeaturesBlock, index uint, value bool) {
|
||||||
blockIndex, bitIndex := index/32, index%32
|
blockIndex, bitIndex := index/32, index%32
|
||||||
|
|
||||||
@ -583,18 +730,19 @@ func setFeatureBit(blocks *[MAX_FEATURE_BLOCKS]ethtoolSetFeaturesBlock, index ui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FeatureNames shows supported features by their name.
|
func (e *Ethtool) getNames(intf string, mask int) (map[string]uint, error) {
|
||||||
func (e *Ethtool) FeatureNames(intf string) (map[string]uint, error) {
|
|
||||||
ssetInfo := ethtoolSsetInfo{
|
ssetInfo := ethtoolSsetInfo{
|
||||||
cmd: ETHTOOL_GSSET_INFO,
|
cmd: ETHTOOL_GSSET_INFO,
|
||||||
sset_mask: 1 << ETH_SS_FEATURES,
|
sset_mask: 1 << mask,
|
||||||
|
data: [MAX_SSET_INFO]uint32{},
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&ssetInfo))); err != nil {
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&ssetInfo))); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
length := uint32(ssetInfo.data)
|
/* we only read data on first index because single bit was set in sset_mask(0x10) */
|
||||||
|
length := ssetInfo.data[0]
|
||||||
if length == 0 {
|
if length == 0 {
|
||||||
return map[string]uint{}, nil
|
return map[string]uint{}, nil
|
||||||
} else if length > MAX_GSTRINGS {
|
} else if length > MAX_GSTRINGS {
|
||||||
@ -603,7 +751,7 @@ func (e *Ethtool) FeatureNames(intf string) (map[string]uint, error) {
|
|||||||
|
|
||||||
gstrings := ethtoolGStrings{
|
gstrings := ethtoolGStrings{
|
||||||
cmd: ETHTOOL_GSTRINGS,
|
cmd: ETHTOOL_GSTRINGS,
|
||||||
string_set: ETH_SS_FEATURES,
|
string_set: uint32(mask),
|
||||||
len: length,
|
len: length,
|
||||||
data: [MAX_GSTRINGS * ETH_GSTRING_LEN]byte{},
|
data: [MAX_GSTRINGS * ETH_GSTRING_LEN]byte{},
|
||||||
}
|
}
|
||||||
@ -612,7 +760,7 @@ func (e *Ethtool) FeatureNames(intf string) (map[string]uint, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = make(map[string]uint)
|
result := make(map[string]uint)
|
||||||
for i := 0; i != int(length); i++ {
|
for i := 0; i != int(length); i++ {
|
||||||
b := gstrings.data[i*ETH_GSTRING_LEN : i*ETH_GSTRING_LEN+ETH_GSTRING_LEN]
|
b := gstrings.data[i*ETH_GSTRING_LEN : i*ETH_GSTRING_LEN+ETH_GSTRING_LEN]
|
||||||
key := goString(b)
|
key := goString(b)
|
||||||
@ -624,6 +772,11 @@ func (e *Ethtool) FeatureNames(intf string) (map[string]uint, error) {
|
|||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FeatureNames shows supported features by their name.
|
||||||
|
func (e *Ethtool) FeatureNames(intf string) (map[string]uint, error) {
|
||||||
|
return e.getNames(intf, ETH_SS_FEATURES)
|
||||||
|
}
|
||||||
|
|
||||||
// Features retrieves features of the given interface name.
|
// Features retrieves features of the given interface name.
|
||||||
func (e *Ethtool) Features(intf string) (map[string]bool, error) {
|
func (e *Ethtool) Features(intf string) (map[string]bool, error) {
|
||||||
names, err := e.FeatureNames(intf)
|
names, err := e.FeatureNames(intf)
|
||||||
@ -645,7 +798,7 @@ func (e *Ethtool) Features(intf string) (map[string]bool, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = make(map[string]bool, length)
|
result := make(map[string]bool, length)
|
||||||
for key, index := range names {
|
for key, index := range names {
|
||||||
result[key] = isFeatureBitSet(features.blocks, index)
|
result[key] = isFeatureBitSet(features.blocks, index)
|
||||||
}
|
}
|
||||||
@ -653,6 +806,36 @@ func (e *Ethtool) Features(intf string) (map[string]bool, error) {
|
|||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FeaturesWithState retrieves features of the given interface name,
|
||||||
|
// with extra flags to explain if they can be enabled
|
||||||
|
func (e *Ethtool) FeaturesWithState(intf string) (map[string]FeatureState, error) {
|
||||||
|
names, err := e.FeatureNames(intf)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
length := uint32(len(names))
|
||||||
|
if length == 0 {
|
||||||
|
return map[string]FeatureState{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
features := ethtoolGfeatures{
|
||||||
|
cmd: ETHTOOL_GFEATURES,
|
||||||
|
size: (length + 32 - 1) / 32,
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&features))); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = make(map[string]FeatureState, length)
|
||||||
|
for key, index := range names {
|
||||||
|
result[key] = getFeatureStateBits(features.blocks, index)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Change requests a change in the given device's features.
|
// Change requests a change in the given device's features.
|
||||||
func (e *Ethtool) Change(intf string, config map[string]bool) error {
|
func (e *Ethtool) Change(intf string, config map[string]bool) error {
|
||||||
names, err := e.FeatureNames(intf)
|
names, err := e.FeatureNames(intf)
|
||||||
@ -678,6 +861,68 @@ func (e *Ethtool) Change(intf string, config map[string]bool) error {
|
|||||||
return e.ioctl(intf, uintptr(unsafe.Pointer(&features)))
|
return e.ioctl(intf, uintptr(unsafe.Pointer(&features)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PrivFlagsNames shows supported private flags by their name.
|
||||||
|
func (e *Ethtool) PrivFlagsNames(intf string) (map[string]uint, error) {
|
||||||
|
return e.getNames(intf, ETH_SS_PRIV_FLAGS)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PrivFlags retrieves private flags of the given interface name.
|
||||||
|
func (e *Ethtool) PrivFlags(intf string) (map[string]bool, error) {
|
||||||
|
names, err := e.PrivFlagsNames(intf)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
length := uint32(len(names))
|
||||||
|
if length == 0 {
|
||||||
|
return map[string]bool{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var val ethtoolLink
|
||||||
|
val.cmd = ETHTOOL_GPFLAGS
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&val))); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
result := make(map[string]bool, length)
|
||||||
|
for name, mask := range names {
|
||||||
|
result[name] = val.data&(1<<mask) != 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdatePrivFlags requests a change in the given device's private flags.
|
||||||
|
func (e *Ethtool) UpdatePrivFlags(intf string, config map[string]bool) error {
|
||||||
|
names, err := e.PrivFlagsNames(intf)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var curr ethtoolLink
|
||||||
|
curr.cmd = ETHTOOL_GPFLAGS
|
||||||
|
if err := e.ioctl(intf, uintptr(unsafe.Pointer(&curr))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var update ethtoolLink
|
||||||
|
update.cmd = ETHTOOL_SPFLAGS
|
||||||
|
update.data = curr.data
|
||||||
|
for name, value := range config {
|
||||||
|
if index, ok := names[name]; ok {
|
||||||
|
if value {
|
||||||
|
update.data |= 1 << index
|
||||||
|
} else {
|
||||||
|
update.data &= ^(1 << index)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return fmt.Errorf("unsupported priv flag %q", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return e.ioctl(intf, uintptr(unsafe.Pointer(&update)))
|
||||||
|
}
|
||||||
|
|
||||||
// Get state of a link.
|
// Get state of a link.
|
||||||
func (e *Ethtool) LinkState(intf string) (uint32, error) {
|
func (e *Ethtool) LinkState(intf string) (uint32, error) {
|
||||||
x := ethtoolLink{
|
x := ethtoolLink{
|
||||||
@ -726,7 +971,7 @@ func (e *Ethtool) Stats(intf string) (map[string]uint64, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = make(map[string]uint64)
|
result := make(map[string]uint64)
|
||||||
for i := 0; i != int(drvinfo.n_stats); i++ {
|
for i := 0; i != int(drvinfo.n_stats); i++ {
|
||||||
b := gstrings.data[i*ETH_GSTRING_LEN : i*ETH_GSTRING_LEN+ETH_GSTRING_LEN]
|
b := gstrings.data[i*ETH_GSTRING_LEN : i*ETH_GSTRING_LEN+ETH_GSTRING_LEN]
|
||||||
strEnd := strings.Index(string(b), "\x00")
|
strEnd := strings.Index(string(b), "\x00")
|
||||||
@ -798,3 +1043,36 @@ func PermAddr(intf string) (string, error) {
|
|||||||
defer e.Close()
|
defer e.Close()
|
||||||
return e.PermAddr(intf)
|
return e.PermAddr(intf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func supportedSpeeds(mask uint64) (ret []struct {
|
||||||
|
name string
|
||||||
|
mask uint64
|
||||||
|
speed uint64
|
||||||
|
}) {
|
||||||
|
for _, mode := range supportedCapabilities {
|
||||||
|
if ((1 << mode.mask) & mask) != 0 {
|
||||||
|
ret = append(ret, mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
// SupportedLinkModes returns the names of the link modes supported by the interface.
|
||||||
|
func SupportedLinkModes(mask uint64) []string {
|
||||||
|
var ret []string
|
||||||
|
for _, mode := range supportedSpeeds(mask) {
|
||||||
|
ret = append(ret, mode.name)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
// SupportedSpeed returns the maximum capacity of this interface.
|
||||||
|
func SupportedSpeed(mask uint64) uint64 {
|
||||||
|
var ret uint64
|
||||||
|
for _, mode := range supportedSpeeds(mask) {
|
||||||
|
if mode.speed > ret {
|
||||||
|
ret = mode.speed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
26
vendor/github.com/safchain/ethtool/ethtool_cmd.go
generated
vendored
26
vendor/github.com/safchain/ethtool/ethtool_cmd.go
generated
vendored
@ -83,28 +83,28 @@ func (f *EthtoolCmd) reflect(retv *map[string]uint64) {
|
|||||||
typeField := val.Type().Field(i)
|
typeField := val.Type().Field(i)
|
||||||
|
|
||||||
t := valueField.Interface()
|
t := valueField.Interface()
|
||||||
//tt := reflect.TypeOf(t)
|
// tt := reflect.TypeOf(t)
|
||||||
//fmt.Printf(" t %T %v tt %T %v\n", t, t, tt, tt)
|
// fmt.Printf(" t %T %v tt %T %v\n", t, t, tt, tt)
|
||||||
switch t.(type) {
|
switch tt := t.(type) {
|
||||||
case uint32:
|
case uint32:
|
||||||
//fmt.Printf(" t is uint32\n")
|
// fmt.Printf(" t is uint32\n")
|
||||||
(*retv)[typeField.Name] = uint64(t.(uint32))
|
(*retv)[typeField.Name] = uint64(tt)
|
||||||
case uint16:
|
case uint16:
|
||||||
(*retv)[typeField.Name] = uint64(t.(uint16))
|
(*retv)[typeField.Name] = uint64(tt)
|
||||||
case uint8:
|
case uint8:
|
||||||
(*retv)[typeField.Name] = uint64(t.(uint8))
|
(*retv)[typeField.Name] = uint64(tt)
|
||||||
case int32:
|
case int32:
|
||||||
(*retv)[typeField.Name] = uint64(t.(int32))
|
(*retv)[typeField.Name] = uint64(tt)
|
||||||
case int16:
|
case int16:
|
||||||
(*retv)[typeField.Name] = uint64(t.(int16))
|
(*retv)[typeField.Name] = uint64(tt)
|
||||||
case int8:
|
case int8:
|
||||||
(*retv)[typeField.Name] = uint64(t.(int8))
|
(*retv)[typeField.Name] = uint64(tt)
|
||||||
default:
|
default:
|
||||||
(*retv)[typeField.Name+"_unknown_type"] = 0
|
(*retv)[typeField.Name+"_unknown_type"] = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
//tag := typeField.Tag
|
// tag := typeField.Tag
|
||||||
//fmt.Printf("Field Name: %s,\t Field Value: %v,\t Tag Value: %s\n",
|
// fmt.Printf("Field Name: %s,\t Field Value: %v,\t Tag Value: %s\n",
|
||||||
// typeField.Name, valueField.Interface(), tag.Get("tag_name"))
|
// typeField.Name, valueField.Interface(), tag.Get("tag_name"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -185,7 +185,7 @@ func (e *Ethtool) CmdGetMapped(intf string) (map[string]uint64, error) {
|
|||||||
return nil, ep
|
return nil, ep
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = make(map[string]uint64)
|
result := make(map[string]uint64)
|
||||||
|
|
||||||
// ref https://gist.github.com/drewolson/4771479
|
// ref https://gist.github.com/drewolson/4771479
|
||||||
// Golang Reflection Example
|
// Golang Reflection Example
|
||||||
|
2
vendor/golang.org/x/net/html/doc.go
generated
vendored
2
vendor/golang.org/x/net/html/doc.go
generated
vendored
@ -104,7 +104,7 @@ tokenization, and tokenization and tree construction stages of the WHATWG HTML
|
|||||||
parsing specification respectively. While the tokenizer parses and normalizes
|
parsing specification respectively. While the tokenizer parses and normalizes
|
||||||
individual HTML tokens, only the parser constructs the DOM tree from the
|
individual HTML tokens, only the parser constructs the DOM tree from the
|
||||||
tokenized HTML, as described in the tree construction stage of the
|
tokenized HTML, as described in the tree construction stage of the
|
||||||
specification, dynamically modifying or extending the docuemnt's DOM tree.
|
specification, dynamically modifying or extending the document's DOM tree.
|
||||||
|
|
||||||
If your use case requires semantically well-formed HTML documents, as defined by
|
If your use case requires semantically well-formed HTML documents, as defined by
|
||||||
the WHATWG specification, the parser should be used rather than the tokenizer.
|
the WHATWG specification, the parser should be used rather than the tokenizer.
|
||||||
|
2
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
2
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
@ -263,6 +263,7 @@ struct ltchars {
|
|||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/seccomp.h>
|
#include <linux/seccomp.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
#include <linux/sock_diag.h>
|
||||||
#include <linux/sockios.h>
|
#include <linux/sockios.h>
|
||||||
#include <linux/taskstats.h>
|
#include <linux/taskstats.h>
|
||||||
#include <linux/tipc.h>
|
#include <linux/tipc.h>
|
||||||
@ -549,6 +550,7 @@ ccflags="$@"
|
|||||||
$2 !~ "NLA_TYPE_MASK" &&
|
$2 !~ "NLA_TYPE_MASK" &&
|
||||||
$2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ &&
|
$2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ &&
|
||||||
$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||
|
$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||
|
||||||
|
$2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ ||
|
||||||
$2 ~ /^FIORDCHK$/ ||
|
$2 ~ /^FIORDCHK$/ ||
|
||||||
$2 ~ /^SIOC/ ||
|
$2 ~ /^SIOC/ ||
|
||||||
$2 ~ /^TIOC/ ||
|
$2 ~ /^TIOC/ ||
|
||||||
|
20
vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
20
vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
@ -502,6 +502,7 @@ const (
|
|||||||
BPF_IMM = 0x0
|
BPF_IMM = 0x0
|
||||||
BPF_IND = 0x40
|
BPF_IND = 0x40
|
||||||
BPF_JA = 0x0
|
BPF_JA = 0x0
|
||||||
|
BPF_JCOND = 0xe0
|
||||||
BPF_JEQ = 0x10
|
BPF_JEQ = 0x10
|
||||||
BPF_JGE = 0x30
|
BPF_JGE = 0x30
|
||||||
BPF_JGT = 0x20
|
BPF_JGT = 0x20
|
||||||
@ -657,6 +658,9 @@ const (
|
|||||||
CAN_NPROTO = 0x8
|
CAN_NPROTO = 0x8
|
||||||
CAN_RAW = 0x1
|
CAN_RAW = 0x1
|
||||||
CAN_RAW_FILTER_MAX = 0x200
|
CAN_RAW_FILTER_MAX = 0x200
|
||||||
|
CAN_RAW_XL_VCID_RX_FILTER = 0x4
|
||||||
|
CAN_RAW_XL_VCID_TX_PASS = 0x2
|
||||||
|
CAN_RAW_XL_VCID_TX_SET = 0x1
|
||||||
CAN_RTR_FLAG = 0x40000000
|
CAN_RTR_FLAG = 0x40000000
|
||||||
CAN_SFF_ID_BITS = 0xb
|
CAN_SFF_ID_BITS = 0xb
|
||||||
CAN_SFF_MASK = 0x7ff
|
CAN_SFF_MASK = 0x7ff
|
||||||
@ -1339,6 +1343,7 @@ const (
|
|||||||
F_OFD_SETLK = 0x25
|
F_OFD_SETLK = 0x25
|
||||||
F_OFD_SETLKW = 0x26
|
F_OFD_SETLKW = 0x26
|
||||||
F_OK = 0x0
|
F_OK = 0x0
|
||||||
|
F_SEAL_EXEC = 0x20
|
||||||
F_SEAL_FUTURE_WRITE = 0x10
|
F_SEAL_FUTURE_WRITE = 0x10
|
||||||
F_SEAL_GROW = 0x4
|
F_SEAL_GROW = 0x4
|
||||||
F_SEAL_SEAL = 0x1
|
F_SEAL_SEAL = 0x1
|
||||||
@ -1627,6 +1632,7 @@ const (
|
|||||||
IP_FREEBIND = 0xf
|
IP_FREEBIND = 0xf
|
||||||
IP_HDRINCL = 0x3
|
IP_HDRINCL = 0x3
|
||||||
IP_IPSEC_POLICY = 0x10
|
IP_IPSEC_POLICY = 0x10
|
||||||
|
IP_LOCAL_PORT_RANGE = 0x33
|
||||||
IP_MAXPACKET = 0xffff
|
IP_MAXPACKET = 0xffff
|
||||||
IP_MAX_MEMBERSHIPS = 0x14
|
IP_MAX_MEMBERSHIPS = 0x14
|
||||||
IP_MF = 0x2000
|
IP_MF = 0x2000
|
||||||
@ -1653,6 +1659,7 @@ const (
|
|||||||
IP_PMTUDISC_OMIT = 0x5
|
IP_PMTUDISC_OMIT = 0x5
|
||||||
IP_PMTUDISC_PROBE = 0x3
|
IP_PMTUDISC_PROBE = 0x3
|
||||||
IP_PMTUDISC_WANT = 0x1
|
IP_PMTUDISC_WANT = 0x1
|
||||||
|
IP_PROTOCOL = 0x34
|
||||||
IP_RECVERR = 0xb
|
IP_RECVERR = 0xb
|
||||||
IP_RECVERR_RFC4884 = 0x1a
|
IP_RECVERR_RFC4884 = 0x1a
|
||||||
IP_RECVFRAGSIZE = 0x19
|
IP_RECVFRAGSIZE = 0x19
|
||||||
@ -2169,7 +2176,7 @@ const (
|
|||||||
NFT_SECMARK_CTX_MAXLEN = 0x100
|
NFT_SECMARK_CTX_MAXLEN = 0x100
|
||||||
NFT_SET_MAXNAMELEN = 0x100
|
NFT_SET_MAXNAMELEN = 0x100
|
||||||
NFT_SOCKET_MAX = 0x3
|
NFT_SOCKET_MAX = 0x3
|
||||||
NFT_TABLE_F_MASK = 0x3
|
NFT_TABLE_F_MASK = 0x7
|
||||||
NFT_TABLE_MAXNAMELEN = 0x100
|
NFT_TABLE_MAXNAMELEN = 0x100
|
||||||
NFT_TRACETYPE_MAX = 0x3
|
NFT_TRACETYPE_MAX = 0x3
|
||||||
NFT_TUNNEL_F_MASK = 0x7
|
NFT_TUNNEL_F_MASK = 0x7
|
||||||
@ -2403,6 +2410,7 @@ const (
|
|||||||
PERF_RECORD_MISC_USER = 0x2
|
PERF_RECORD_MISC_USER = 0x2
|
||||||
PERF_SAMPLE_BRANCH_PLM_ALL = 0x7
|
PERF_SAMPLE_BRANCH_PLM_ALL = 0x7
|
||||||
PERF_SAMPLE_WEIGHT_TYPE = 0x1004000
|
PERF_SAMPLE_WEIGHT_TYPE = 0x1004000
|
||||||
|
PID_FS_MAGIC = 0x50494446
|
||||||
PIPEFS_MAGIC = 0x50495045
|
PIPEFS_MAGIC = 0x50495045
|
||||||
PPPIOCGNPMODE = 0xc008744c
|
PPPIOCGNPMODE = 0xc008744c
|
||||||
PPPIOCNEWUNIT = 0xc004743e
|
PPPIOCNEWUNIT = 0xc004743e
|
||||||
@ -2896,8 +2904,9 @@ const (
|
|||||||
RWF_APPEND = 0x10
|
RWF_APPEND = 0x10
|
||||||
RWF_DSYNC = 0x2
|
RWF_DSYNC = 0x2
|
||||||
RWF_HIPRI = 0x1
|
RWF_HIPRI = 0x1
|
||||||
|
RWF_NOAPPEND = 0x20
|
||||||
RWF_NOWAIT = 0x8
|
RWF_NOWAIT = 0x8
|
||||||
RWF_SUPPORTED = 0x1f
|
RWF_SUPPORTED = 0x3f
|
||||||
RWF_SYNC = 0x4
|
RWF_SYNC = 0x4
|
||||||
RWF_WRITE_LIFE_NOT_SET = 0x0
|
RWF_WRITE_LIFE_NOT_SET = 0x0
|
||||||
SCHED_BATCH = 0x3
|
SCHED_BATCH = 0x3
|
||||||
@ -2918,7 +2927,9 @@ const (
|
|||||||
SCHED_RESET_ON_FORK = 0x40000000
|
SCHED_RESET_ON_FORK = 0x40000000
|
||||||
SCHED_RR = 0x2
|
SCHED_RR = 0x2
|
||||||
SCM_CREDENTIALS = 0x2
|
SCM_CREDENTIALS = 0x2
|
||||||
|
SCM_PIDFD = 0x4
|
||||||
SCM_RIGHTS = 0x1
|
SCM_RIGHTS = 0x1
|
||||||
|
SCM_SECURITY = 0x3
|
||||||
SCM_TIMESTAMP = 0x1d
|
SCM_TIMESTAMP = 0x1d
|
||||||
SC_LOG_FLUSH = 0x100000
|
SC_LOG_FLUSH = 0x100000
|
||||||
SECCOMP_ADDFD_FLAG_SEND = 0x2
|
SECCOMP_ADDFD_FLAG_SEND = 0x2
|
||||||
@ -3051,6 +3062,8 @@ const (
|
|||||||
SIOCSMIIREG = 0x8949
|
SIOCSMIIREG = 0x8949
|
||||||
SIOCSRARP = 0x8962
|
SIOCSRARP = 0x8962
|
||||||
SIOCWANDEV = 0x894a
|
SIOCWANDEV = 0x894a
|
||||||
|
SK_DIAG_BPF_STORAGE_MAX = 0x3
|
||||||
|
SK_DIAG_BPF_STORAGE_REQ_MAX = 0x1
|
||||||
SMACK_MAGIC = 0x43415d53
|
SMACK_MAGIC = 0x43415d53
|
||||||
SMART_AUTOSAVE = 0xd2
|
SMART_AUTOSAVE = 0xd2
|
||||||
SMART_AUTO_OFFLINE = 0xdb
|
SMART_AUTO_OFFLINE = 0xdb
|
||||||
@ -3071,6 +3084,8 @@ const (
|
|||||||
SOCKFS_MAGIC = 0x534f434b
|
SOCKFS_MAGIC = 0x534f434b
|
||||||
SOCK_BUF_LOCK_MASK = 0x3
|
SOCK_BUF_LOCK_MASK = 0x3
|
||||||
SOCK_DCCP = 0x6
|
SOCK_DCCP = 0x6
|
||||||
|
SOCK_DESTROY = 0x15
|
||||||
|
SOCK_DIAG_BY_FAMILY = 0x14
|
||||||
SOCK_IOC_TYPE = 0x89
|
SOCK_IOC_TYPE = 0x89
|
||||||
SOCK_PACKET = 0xa
|
SOCK_PACKET = 0xa
|
||||||
SOCK_RAW = 0x3
|
SOCK_RAW = 0x3
|
||||||
@ -3260,6 +3275,7 @@ const (
|
|||||||
TCP_MAX_WINSHIFT = 0xe
|
TCP_MAX_WINSHIFT = 0xe
|
||||||
TCP_MD5SIG = 0xe
|
TCP_MD5SIG = 0xe
|
||||||
TCP_MD5SIG_EXT = 0x20
|
TCP_MD5SIG_EXT = 0x20
|
||||||
|
TCP_MD5SIG_FLAG_IFINDEX = 0x2
|
||||||
TCP_MD5SIG_FLAG_PREFIX = 0x1
|
TCP_MD5SIG_FLAG_PREFIX = 0x1
|
||||||
TCP_MD5SIG_MAXKEYLEN = 0x50
|
TCP_MD5SIG_MAXKEYLEN = 0x50
|
||||||
TCP_MSS = 0x200
|
TCP_MSS = 0x200
|
||||||
|
1
vendor/golang.org/x/sys/unix/zerrors_linux_386.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zerrors_linux_386.go
generated
vendored
@ -118,6 +118,7 @@ const (
|
|||||||
IXOFF = 0x1000
|
IXOFF = 0x1000
|
||||||
IXON = 0x400
|
IXON = 0x400
|
||||||
MAP_32BIT = 0x40
|
MAP_32BIT = 0x40
|
||||||
|
MAP_ABOVE4G = 0x80
|
||||||
MAP_ANON = 0x20
|
MAP_ANON = 0x20
|
||||||
MAP_ANONYMOUS = 0x20
|
MAP_ANONYMOUS = 0x20
|
||||||
MAP_DENYWRITE = 0x800
|
MAP_DENYWRITE = 0x800
|
||||||
|
1
vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
generated
vendored
@ -118,6 +118,7 @@ const (
|
|||||||
IXOFF = 0x1000
|
IXOFF = 0x1000
|
||||||
IXON = 0x400
|
IXON = 0x400
|
||||||
MAP_32BIT = 0x40
|
MAP_32BIT = 0x40
|
||||||
|
MAP_ABOVE4G = 0x80
|
||||||
MAP_ANON = 0x20
|
MAP_ANON = 0x20
|
||||||
MAP_ANONYMOUS = 0x20
|
MAP_ANONYMOUS = 0x20
|
||||||
MAP_DENYWRITE = 0x800
|
MAP_DENYWRITE = 0x800
|
||||||
|
1
vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
generated
vendored
@ -87,6 +87,7 @@ const (
|
|||||||
FICLONE = 0x40049409
|
FICLONE = 0x40049409
|
||||||
FICLONERANGE = 0x4020940d
|
FICLONERANGE = 0x4020940d
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
|
FPMR_MAGIC = 0x46504d52
|
||||||
FPSIMD_MAGIC = 0x46508001
|
FPSIMD_MAGIC = 0x46508001
|
||||||
FS_IOC_ENABLE_VERITY = 0x40806685
|
FS_IOC_ENABLE_VERITY = 0x40806685
|
||||||
FS_IOC_GETFLAGS = 0x80086601
|
FS_IOC_GETFLAGS = 0x80086601
|
||||||
|
37
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
37
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
@ -4605,7 +4605,7 @@ const (
|
|||||||
NL80211_ATTR_MAC_HINT = 0xc8
|
NL80211_ATTR_MAC_HINT = 0xc8
|
||||||
NL80211_ATTR_MAC_MASK = 0xd7
|
NL80211_ATTR_MAC_MASK = 0xd7
|
||||||
NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca
|
NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca
|
||||||
NL80211_ATTR_MAX = 0x149
|
NL80211_ATTR_MAX = 0x14a
|
||||||
NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4
|
NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4
|
||||||
NL80211_ATTR_MAX_CSA_COUNTERS = 0xce
|
NL80211_ATTR_MAX_CSA_COUNTERS = 0xce
|
||||||
NL80211_ATTR_MAX_MATCH_SETS = 0x85
|
NL80211_ATTR_MAX_MATCH_SETS = 0x85
|
||||||
@ -5209,7 +5209,7 @@ const (
|
|||||||
NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf
|
NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf
|
||||||
NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe
|
NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe
|
||||||
NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf
|
NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf
|
||||||
NL80211_FREQUENCY_ATTR_MAX = 0x1f
|
NL80211_FREQUENCY_ATTR_MAX = 0x20
|
||||||
NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6
|
NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6
|
||||||
NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11
|
NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11
|
||||||
NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc
|
NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc
|
||||||
@ -5703,7 +5703,7 @@ const (
|
|||||||
NL80211_STA_FLAG_ASSOCIATED = 0x7
|
NL80211_STA_FLAG_ASSOCIATED = 0x7
|
||||||
NL80211_STA_FLAG_AUTHENTICATED = 0x5
|
NL80211_STA_FLAG_AUTHENTICATED = 0x5
|
||||||
NL80211_STA_FLAG_AUTHORIZED = 0x1
|
NL80211_STA_FLAG_AUTHORIZED = 0x1
|
||||||
NL80211_STA_FLAG_MAX = 0x7
|
NL80211_STA_FLAG_MAX = 0x8
|
||||||
NL80211_STA_FLAG_MAX_OLD_API = 0x6
|
NL80211_STA_FLAG_MAX_OLD_API = 0x6
|
||||||
NL80211_STA_FLAG_MFP = 0x4
|
NL80211_STA_FLAG_MFP = 0x4
|
||||||
NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2
|
NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2
|
||||||
@ -6001,3 +6001,34 @@ type CachestatRange struct {
|
|||||||
Off uint64
|
Off uint64
|
||||||
Len uint64
|
Len uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SK_MEMINFO_RMEM_ALLOC = 0x0
|
||||||
|
SK_MEMINFO_RCVBUF = 0x1
|
||||||
|
SK_MEMINFO_WMEM_ALLOC = 0x2
|
||||||
|
SK_MEMINFO_SNDBUF = 0x3
|
||||||
|
SK_MEMINFO_FWD_ALLOC = 0x4
|
||||||
|
SK_MEMINFO_WMEM_QUEUED = 0x5
|
||||||
|
SK_MEMINFO_OPTMEM = 0x6
|
||||||
|
SK_MEMINFO_BACKLOG = 0x7
|
||||||
|
SK_MEMINFO_DROPS = 0x8
|
||||||
|
SK_MEMINFO_VARS = 0x9
|
||||||
|
SKNLGRP_NONE = 0x0
|
||||||
|
SKNLGRP_INET_TCP_DESTROY = 0x1
|
||||||
|
SKNLGRP_INET_UDP_DESTROY = 0x2
|
||||||
|
SKNLGRP_INET6_TCP_DESTROY = 0x3
|
||||||
|
SKNLGRP_INET6_UDP_DESTROY = 0x4
|
||||||
|
SK_DIAG_BPF_STORAGE_REQ_NONE = 0x0
|
||||||
|
SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1
|
||||||
|
SK_DIAG_BPF_STORAGE_REP_NONE = 0x0
|
||||||
|
SK_DIAG_BPF_STORAGE = 0x1
|
||||||
|
SK_DIAG_BPF_STORAGE_NONE = 0x0
|
||||||
|
SK_DIAG_BPF_STORAGE_PAD = 0x1
|
||||||
|
SK_DIAG_BPF_STORAGE_MAP_ID = 0x2
|
||||||
|
SK_DIAG_BPF_STORAGE_MAP_VALUE = 0x3
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockDiagReq struct {
|
||||||
|
Family uint8
|
||||||
|
Protocol uint8
|
||||||
|
}
|
||||||
|
1
vendor/golang.org/x/sys/windows/security_windows.go
generated
vendored
1
vendor/golang.org/x/sys/windows/security_windows.go
generated
vendored
@ -68,6 +68,7 @@ type UserInfo10 struct {
|
|||||||
//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo
|
//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo
|
||||||
//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation
|
//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation
|
||||||
//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree
|
//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree
|
||||||
|
//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// do not reorder
|
// do not reorder
|
||||||
|
9
vendor/golang.org/x/sys/windows/zsyscall_windows.go
generated
vendored
9
vendor/golang.org/x/sys/windows/zsyscall_windows.go
generated
vendored
@ -401,6 +401,7 @@ var (
|
|||||||
procTransmitFile = modmswsock.NewProc("TransmitFile")
|
procTransmitFile = modmswsock.NewProc("TransmitFile")
|
||||||
procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree")
|
procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree")
|
||||||
procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation")
|
procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation")
|
||||||
|
procNetUserEnum = modnetapi32.NewProc("NetUserEnum")
|
||||||
procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo")
|
procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo")
|
||||||
procNtCreateFile = modntdll.NewProc("NtCreateFile")
|
procNtCreateFile = modntdll.NewProc("NtCreateFile")
|
||||||
procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile")
|
procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile")
|
||||||
@ -3486,6 +3487,14 @@ func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (nete
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) {
|
||||||
|
r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0)
|
||||||
|
if r0 != 0 {
|
||||||
|
neterr = syscall.Errno(r0)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {
|
func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {
|
||||||
r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0)
|
r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0)
|
||||||
if r0 != 0 {
|
if r0 != 0 {
|
||||||
|
12
vendor/modules.txt
vendored
12
vendor/modules.txt
vendored
@ -116,7 +116,7 @@ github.com/networkplumbing/go-nft/nft
|
|||||||
github.com/networkplumbing/go-nft/nft/config
|
github.com/networkplumbing/go-nft/nft/config
|
||||||
github.com/networkplumbing/go-nft/nft/exec
|
github.com/networkplumbing/go-nft/nft/exec
|
||||||
github.com/networkplumbing/go-nft/nft/schema
|
github.com/networkplumbing/go-nft/nft/schema
|
||||||
# github.com/onsi/ginkgo/v2 v2.17.3
|
# github.com/onsi/ginkgo/v2 v2.19.0
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/onsi/ginkgo/v2
|
github.com/onsi/ginkgo/v2
|
||||||
github.com/onsi/ginkgo/v2/config
|
github.com/onsi/ginkgo/v2/config
|
||||||
@ -159,7 +159,7 @@ github.com/opencontainers/selinux/pkg/pwalkdir
|
|||||||
# github.com/pkg/errors v0.9.1
|
# github.com/pkg/errors v0.9.1
|
||||||
## explicit
|
## explicit
|
||||||
github.com/pkg/errors
|
github.com/pkg/errors
|
||||||
# github.com/safchain/ethtool v0.3.0
|
# github.com/safchain/ethtool v0.4.0
|
||||||
## explicit; go 1.16
|
## explicit; go 1.16
|
||||||
github.com/safchain/ethtool
|
github.com/safchain/ethtool
|
||||||
# github.com/sirupsen/logrus v1.9.3
|
# github.com/sirupsen/logrus v1.9.3
|
||||||
@ -179,7 +179,7 @@ go.opencensus.io/internal
|
|||||||
go.opencensus.io/trace
|
go.opencensus.io/trace
|
||||||
go.opencensus.io/trace/internal
|
go.opencensus.io/trace/internal
|
||||||
go.opencensus.io/trace/tracestate
|
go.opencensus.io/trace/tracestate
|
||||||
# golang.org/x/net v0.24.0
|
# golang.org/x/net v0.25.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/net/bpf
|
golang.org/x/net/bpf
|
||||||
golang.org/x/net/context
|
golang.org/x/net/context
|
||||||
@ -189,12 +189,12 @@ golang.org/x/net/html/charset
|
|||||||
golang.org/x/net/internal/iana
|
golang.org/x/net/internal/iana
|
||||||
golang.org/x/net/internal/socket
|
golang.org/x/net/internal/socket
|
||||||
golang.org/x/net/ipv4
|
golang.org/x/net/ipv4
|
||||||
# golang.org/x/sys v0.20.0
|
# golang.org/x/sys v0.21.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/sys/unix
|
golang.org/x/sys/unix
|
||||||
golang.org/x/sys/windows
|
golang.org/x/sys/windows
|
||||||
golang.org/x/sys/windows/registry
|
golang.org/x/sys/windows/registry
|
||||||
# golang.org/x/text v0.14.0
|
# golang.org/x/text v0.15.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/text/encoding
|
golang.org/x/text/encoding
|
||||||
golang.org/x/text/encoding/charmap
|
golang.org/x/text/encoding/charmap
|
||||||
@ -213,7 +213,7 @@ golang.org/x/text/internal/utf8internal
|
|||||||
golang.org/x/text/language
|
golang.org/x/text/language
|
||||||
golang.org/x/text/runes
|
golang.org/x/text/runes
|
||||||
golang.org/x/text/transform
|
golang.org/x/text/transform
|
||||||
# golang.org/x/tools v0.20.0
|
# golang.org/x/tools v0.21.0
|
||||||
## explicit; go 1.19
|
## explicit; go 1.19
|
||||||
golang.org/x/tools/cover
|
golang.org/x/tools/cover
|
||||||
golang.org/x/tools/go/ast/inspector
|
golang.org/x/tools/go/ast/inspector
|
||||||
|
Loading…
x
Reference in New Issue
Block a user