change: replace gadb log

This commit is contained in:
debugtalk
2022-12-26 16:49:43 +08:00
parent 869a1b59c3
commit 9b081bff8b
7 changed files with 37 additions and 87 deletions
+7 -3
View File
@@ -4,10 +4,14 @@ import (
"fmt" "fmt"
"strconv" "strconv"
"strings" "strings"
"github.com/rs/zerolog/log"
) )
const AdbServerPort = 5037 const (
const AdbDaemonPort = 5555 AdbServerPort = 5037
AdbDaemonPort = 5555
)
type Client struct { type Client struct {
host string host string
@@ -86,7 +90,7 @@ func (c Client) DeviceList() (devices []Device, err error) {
fields := strings.Fields(line) fields := strings.Fields(line)
if len(fields) < 5 || len(fields[0]) == 0 { if len(fields) < 5 || len(fields[0]) == 0 {
debugLog(fmt.Sprintf("can't parse: %s", line)) log.Error().Str("line", line).Msg("get unexpected line")
continue continue
} }
-18
View File
@@ -7,8 +7,6 @@ import (
) )
func TestClient_ServerVersion(t *testing.T) { func TestClient_ServerVersion(t *testing.T) {
SetDebug(true)
adbClient, err := NewClient() adbClient, err := NewClient()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -23,8 +21,6 @@ func TestClient_ServerVersion(t *testing.T) {
} }
func TestClient_DeviceSerialList(t *testing.T) { func TestClient_DeviceSerialList(t *testing.T) {
SetDebug(true)
adbClient, err := NewClient() adbClient, err := NewClient()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -41,8 +37,6 @@ func TestClient_DeviceSerialList(t *testing.T) {
} }
func TestClient_DeviceList(t *testing.T) { func TestClient_DeviceList(t *testing.T) {
SetDebug(true)
adbClient, err := NewClient() adbClient, err := NewClient()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -59,8 +53,6 @@ func TestClient_DeviceList(t *testing.T) {
} }
func TestClient_ForwardList(t *testing.T) { func TestClient_ForwardList(t *testing.T) {
SetDebug(true)
adbClient, err := NewClient() adbClient, err := NewClient()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -77,8 +69,6 @@ func TestClient_ForwardList(t *testing.T) {
} }
func TestClient_ForwardKillAll(t *testing.T) { func TestClient_ForwardKillAll(t *testing.T) {
SetDebug(true)
adbClient, err := NewClient() adbClient, err := NewClient()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -96,8 +86,6 @@ func TestClient_Connect(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
SetDebug(true)
err = adbClient.Connect("192.168.1.28") err = adbClient.Connect("192.168.1.28")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -110,8 +98,6 @@ func TestClient_Disconnect(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
SetDebug(true)
err = adbClient.Disconnect("192.168.1.28") err = adbClient.Disconnect("192.168.1.28")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -124,8 +110,6 @@ func TestClient_DisconnectAll(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
SetDebug(true)
err = adbClient.DisconnectAll() err = adbClient.DisconnectAll()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -133,8 +117,6 @@ func TestClient_DisconnectAll(t *testing.T) {
} }
func TestClient_KillServer(t *testing.T) { func TestClient_KillServer(t *testing.T) {
SetDebug(true)
adbClient, err := NewClient() adbClient, err := NewClient()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
-18
View File
@@ -103,7 +103,6 @@ func TestDevice_Usb(t *testing.T) {
dev := devices[i] dev := devices[i]
t.Log(dev.Serial(), dev.Usb(), dev.IsUsb()) t.Log(dev.Serial(), dev.Usb(), dev.IsUsb())
} }
} }
func TestDevice_DeviceInfo(t *testing.T) { func TestDevice_DeviceInfo(t *testing.T) {
@@ -134,8 +133,6 @@ func TestDevice_Forward(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
SetDebug(true)
localPort := 61000 localPort := 61000
err = devices[0].Forward(localPort, 6790) err = devices[0].Forward(localPort, 6790)
if err != nil { if err != nil {
@@ -159,8 +156,6 @@ func TestDevice_ForwardList(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
SetDebug(true)
for i := range devices { for i := range devices {
dev := devices[i] dev := devices[i]
forwardList, err := dev.ForwardList() forwardList, err := dev.ForwardList()
@@ -182,8 +177,6 @@ func TestDevice_ForwardKill(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
SetDebug(true)
err = devices[0].ForwardKill(6790) err = devices[0].ForwardKill(6790)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -213,8 +206,6 @@ func TestDevice_RunShellCommand(t *testing.T) {
// t.Log("\n"+dev.serial, cmdOutput) // t.Log("\n"+dev.serial, cmdOutput)
// } // }
// SetDebug(true)
dev := devices[len(devices)-1] dev := devices[len(devices)-1]
dev = devices[0] dev = devices[0]
@@ -225,7 +216,6 @@ func TestDevice_RunShellCommand(t *testing.T) {
t.Fatal(dev.serial, err) t.Fatal(dev.serial, err)
} }
t.Log("\n⬇️"+dev.serial+"⬇️\n", cmdOutput) t.Log("\n⬇️"+dev.serial+"⬇️\n", cmdOutput)
} }
func TestDevice_EnableAdbOverTCP(t *testing.T) { func TestDevice_EnableAdbOverTCP(t *testing.T) {
@@ -242,8 +232,6 @@ func TestDevice_EnableAdbOverTCP(t *testing.T) {
dev := devices[len(devices)-1] dev := devices[len(devices)-1]
dev = devices[0] dev = devices[0]
SetDebug(true)
err = dev.EnableAdbOverTCP() err = dev.EnableAdbOverTCP()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -264,8 +252,6 @@ func TestDevice_List(t *testing.T) {
dev := devices[len(devices)-1] dev := devices[len(devices)-1]
dev = devices[0] dev = devices[0]
SetDebug(true)
// fileEntries, err := dev.List("/sdcard") // fileEntries, err := dev.List("/sdcard")
fileEntries, err := dev.List("/sdcard/Download") fileEntries, err := dev.List("/sdcard/Download")
if err != nil { if err != nil {
@@ -291,8 +277,6 @@ func TestDevice_Push(t *testing.T) {
dev := devices[len(devices)-1] dev := devices[len(devices)-1]
dev = devices[0] dev = devices[0]
SetDebug(true)
file, _ := os.Open("/Users/hero/Documents/temp/MuMu共享文件夹/test.txt") file, _ := os.Open("/Users/hero/Documents/temp/MuMu共享文件夹/test.txt")
err = dev.PushFile(file, "/sdcard/Download/push.txt", time.Now()) err = dev.PushFile(file, "/sdcard/Download/push.txt", time.Now())
if err != nil { if err != nil {
@@ -319,8 +303,6 @@ func TestDevice_Pull(t *testing.T) {
dev := devices[len(devices)-1] dev := devices[len(devices)-1]
dev = devices[0] dev = devices[0]
SetDebug(true)
buffer := bytes.NewBufferString("") buffer := bytes.NewBufferString("")
err = dev.Pull("/sdcard/Download/hello.txt", buffer) err = dev.Pull("/sdcard/Download/hello.txt", buffer)
if err != nil { if err != nil {
-17
View File
@@ -1,17 +0,0 @@
package gadb
import "log"
var debugFlag = false
// SetDebug set debug mode
func SetDebug(debug bool) {
debugFlag = debug
}
func debugLog(msg string) {
if !debugFlag {
return
}
log.Println("[DEBUG] [gadb] " + msg)
}
+26 -24
View File
@@ -8,6 +8,8 @@ import (
"io" "io"
"net" "net"
"time" "time"
"github.com/rs/zerolog/log"
) )
type syncTransport struct { type syncTransport struct {
@@ -29,7 +31,7 @@ func (sync syncTransport) Send(command, data string) (err error) {
} }
msg.WriteString(data) msg.WriteString(data)
debugLog(fmt.Sprintf("--> %s", msg.String())) log.Debug().Str("msg", msg.String()).Msg("sync run adb command")
return _send(sync.sock, msg.Bytes()) return _send(sync.sock, msg.Bytes())
} }
@@ -56,7 +58,7 @@ func (sync syncTransport) SendStatus(statusCode string, n uint32) (err error) {
if err = binary.Write(msg, binary.LittleEndian, n); err != nil { if err = binary.Write(msg, binary.LittleEndian, n); err != nil {
return fmt.Errorf("sync transport write: %w", err) return fmt.Errorf("sync transport write: %w", err)
} }
debugLog(fmt.Sprintf("--> %s", msg.String())) log.Debug().Str("msg", msg.String()).Msg("sync send adb status")
return _send(sync.sock, msg.Bytes()) return _send(sync.sock, msg.Bytes())
} }
@@ -65,7 +67,6 @@ func (sync syncTransport) sendChunk(buffer []byte) (err error) {
if err = binary.Write(msg, binary.LittleEndian, int32(len(buffer))); err != nil { if err = binary.Write(msg, binary.LittleEndian, int32(len(buffer))); err != nil {
return fmt.Errorf("sync transport write: %w", err) return fmt.Errorf("sync transport write: %w", err)
} }
debugLog(fmt.Sprintf("--> %s ......", msg.String()))
msg.Write(buffer) msg.Write(buffer)
return _send(sync.sock, msg.Bytes()) return _send(sync.sock, msg.Bytes())
} }
@@ -76,22 +77,22 @@ func (sync syncTransport) VerifyStatus() (err error) {
return err return err
} }
log := bytes.NewBufferString(fmt.Sprintf("<-- %s", status)) logs := bytes.NewBufferString(fmt.Sprintf("<-- %s", status))
defer func() { defer func() {
debugLog(log.String()) fmt.Println(logs.String())
}() }()
var tmpUint32 uint32 var tmpUint32 uint32
if tmpUint32, err = sync.ReadUint32(); err != nil { if tmpUint32, err = sync.ReadUint32(); err != nil {
return fmt.Errorf("sync transport read (status): %w", err) return fmt.Errorf("sync transport read (status): %w", err)
} }
log.WriteString(fmt.Sprintf(" %d\t", tmpUint32)) logs.WriteString(fmt.Sprintf(" %d\t", tmpUint32))
var msg string var msg string
if msg, err = sync.ReadStringN(int(tmpUint32)); err != nil { if msg, err = sync.ReadStringN(int(tmpUint32)); err != nil {
return err return err
} }
log.WriteString(msg) logs.WriteString(msg)
if status == "FAIL" { if status == "FAIL" {
err = fmt.Errorf("sync verify status (fail): %s", msg) err = fmt.Errorf("sync verify status (fail): %s", msg)
@@ -139,8 +140,10 @@ func (sync syncTransport) readChunk() (chunk []byte, err error) {
return nil, err return nil, err
} }
log := bytes.NewBufferString("") logs := bytes.NewBufferString("")
defer func() { debugLog(log.String()) }() defer func() {
fmt.Println(logs.String())
}()
var tmpUint32 uint32 var tmpUint32 uint32
if tmpUint32, err = sync.ReadUint32(); err != nil { if tmpUint32, err = sync.ReadUint32(); err != nil {
@@ -148,35 +151,34 @@ func (sync syncTransport) readChunk() (chunk []byte, err error) {
} }
if status == "FAIL" { if status == "FAIL" {
log.WriteString(fmt.Sprintf("<-- %s\t%d\t", status, tmpUint32)) logs.WriteString(fmt.Sprintf("<-- %s\t%d\t", status, tmpUint32))
var sError string var sError string
if sError, err = sync.ReadStringN(int(tmpUint32)); err != nil { if sError, err = sync.ReadStringN(int(tmpUint32)); err != nil {
return nil, fmt.Errorf("read chunk (error message): %w", err) return nil, fmt.Errorf("read chunk (error message): %w", err)
} }
err = fmt.Errorf("status (fail): %s", sError) err = fmt.Errorf("status (fail): %s", sError)
log.WriteString(sError) logs.WriteString(sError)
return return
} }
switch status { switch status {
case "DONE": case "DONE":
log.WriteString(fmt.Sprintf("<-- %s", status)) logs.WriteString(fmt.Sprintf("<-- %s", status))
err = syncReadChunkDone err = syncReadChunkDone
return return
case "DATA": case "DATA":
log.WriteString(fmt.Sprintf("<-- %s\t%d\t", status, tmpUint32)) logs.WriteString(fmt.Sprintf("<-- %s\t%d\t", status, tmpUint32))
if chunk, err = sync.ReadBytesN(int(tmpUint32)); err != nil { if chunk, err = sync.ReadBytesN(int(tmpUint32)); err != nil {
return nil, err return nil, err
} }
default: default:
log.WriteString(fmt.Sprintf("<-- %s\t%d\t", status, tmpUint32)) logs.WriteString(fmt.Sprintf("<-- %s\t%d\t", status, tmpUint32))
err = errors.New("unknown error") err = errors.New("unknown error")
} }
log.WriteString("......") logs.WriteString("......")
return return
} }
func (sync syncTransport) ReadDirectoryEntry() (entry DeviceFileInfo, err error) { func (sync syncTransport) ReadDirectoryEntry() (entry DeviceFileInfo, err error) {
@@ -185,43 +187,43 @@ func (sync syncTransport) ReadDirectoryEntry() (entry DeviceFileInfo, err error)
return DeviceFileInfo{}, err return DeviceFileInfo{}, err
} }
log := bytes.NewBufferString(fmt.Sprintf("<-- %s", status)) logs := bytes.NewBufferString(fmt.Sprintf("<-- %s", status))
defer func() { defer func() {
debugLog(log.String()) fmt.Println(logs.String())
}() }()
if status == "DONE" { if status == "DONE" {
return return
} }
log = bytes.NewBufferString(fmt.Sprintf("<-- %s\t", status)) logs = bytes.NewBufferString(fmt.Sprintf("<-- %s\t", status))
if err = binary.Read(sync.sock, binary.LittleEndian, &entry.Mode); err != nil { if err = binary.Read(sync.sock, binary.LittleEndian, &entry.Mode); err != nil {
return DeviceFileInfo{}, fmt.Errorf("sync transport read (mode): %w", err) return DeviceFileInfo{}, fmt.Errorf("sync transport read (mode): %w", err)
} }
log.WriteString(entry.Mode.String() + "\t") logs.WriteString(entry.Mode.String() + "\t")
if entry.Size, err = sync.ReadUint32(); err != nil { if entry.Size, err = sync.ReadUint32(); err != nil {
return DeviceFileInfo{}, fmt.Errorf("sync transport read (size): %w", err) return DeviceFileInfo{}, fmt.Errorf("sync transport read (size): %w", err)
} }
log.WriteString(fmt.Sprintf("%10d", entry.Size) + "\t") logs.WriteString(fmt.Sprintf("%10d", entry.Size) + "\t")
var tmpUint32 uint32 var tmpUint32 uint32
if tmpUint32, err = sync.ReadUint32(); err != nil { if tmpUint32, err = sync.ReadUint32(); err != nil {
return DeviceFileInfo{}, fmt.Errorf("sync transport read (time): %w", err) return DeviceFileInfo{}, fmt.Errorf("sync transport read (time): %w", err)
} }
entry.LastModified = time.Unix(int64(tmpUint32), 0) entry.LastModified = time.Unix(int64(tmpUint32), 0)
log.WriteString(entry.LastModified.String() + "\t") logs.WriteString(entry.LastModified.String() + "\t")
if tmpUint32, err = sync.ReadUint32(); err != nil { if tmpUint32, err = sync.ReadUint32(); err != nil {
return DeviceFileInfo{}, fmt.Errorf("sync transport read (file name length): %w", err) return DeviceFileInfo{}, fmt.Errorf("sync transport read (file name length): %w", err)
} }
log.WriteString(fmt.Sprintf("%d\t", tmpUint32)) logs.WriteString(fmt.Sprintf("%d\t", tmpUint32))
if entry.Name, err = sync.ReadStringN(int(tmpUint32)); err != nil { if entry.Name, err = sync.ReadStringN(int(tmpUint32)); err != nil {
return DeviceFileInfo{}, fmt.Errorf("sync transport read (file name): %w", err) return DeviceFileInfo{}, fmt.Errorf("sync transport read (file name): %w", err)
} }
log.WriteString(entry.Name + "\t") logs.WriteString(entry.Name + "\t")
return return
} }
+4 -5
View File
@@ -8,6 +8,8 @@ import (
"net" "net"
"strconv" "strconv"
"time" "time"
"github.com/rs/zerolog/log"
) )
var ErrConnBroken = errors.New("socket connection broken") var ErrConnBroken = errors.New("socket connection broken")
@@ -32,7 +34,7 @@ func newTransport(address string, readTimeout ...time.Duration) (tp transport, e
func (t transport) Send(command string) (err error) { func (t transport) Send(command string) (err error) {
msg := fmt.Sprintf("%04x%s", len(command), command) msg := fmt.Sprintf("%04x%s", len(command), command)
debugLog(fmt.Sprintf("--> %s", command)) log.Debug().Str("cmd", command).Msg("run adb command")
return _send(t.sock, []byte(msg)) return _send(t.sock, []byte(msg))
} }
@@ -42,7 +44,6 @@ func (t transport) VerifyResponse() (err error) {
return err return err
} }
if status == "OKAY" { if status == "OKAY" {
debugLog(fmt.Sprintf("<-- %s", status))
return nil return nil
} }
@@ -51,7 +52,7 @@ func (t transport) VerifyResponse() (err error) {
return err return err
} }
err = fmt.Errorf("command failed: %s", sError) err = fmt.Errorf("command failed: %s", sError)
debugLog(fmt.Sprintf("<-- %s %s", status, sError)) log.Error().Str("status", status).Str("err", sError).Msg("verify adb response failed")
return return
} }
@@ -63,7 +64,6 @@ func (t transport) ReadStringAll() (s string, err error) {
func (t transport) ReadBytesAll() (raw []byte, err error) { func (t transport) ReadBytesAll() (raw []byte, err error) {
raw, err = ioutil.ReadAll(t.sock) raw, err = ioutil.ReadAll(t.sock)
debugLog(fmt.Sprintf("\r%s", raw))
return return
} }
@@ -84,7 +84,6 @@ func (t transport) UnpackBytes() (raw []byte, err error) {
} }
raw, err = t.ReadBytesN(int(size)) raw, err = t.ReadBytesN(int(size))
debugLog(fmt.Sprintf("\r%s", raw))
return return
} }
-2
View File
@@ -7,8 +7,6 @@ import (
) )
func Test_transport_VerifyResponse(t *testing.T) { func Test_transport_VerifyResponse(t *testing.T) {
SetDebug(true)
transport, err := newTransport("localhost:5037") transport, err := newTransport("localhost:5037")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)