Attendee preparations

For the TDD training activities, students only need a computer with a modern web browser, internet access. For the optional Legacy Code Workshop days, students need a local development environment on their machines. Attendees will receive a prep email the week before the training with their action items.

Prerequisites for courses taught in C

You will be creating new C functions in the TDD training class. We find that some programmers are rusty on creating new functions. If that is you, please practice creating some new functions. This would include adding a function declarations to header files, and adding definitions to the source files. Here is a reference for C functions. You may also want to brush up on your C scoping rules.

Prerequisites for courses taught in C++

If you are new to C++, or a little rusty, please spend some time before class refreshing your C++. Here is a link to a C++ reference. Attendees should be familiar with that page as well as these topics. They are linked toward the bottom of the page.

  • Class member functions
  • Class access modifiers
  • Constructor & destructor
  • Pointer to C++ objects
  • References to C++ objects

  • There is a lot more to C++ than just those topics, but that is enough to get started. Don't worry if you are not an expert. We do exercises in pairs, so you can learn from each other.

    Legacy Code Workshop Tooling

    A couple weeks before an on-site course, we'll meet to discuss your off-target test environment.

    Embedded C and C++ Off-Target Development Environment Options

    You will need one of these off-target build and execution environments:
  • Linux: gcc or clang
  • Mac: gcc or clang
  • Windows: Linux virtual machine running in Docker
  • Windows: Linux virtual machine running in VirtualBox
  • Windows: cygwin (Default install + 'Devel' package)
  • Windows: Visual Studio 2012 or later

  • For windows, we highly recomend using Docker for your unit test environment.

    Non-Embedded C/C++Workshops

  • Likely that no special build tools are needed
  • Install the test harness of your choice and get a simple example test running

  • Starter kits for C and C++

    James provides starter kits and instructions for getting a CppUTest environment set up.
  • CppUTest gcc starter kit -- you may need to tweak the warn ing flags.
  • CppUTest Visual Studio starter kit -- you may have to tweak the project files.

  • You will also want to clone legacy-build script, for use in the workshop.

    Why do I need different development tools for the legacy code workshop?

    Unless you are a special case, your target build and execution environment is slowing you down. One goal of our TDD training and workshop is to help you get your code off the target for unit testing. We'll discuss many advantages during the course. In this training we'll start to reduce the impact of the target hardware bottleneck from your daily work.