Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test infrastructure #389

Closed
samoht opened this issue Mar 20, 2015 · 8 comments
Closed

Test infrastructure #389

samoht opened this issue Mar 20, 2015 · 8 comments

Comments

@samoht
Copy link
Member

samoht commented Mar 20, 2015

This issue tracks the current initiatives to improve the testing infrastructure of MirageOS. Hopefully this should lead to code more easily testable, with a better overall quality.

  • https://github.com/MagnusS/mirage-vnetif

    Virtual network interface and software switch for Mirage. Provides the module Vnetif which can be used as a replacement for the regular V1.NETIF implementation in Xen and Unix. Stacks built using Vnetif are connected to a software switch that allows the stacks to communicate as if they were connected to the same LAN.

  • https://github.com/yomimono/mirage-net-pcap

    mirage-net-pcap is a module that satisfies Mirage's V1.NETWORK module type. It reads from a pcap file (currently, provided by the Mirage crunch interface) and saves writes to memory.

  • https://github.com/mirage/mirage-flow

    create V1.FLOW from various sources

@samoht
Copy link
Member Author

samoht commented Mar 24, 2015

@avsm @MagnusS and @yomimono can you comment what are your current plans on this? (just to check that we actually have a plan :p)

@avsm
Copy link
Member

avsm commented Mar 24, 2015

I want to deploy the OPAM bulk build infrastructure for just the Mirage packages, running in a loop. It will have output similar to : http://www.recoil.org/~avsm/opam-bulk/

It would be extremely convenient if the Mirage test infrastructure could be structured as a set of OPAM packages that run test cases when installed. This way we just package them up in an OPAM remote and run them using this infrastructure regularly.

I think that @mor1 and @koleini should also comment on their plans for mirage-perf, since those are also excellent unit tests.

@MagnusS
Copy link
Member

MagnusS commented Mar 24, 2015

My plan for the vnetif implementation is to make it easier to do automated small scale network tests with unikernels without having to coordinate deployment and network setup. We can also use it to automate tests of the tcp/ip stack, for example with iperf as implemented here.

The implementation supports different backends, so in the longer term the plan is to add support for recording traffic in irmin and to set up more complicated network environments.

@MagnusS
Copy link
Member

MagnusS commented May 1, 2015

mirage-vnetif is now released in opam and I've added iperf and connect tests that can run in travis to the tcp/ip stack here. It should be possible to write network tests for other libraries in a similar way.

@hannesm
Copy link
Member

hannesm commented Jun 3, 2015

based on mirage-net-pcap and mindy's example unikernels I started (and will hopefully finish soon) a trace checker which purpose is to read a pcap file, get the (client and server) tcp flow which should be a TLS connection and check its validity... in order to do so I needed to expose slightly more of the tcpip stack (and it's all not yet finished; ideas and pointers to similar projects appreciated)...

further ideas are to use the same approach to validate recorded pcap traces: take a side, feed inbound packets into stack, compare outbound packets with those generated by the stack (by hooking the write of mirage-net-pcap)

@samoht
Copy link
Member Author

samoht commented Jun 3, 2015

yay!

@yallop yallop added the Testing label Oct 6, 2015
@samoht
Copy link
Member Author

samoht commented Oct 31, 2015

Ping. Can we have an update on that?

@yomimono
Copy link
Contributor

This issue is very fuzzy and somewhat duplicates the more concrete #584 , so I'm closing it for now. Feel free to reopen and comment if you think this is premature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants