File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments