mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-10-29 13:01:44 +08:00
68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
package wg_test
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
"riasc.eu/wice/pkg/wg"
|
|
)
|
|
|
|
var _ = Context("device", func() {
|
|
var err error
|
|
var cfg *wg.Config
|
|
|
|
var cfgStr string
|
|
|
|
BeforeEach(func() {
|
|
cfgStr = `[Interface]
|
|
PrivateKey = 6Hw0A9Cv0LuCzbdwxPsrmW8oPvOyiyVelwH2pqKlAFE=
|
|
ListenPort = 51823
|
|
FwMark = 4096
|
|
Address = 192.168.0.1/24, fd00::1/64
|
|
DNS = 1.1.1.1
|
|
MTU = 1420
|
|
Table = off
|
|
PreUp = ip addr add 2a09:11c0:200::5 peer 2a09:11c0:200::4 dev %i
|
|
PostUp = ip addr add 172.23.156.5 peer 172.23.156.4 dev %i
|
|
PostUp = ip addr add fe80::5/64 dev %i
|
|
PostDown = bla1
|
|
PostDown = bla2
|
|
`
|
|
})
|
|
|
|
JustBeforeEach(func() {
|
|
rd := strings.NewReader(cfgStr)
|
|
|
|
cfg, err = wg.ParseConfig(rd, "")
|
|
Expect(err).To(Succeed(), "failed to parse config: %s", err)
|
|
})
|
|
|
|
test := func() {
|
|
It("can parse and serialize", func() {
|
|
wr := &bytes.Buffer{}
|
|
err = cfg.Dump(wr)
|
|
Expect(err).To(Succeed(), "failed to dump config: %s", err)
|
|
|
|
Expect(wr.String()).To(Equal(cfgStr), "configs not equal:\n%s\n%s", cfgStr, wr)
|
|
})
|
|
}
|
|
|
|
test()
|
|
|
|
When("it has a peer", func() {
|
|
BeforeEach(func() {
|
|
cfgStr += `
|
|
[Peer]
|
|
PublicKey = mBgUyqcI0XXrWskB5w9Z+C3LX5Gu5kw4mDTFPigu/Xg=
|
|
AllowedIPs = 0.0.0.0/0, ::/0
|
|
Endpoint = 14.10.19.13:3436
|
|
PersistentKeepalive = 25
|
|
`
|
|
})
|
|
|
|
test()
|
|
})
|
|
})
|