Skip to content

Commit 71b213b

Browse files
committed
style: add unix example
1 parent 54be465 commit 71b213b

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

examples/unix/client_test.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package unix
2+
3+
import (
4+
"net"
5+
"os"
6+
"testing"
7+
8+
"github.com/andeya/erpc/v7"
9+
"github.com/andeya/goutil"
10+
)
11+
12+
//go:generate go test -v -c -o "${GOPACKAGE}_client" $GOFILE
13+
14+
func TestClient(t *testing.T) {
15+
if goutil.IsGoTest() {
16+
t.Log("skip test in go test")
17+
return
18+
}
19+
defer erpc.SetLoggerLevel("ERROR")()
20+
21+
cli := erpc.NewPeer(
22+
erpc.PeerConfig{
23+
Network: "unix",
24+
LocalPort: 9091,
25+
},
26+
&erpc.PluginImpl{
27+
PluginName: "clean-local-unix-file",
28+
OnPreDial: func(localAddr net.Addr, remoteAddr string) (stat *erpc.Status) {
29+
addr := localAddr.String()
30+
if _, err := os.Stat(addr); err == nil {
31+
if err := os.RemoveAll(addr); err != nil {
32+
return erpc.NewStatusByCodeText(erpc.CodeDialFailed, err, false)
33+
}
34+
}
35+
return nil
36+
},
37+
},
38+
)
39+
defer cli.Close()
40+
41+
sess, stat := cli.Dial("0.0.0.0:9090")
42+
if !stat.OK() {
43+
erpc.Fatalf("%v", stat)
44+
}
45+
46+
var result string
47+
stat = sess.Call(
48+
"/echo/parrot",
49+
"this is request",
50+
&result,
51+
).Status()
52+
53+
if !stat.OK() {
54+
erpc.Fatalf("%v", stat)
55+
}
56+
erpc.Printf("result: %s", result)
57+
}

examples/unix/server_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package unix
2+
3+
import (
4+
"os"
5+
"testing"
6+
7+
"github.com/andeya/erpc/v7"
8+
"github.com/andeya/goutil"
9+
)
10+
11+
//go:generate go test -v -c -o "${GOPACKAGE}_server" $GOFILE
12+
13+
func TestServer(t *testing.T) {
14+
if goutil.IsGoTest() {
15+
t.Log("skip test in go test")
16+
return
17+
}
18+
19+
defer erpc.FlushLogger()
20+
srv := erpc.NewPeer(erpc.PeerConfig{
21+
CountTime: true,
22+
ListenPort: 9090,
23+
Network: "unix",
24+
}, &erpc.PluginImpl{
25+
PluginName: "clean-listen-unix-file",
26+
OnPreNewPeer: func(config *erpc.PeerConfig, _ *erpc.PluginContainer) error {
27+
socketFile := config.ListenAddr().String()
28+
if _, err := os.Stat(socketFile); err == nil {
29+
if err := os.RemoveAll(socketFile); err != nil {
30+
return err
31+
}
32+
}
33+
return nil
34+
},
35+
})
36+
srv.RouteCall(&Echo{})
37+
srv.ListenAndServe()
38+
}
39+
40+
type Echo struct {
41+
erpc.CallCtx
42+
}
43+
44+
func (echo *Echo) Parrot(arg *string) (string, *erpc.Status) {
45+
return *arg, nil
46+
}

0 commit comments

Comments
 (0)