mdlayher / vsock

Package vsock provides access to Linux VM sockets (AF_VSOCK) for communication between a hypervisor and its virtual machines. MIT Licensed.
MIT License
328 stars 65 forks source link

vsock: net.OpError on Conn methods, x/net/nettest integration tests #33

Closed mdlayher closed 5 years ago

mdlayher commented 5 years ago

This still needs a bit more work, but it's getting close.

Fixes #29.

mdlayher commented 5 years ago

makeLocalPipe here is roughly what I propose be added to x/net/nettest in https://github.com/golang/go/issues/30984. Linking for cross-reference.

mdlayher commented 5 years ago

For posterity, with a small log line added:

matt@vmkube01:~$ ./vsock.test -test.v -test.run TestIntegrationNettest
=== RUN   TestIntegrationNettest
2019/03/22 03:03:46 go1.12.1
=== RUN   TestIntegrationNettest/BasicIO
=== RUN   TestIntegrationNettest/PingPong
=== RUN   TestIntegrationNettest/RacyRead
=== RUN   TestIntegrationNettest/RacyWrite
=== RUN   TestIntegrationNettest/ReadTimeout
=== RUN   TestIntegrationNettest/WriteTimeout
=== RUN   TestIntegrationNettest/PastTimeout
=== RUN   TestIntegrationNettest/PresentTimeout
=== RUN   TestIntegrationNettest/FutureTimeout
=== RUN   TestIntegrationNettest/CloseTimeout
=== RUN   TestIntegrationNettest/ConcurrentMethods
--- PASS: TestIntegrationNettest (0.80s)
    --- PASS: TestIntegrationNettest/BasicIO (0.17s)
    --- PASS: TestIntegrationNettest/PingPong (0.02s)
    --- PASS: TestIntegrationNettest/RacyRead (0.16s)
    --- PASS: TestIntegrationNettest/RacyWrite (0.03s)
    --- PASS: TestIntegrationNettest/ReadTimeout (0.00s)
    --- PASS: TestIntegrationNettest/WriteTimeout (0.02s)
    --- PASS: TestIntegrationNettest/PastTimeout (0.00s)
    --- PASS: TestIntegrationNettest/PresentTimeout (0.10s)
    --- PASS: TestIntegrationNettest/FutureTimeout (0.11s)
    --- PASS: TestIntegrationNettest/CloseTimeout (0.11s)
    --- PASS: TestIntegrationNettest/ConcurrentMethods (0.07s)
PASS
coverage: 70.6% of statements
matt@vmkube01:~$ ./vsock.test -test.v -test.run TestIntegrationNettest
=== RUN   TestIntegrationNettest
2019/03/22 03:04:34 go1.11.5
=== RUN   TestIntegrationNettest/BasicIO
=== RUN   TestIntegrationNettest/PingPong
=== RUN   TestIntegrationNettest/RacyRead
=== RUN   TestIntegrationNettest/RacyWrite
=== RUN   TestIntegrationNettest/ReadTimeout
=== RUN   TestIntegrationNettest/WriteTimeout
=== RUN   TestIntegrationNettest/PastTimeout
=== RUN   TestIntegrationNettest/PresentTimeout
=== RUN   TestIntegrationNettest/FutureTimeout
=== RUN   TestIntegrationNettest/CloseTimeout
=== RUN   TestIntegrationNettest/ConcurrentMethods
--- PASS: TestIntegrationNettest (0.63s)
    --- PASS: TestIntegrationNettest/BasicIO (0.09s)
    --- PASS: TestIntegrationNettest/PingPong (0.01s)
    --- PASS: TestIntegrationNettest/RacyRead (0.09s)
    --- PASS: TestIntegrationNettest/RacyWrite (0.01s)
    --- PASS: TestIntegrationNettest/ReadTimeout (0.00s)
    --- PASS: TestIntegrationNettest/WriteTimeout (0.02s)
    --- PASS: TestIntegrationNettest/PastTimeout (0.00s)
    --- PASS: TestIntegrationNettest/PresentTimeout (0.10s)
    --- PASS: TestIntegrationNettest/FutureTimeout (0.11s)
    --- PASS: TestIntegrationNettest/CloseTimeout (0.11s)
    --- PASS: TestIntegrationNettest/ConcurrentMethods (0.08s)
PASS
coverage: 73.2% of statements