Skip to content

Commit

Permalink
Merge pull request #1 from ianfixes/2018-01-25_ci
Browse files Browse the repository at this point in the history
add CI, convert to Arduino library
  • Loading branch information
sdesalas committed Jun 29, 2021
2 parents fd5fece + 3bf1778 commit 3952408
Show file tree
Hide file tree
Showing 8 changed files with 118 additions and 1 deletion.
7 changes: 7 additions & 0 deletions .arduino-ci.yaml
@@ -0,0 +1,7 @@
compile:
platforms:
- uno

unittest:
platforms:
- uno
2 changes: 2 additions & 0 deletions .gitignore
@@ -0,0 +1,2 @@
*.bin
Gemfile.lock
5 changes: 5 additions & 0 deletions .travis.yml
@@ -0,0 +1,5 @@
sudo: false
language: ruby
script:
- bundle install
- bundle exec arduino_ci_remote.rb
2 changes: 2 additions & 0 deletions Gemfile
@@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'arduino_ci', '~> 0.1.7'
1 change: 1 addition & 0 deletions README.md
@@ -1,3 +1,4 @@
[![Build Status](https://travis-ci.org/sdesalas/Arduino-Queue.h.svg)](https://travis-ci.org/sdesalas/Arduino-Queue.h)
# Queue.h

[Generic](https://en.wikipedia.org/wiki/Generic_programming) C++ circular queue for Arduino embedded projects.
Expand Down
2 changes: 1 addition & 1 deletion queue_test.ino → examples/queue_test/queue_test.ino
Expand Up @@ -28,7 +28,7 @@ void loop() {
Serial.print(queue.peek());
Serial.println("'.");
} else {
Serial.println("Nothing to process...");
Serial.println("Nothing to process...");
}
delay(2000);
}
10 changes: 10 additions & 0 deletions library.properties
@@ -0,0 +1,10 @@
name=Queue
version=0.0.1
author=Steven de Salas <steven@desalasworks.com>
maintainer=Steven de Salas <steven@desalasworks.com>
sentence=Generic C++ circular queue
paragraph=Works for any datatype and desired length
category=Data Storage
url=https://github.com/sdesalas/Arduino-Queue.h
architectures=*
includes=Queue.h
90 changes: 90 additions & 0 deletions test/queue-tests.cpp
@@ -0,0 +1,90 @@
#include <ArduinoUnitTests.h>
#include "../Queue.h"

int testSize = 4; // number of elements we'll use in our test queues

unittest(empty)
{
Queue<int> queue(testSize);
assertEqual(0, queue.count()); // initially empty
assertEqual(0, queue.peek()); // 0 happens to be the default int val
assertEqual(0, queue.pop());
assertEqual(0, queue.count()); // still empty
}

unittest(filling_and_emptying)
{
Queue<int> queue(testSize);
assertEqual(0, queue.count()); // initially empty
for (int i = 1; i <= testSize; ++i) {
queue.push(i * 11);
assertEqual(i, queue.count()); // count increases with pushes
}
for (int i = 1; i <= testSize; ++i) {
assertEqual(i * 11, queue.peek()); // verify FIFO
assertEqual(testSize + 1 - i, queue.count()); // verify count unchanged
assertEqual(i * 11, queue.pop()); // verify FIFO
assertEqual(testSize - i, queue.count()); // verify count changed
}
}

unittest(filling_and_clearing)
{
Queue<int> queue(testSize);
assertEqual(0, queue.count()); // initially empty
for (int i = 1; i <= testSize; ++i) {
queue.push(i * 11);
assertEqual(i, queue.count()); // count increases with pushes
}
assertEqual(testSize, queue.count()); // now full
queue.clear();
assertEqual(0, queue.count()); // again empty
}

unittest(overfilling)
{
Queue<int> queue(testSize);
assertEqual(0, queue.count()); // initially empty
for (int i = 1; i <= testSize; ++i) {
queue.push(i * 11);
}
assertEqual(testSize, queue.count()); // now full
for (int i = (testSize + 1); i <= testSize * 2; ++i) {
queue.push(i * 11);
assertEqual(testSize, queue.count()); // still full
}

for (int i = 1; i <= testSize; ++i) {
assertEqual(i * 11, queue.peek()); // verify FIFO
assertEqual(testSize + 1 - i, queue.count()); // verify count unchanged
assertEqual(i * 11, queue.pop()); // verify FIFO
assertEqual(testSize - i, queue.count()); // verify count changed
}
}

unittest(wrapping)
{
Queue<int> queue(testSize);
queue.push(0); // offset the queue so we have to wrap around
queue.push(1);
queue.pop();
queue.pop();

for (int i = 1; i <= testSize; ++i) {
queue.push(i * 11);
}
assertEqual(testSize, queue.count()); // now full
for (int i = (testSize + 1); i <= testSize * 2; ++i) {
queue.push(i * 11);
assertEqual(testSize, queue.count()); // still full
}

for (int i = 1; i <= testSize; ++i) {
assertEqual(i * 11, queue.peek()); // verify FIFO
assertEqual(testSize + 1 - i, queue.count()); // verify count unchanged
assertEqual(i * 11, queue.pop()); // verify FIFO
assertEqual(testSize - i, queue.count()); // verify count changed
}
}

unittest_main()

0 comments on commit 3952408

Please sign in to comment.