diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..8c7c116 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,46 @@ +language: ruby +sudo: false + +# Disabling cache to make speed comparison more fair +# cache: +# directories: +# - ~/arduino_ide +# files: +# - ~/arduino-*-linux64.tar.xz + + +env: + global: + - ARDUINO_IDE_VERSION="1.8.6" + + +git: + depth: false + quiet: true + +jobs: + include: + # One job is the CI script defined by Adafruit/travis-ci-arduino + # It's configured here and using .skip files + - + name: travis-ci-arduino + before_install: + - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) + install: + - echo "this is the 'install' section of .travis.yml" + script: + - build_main_platforms + + # The other job is the CI script defined by ianfixes/arduino_ci + # It's launched here and uses .arduino-ci.yml (if provided) for customization + - + name: arduino_ci + os: osx + script: + - bundle install + - bundle exec arduino_ci_remote.rb + +notifications: + email: + on_success: change + on_failure: change diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..4867481 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem 'arduino_ci', '~> 0.1.14' diff --git a/examples/gridtest/gridtest.pde b/examples/gridtest/gridtest.ino similarity index 100% rename from examples/gridtest/gridtest.pde rename to examples/gridtest/gridtest.ino diff --git a/examples/strandtest/strandtest.pde b/examples/strandtest/strandtest.ino similarity index 100% rename from examples/strandtest/strandtest.pde rename to examples/strandtest/strandtest.ino diff --git a/test/strip.cpp b/test/strip.cpp new file mode 100644 index 0000000..2f21078 --- /dev/null +++ b/test/strip.cpp @@ -0,0 +1,44 @@ +#include +#include "../Adafruit_WS2801.h" + +unittest(set_strip_values) +{ + GodmodeState* state = GODMODE(); + state->reset(); + + // create strip of length 10 + Adafruit_WS2801 strip; + strip = Adafruit_WS2801(10, 3, 2); + strip.begin(); + strip.show(); + assertEqual(30, state->digitalPin[3].toAscii(1, true).length()); + + // set all 10 pixels to some arbitrary HSV value + for (int i = 0; i < 10; ++i) { + strip.setPixelColor(i, 500); + } + strip.show(); + + assertEqual(60, state->digitalPin[3].toAscii(1, true).length()); + + // pin 2 is the clock pin, we expect 0xAA, which is 0b10101010 + assertEqual(0xAA, (unsigned char)(state->digitalPin[2].toAscii(1, true)[0])); + assertEqual(0xAA, (unsigned char)(state->digitalPin[2].toAscii(1, true)[1])); + assertEqual(0xAA, (unsigned char)(state->digitalPin[2].toAscii(1, true)[2])); + + // pin 3 is the data, we expect 3 byte groups, all zeroes + assertEqual(0, (unsigned int)(state->digitalPin[3].toAscii(1, true)[0])); + assertEqual(0, (unsigned int)(state->digitalPin[3].toAscii(1, true)[1])); + assertEqual(0, (unsigned int)(state->digitalPin[3].toAscii(1, true)[2])); + + // the second 30 bytes will be our pixel color. not sure what to expect + // but I _do_ expect it to repeat + assertEqual(0, (unsigned int)(state->digitalPin[3].toAscii(1, true)[30])); + assertEqual(1, (unsigned int)(state->digitalPin[3].toAscii(1, true)[31])); + assertEqual(4294967284, (unsigned int)(state->digitalPin[3].toAscii(1, true)[32])); + assertEqual(0, (unsigned int)(state->digitalPin[3].toAscii(1, true)[33])); + assertEqual(1, (unsigned int)(state->digitalPin[3].toAscii(1, true)[34])); + assertEqual(4294967284, (unsigned int)(state->digitalPin[3].toAscii(1, true)[35])); +} + +unittest_main()