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
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • 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)

  • 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

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • 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