lib9p

Go 9P library.
Log | Files | Refs | LICENSE

commit f4f8f78589d78039179f3bf537a5ca0377de87f9
parent 3cb0e48677685d6afce4894dbca6b435c8e4ba91
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Fri, 22 Dec 2023 08:15:14 +0900

fix broken test

Diffstat:
Mexport_test.go | 3+++
Mserver.go | 1+
Mserver_test.go | 61++++++-------------------------------------------------------
3 files changed, 10 insertions(+), 55 deletions(-)

diff --git a/export_test.go b/export_test.go @@ -74,3 +74,5 @@ func (s *Server) RunSpeaker(ctx context.Context) { func (rp *ReqPool) Add(tag uint16) (*Req, error) { return rp.add(tag) } func (fp *FidPool) Lookup(fid uint32) (*Fid, bool) { return fp.lookup(fid) } + +func MarshalMsg(m Msg) []byte { return m.marshal() } +\ No newline at end of file diff --git a/server.go b/server.go @@ -961,6 +961,7 @@ func (s *Server) Serve(ctx context.Context) { defer close(versionChan) go sVersion(ctx, s, versionChan) go Respond2(ctx, s) + L: for { select { diff --git a/server_test.go b/server_test.go @@ -2,7 +2,6 @@ package lib9p_test import ( "context" - "fmt" "io" "path" "strings" @@ -12,48 +11,6 @@ import ( "git.mtkn.jp/lib9p/testfs" ) -func newReq(s *lib9p.Server, msg lib9p.Msg) (*lib9p.Req, error) { - r, err := s.RPool().Add(msg.GetTag()) - if err != nil { - return nil, fmt.Errorf("lib9p.ReqPool.add(%d): %w", msg.GetTag(), err) - } - r.Srv = s - r.Tag = msg.GetTag() - r.Ifcall = msg - return r, nil -} - -func handleReq(ctx context.Context, s *lib9p.Server, r *lib9p.Req) { - switch r.Ifcall.(type) { - default: - lib9p.Respond(ctx, r, fmt.Errorf("unknown message type: %d", r.Ifcall.Type())) - case *lib9p.TVersion: - lib9p.SrvVersion(ctx, s, r) - case *lib9p.TAuth: - lib9p.SrvAuth(ctx, s, r) - case *lib9p.TAttach: - lib9p.SrvAttach(ctx, s, r) - case *lib9p.TWalk: - lib9p.SrvWalk(ctx, s, r) - case *lib9p.TOpen: - lib9p.SrvOpen(ctx, s, r) - case *lib9p.TCreate: - lib9p.SrvCreate(ctx, s, r) - case *lib9p.TRead: - lib9p.SrvRead(ctx, s, r) - case *lib9p.TWrite: - lib9p.SrvWrite(ctx, s, r) - case *lib9p.TClunk: - lib9p.SrvClunk(ctx, s, r) - case *lib9p.TRemove: - lib9p.SrvRemove(ctx, s, r) - case *lib9p.TStat: - lib9p.SrvStat(ctx, s, r) - case *lib9p.TWStat: - lib9p.SrvWStat(ctx, s, r) - } -} - // This function does the actual work for TestWalk(). func testWalk(t *testing.T, fs *testfs.TestFS, pathname string, file *testfs.TestFile) { t.Logf("walk %s", pathname) @@ -142,7 +99,7 @@ func TestServer(t *testing.T) { Tag: 0, Fid: 1, Offset: 2, - Count: 4, + Count: 1, Data: []byte("a"), }, &lib9p.TRead{ @@ -155,24 +112,18 @@ func TestServer(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() s := lib9p.NewServer(testfs.FS, 1024, sr, sw) - s.RunListener(ctx) - s.RunSpeaker(ctx) + go s.Serve(ctx) for _, m := range msg { - r, err := newReq(s, m) + buf := lib9p.MarshalMsg(m) + _, err := cw.Write(buf) if err != nil { - t.Fatalf("newReq: %v", err) - return + t.Fatalf("write: %v", err) } - t.Logf("<-- %v\n", r.Ifcall) - go handleReq(ctx, s, r) - buf := make([]byte, 1024) - + buf = make([]byte, 1024) _, err = cr.Read(buf) if err != nil { t.Fatalf("read: %v", err) } - t.Logf("--> %v\n", lib9p.BufMsg(buf)) - if lib9p.BufMsg(buf).Type() == lib9p.Rread { rread := lib9p.NewRRead(buf) data := rread.Data