mirror of
https://github.com/tailscale/tailscale.git
synced 2026-04-04 06:36:01 -04:00
switch file.go to test reads instead of writes
This commit is contained in:
37
file.go
37
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) {
|
||||
|
||||
Reference in New Issue
Block a user