switch file.go to test reads instead of writes

This commit is contained in:
Josh Bleecher Snyder
2021-06-03 14:19:24 -07:00
parent b05f305eaf
commit 4d58223422

37
file.go
View File

@@ -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) {