File tree Expand file tree Collapse file tree 2 files changed +103
-0
lines changed Expand file tree Collapse file tree 2 files changed +103
-0
lines changed 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