From 4d582234226f9c25cab6bfee5f4564dfaa9409e1 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Thu, 3 Jun 2021 14:19:24 -0700 Subject: [PATCH] switch file.go to test reads instead of writes --- file.go | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/file.go b/file.go index 5804c73c5..ba9c4ca19 100644 --- a/file.go +++ b/file.go @@ -1,37 +1,34 @@ package main import ( - "fmt" "os" - "syscall" - "time" "tailscale.com/net/uring" ) func main() { - // f, err := os.Create("junk") - // check(err) - // _, err = f.Write([]byte("CMON\n")) - // check(err) + const msg = "hello, I am here\n" + err := os.WriteFile("junk", []byte(msg), 0644) + check(err) - fd, err := syscall.Open("trash", syscall.O_RDWR|syscall.O_CREAT|syscall.O_TRUNC, 0644) + f, err := os.Open("junk") check(err) - n, err := syscall.Write(int(fd), []byte("part two\n")) - check(err) - fmt.Println("N", n) + defer f.Close() - ff := os.NewFile(uintptr(fd), "trash") - uf, err := uring.NewFile(ff) + uf, err := uring.NewFile(f) check(err) - for i := 0; i < 1; i++ { - s := fmt.Sprintf("i can count to %d\x00\n", i) - n, err := uf.Write([]byte(s), n) - check(err) - fmt.Println("wrote", n, "bytes") - time.Sleep(3 * time.Second) + for i := 0; i < 1000; i++ { + go func() { + buf := make([]byte, 100) + n, err := uf.Read(buf) + check(err) + if n != len(msg) || string(buf[:n]) != msg { + panic("OOPS") + } + }() } - syscall.Close(fd) + // fmt.Println("read", n, "bytes") + // fmt.Println(string(buf[:n])) } func check(err error) {