commit f4f8f78589d78039179f3bf537a5ca0377de87f9
parent 3cb0e48677685d6afce4894dbca6b435c8e4ba91
Author: Matsuda Kenji <info@mtkn.jp>
Date: Fri, 22 Dec 2023 08:15:14 +0900
fix broken test
Diffstat:
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