lib9p

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

commit 54b8547e46c57f6a208bf3efd5a40e9cca9df833
parent c948d3b33c2cf1775263cf57bec489ae8392fd4e
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Sat, 16 Dec 2023 08:46:01 +0900

add test for diskfs/stat

Diffstat:
Mdiskfs/stat_unix.go | 1+
Adiskfs/stat_unix_test.go | 42++++++++++++++++++++++++++++++++++++++++++
Mserver.go | 4++--
3 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/diskfs/stat_unix.go b/diskfs/stat_unix.go @@ -83,6 +83,7 @@ func (f *File) stat() (*lib9p.FileInfo, error) { } stat.Uid = usr.Username gid := fsfi.Sys().(*syscall.Stat_t).Gid + // TODO: this call is time consuming. group, err := user.LookupGroupId(strconv.Itoa(int(gid))) if err != nil { return nil, fmt.Errorf("LookupGroupId(%d): %v", gid, err) diff --git a/diskfs/stat_unix_test.go b/diskfs/stat_unix_test.go @@ -0,0 +1,41 @@ +package diskfs + +import ( + "context" + "io" + "testing" + + "git.mtkn.jp/lib9p" + "git.mtkn.jp/lib9p/client" +) + +var testdir string = "../testdir" + +func BenchmarkGID(b *testing.B) { + cr, sw := io.Pipe() + defer cr.Close() + defer sw.Close() + sr, cw := io.Pipe() + defer sr.Close() + defer cw.Close() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + disk, err := Open(testdir) + if err != nil { + b.Fatalf("open dir: %v", err) + } + s := lib9p.NewServer(disk, 8*1024, sr, sw) + go s.Serve(ctx) + c := client.NewClient(8*1024, "kenji", cr, cw) + defer c.Stop() + _, err = c.Attach(ctx, ^uint16(0), 0, lib9p.NOFID, "kenji", "") + if err != nil { + b.Fatalf("attach: %v", err) + } + for i := 0; i < b.N; i++ { + _, err := c.Stat(ctx, 0, 0) + if err != nil { + b.Fatalf("stat: %v", err) + } + } +} +\ No newline at end of file diff --git a/server.go b/server.go @@ -964,7 +964,7 @@ L: } }() case <-ctx.Done(): - log.Println(ctx.Err()) + //log.Println(ctx.Err()) break L } } @@ -1027,6 +1027,6 @@ func Respond(ctx context.Context, r *Req, err error) { log.Printf("speak: %v", err) } case <-ctx.Done(): - log.Printf("respond: %v", ctx.Err()) + //log.Printf("respond: %v", ctx.Err()) } }