| 1 | package cli |
| 2 | |
| 3 | import ( |
| 4 | "context" |
| 5 | "path" |
| 6 | "testing" |
| 7 | |
| 8 | rpcapi "github.com/ipfs/kubo/client/rpc" |
| 9 | "github.com/ipfs/kubo/config" |
| 10 | "github.com/ipfs/kubo/test/cli/harness" |
| 11 | "github.com/multiformats/go-multiaddr" |
| 12 | "github.com/stretchr/testify/require" |
| 13 | ) |
| 14 | |
| 15 | func TestRPCUnixSocket(t *testing.T) { |
| 16 | node := harness.NewT(t).NewNode().Init() |
| 17 | |
| 18 | sockDir := node.Dir |
| 19 | sockAddr := path.Join("/unix", sockDir, "sock") |
| 20 | |
| 21 | node.UpdateConfig(func(cfg *config.Config) { |
| 22 | //cfg.Addresses.API = append(cfg.Addresses.API, sockPath) |
| 23 | cfg.Addresses.API = []string{sockAddr} |
| 24 | }) |
| 25 | t.Log("Starting daemon with unix socket:", sockAddr) |
| 26 | node.StartDaemon() |
| 27 | |
| 28 | unixMaddr, err := multiaddr.NewMultiaddr(sockAddr) |
| 29 | require.NoError(t, err) |
| 30 | |
| 31 | apiClient, err := rpcapi.NewApi(unixMaddr) |
| 32 | require.NoError(t, err) |
| 33 | |
| 34 | var ver struct { |
| 35 | Version string |
| 36 | } |
| 37 | err = apiClient.Request("version").Exec(context.Background(), &ver) |
| 38 | require.NoError(t, err) |
| 39 | require.NotEmpty(t, ver) |
| 40 | t.Log("Got version:", ver.Version) |
| 41 | |
| 42 | var res struct { |
| 43 | ID string |
| 44 | } |
| 45 | err = apiClient.Request("id").Exec(context.Background(), &res) |
| 46 | require.NoError(t, err) |
| 47 | require.NotEmpty(t, res) |
| 48 | t.Log("Got ID:", res.ID) |
| 49 | |
| 50 | node.StopDaemon() |
| 51 | } |