Unit testing a TCP stack (2015)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • GitHub repo gvisor

    Application Kernel for Containers

    I couldn't make it past serializarion/deserialization logic in my own hobbiest TCP/IP stack. Even that part was super buggy. Next time around I'm definitely going to be unit testing more parts otherwise it's too hard for a beginner to get the easy parts right let alone the harder parts.

    Also, take a look at gvisor's network stack. It's definitely unit tested.

    https://github.com/google/gvisor/tree/master/pkg/tcpip/link/... (an example)

  • GitHub repo it491-disabler-ai

    State machine for IT491

    There's a lot of push back from engineers - especially people at lower levels of the stack - against testing infrastructure. One particularly famous example is Linux. Rather than testing before merging in code, they merge in code and then test the release candidate as a whole. It also seems game developers are extremely against automated testing frameworks as a whole. I've heard many times that it would be impossible to develop an enemy AI in a test-driven way (I did this for a senior project in college - finished the AI before the game was able to even start testing it [0]).

    I wonder what would need to happen to convince people that:

    1. Even if you do something extremely low level, you can draw a distinction between your hardware and the interface that 99% of your software runs at.

    2. You can develop complex behaviors iteratively with automated testing just like you can develop complex programs iteratively (tests are just programs).

    [0] - https://github.com/gravypod/it491-disabler-ai

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo quiche

    🥧 Savoury implementation of the QUIC transport protocol and HTTP/3

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts