It cropped up in a different place, but this time I was able to reproduce it on two different computers (one Ubuntu, and one Mac, both running 1.0.3). I'll be testing this weekend with a different Arduino board to confirm it's not the board (it's very
unlikely to be the board), but the attached code reliably fails on the get_sched_with_too_small_addr_returns_empty_sched test. First, the error output:
Running test suite...
Equality assertion failed in 'get_sched_with_too_small_addr_returns_empty_sched' on line 28: expected '0' but was '1239'
Tests run: 15 Successful: 14 Failed: 1
I added some commentary in the eeprom.ino file at the bottom, which is the failing function. The execution isn't even hitting the code that's causing the problem (that call to EEPROM.read(100)), but when it's in the file, the problem crops up. When I take it out, or put something else there (keep in mind it's not being executed as part of the failing test), the test succeeds. There's something special about adding any kind of call to EEPROM that's causing the problem.
I tried using EEPROMEx, but it had the exact same issue.
Interestingly, the actual value reported (1239 in this case) changes between machines and compiles as I add or remove code, but I presume that's due to the changing set of char arrays ArduinoUnit is installing. More interestingly, this test case fails whether or not the control_hardware* files from the do_not_compile directory are included in the build or not.
I would be interested to know whether anyone else is having the same problem using this code and 1.0.3. To compile and test, you'll need the current version of ArduinoUnit: http://code.google.com/p/arduinounit/downloads/detail?name=arduinounit-1.5.zip&can=2&q=
. Compile, upload and start the serial monitor at 9600 baud: you should see the error message I listed above.