arduino_ci 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/cpp/arduino/Arduino.h.orig +143 -0
- data/cpp/unittest/ArduinoUnitTests.h +2 -2
- data/lib/arduino_ci/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36ae4dec579913479fdb655f0bf7be717b055149
|
4
|
+
data.tar.gz: ba9d142cd8c840a9bd54ec84efa4e6351ddc45b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfaefbfed33fa5dc78c8c106311c8896328f3416557a640f1b5366bb3f2278de8993da41386073aca8d274c8de03b405f7b991fdd91068ecf80ff9c3f3bff421
|
7
|
+
data.tar.gz: 7c56fe74249b2849338a6f439361d658ed49ff9e68b7e5cb3b73d686542a08ada22d45b036d03e0b6196807ed229fa6c0a330f88ba6723b45de2add5b6f351c1
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
# ArduinoCI Ruby gem (`arduino_ci`) [](https://rubygems.org/gems/arduino_ci) [](http://www.rubydoc.info/gems/arduino_ci/0.1.
|
2
|
+
# ArduinoCI Ruby gem (`arduino_ci`) [](https://rubygems.org/gems/arduino_ci) [](http://www.rubydoc.info/gems/arduino_ci/0.1.20)
|
3
3
|
|
4
4
|
You want to run tests on your Arduino library (bonus: without hardware present), but the IDE doesn't support that. Arduino CI provides that ability.
|
5
5
|
|
@@ -0,0 +1,143 @@
|
|
1
|
+
#pragma once
|
2
|
+
/*
|
3
|
+
Mock Arduino.h library.
|
4
|
+
|
5
|
+
Where possible, variable names from the Arduino library are used to avoid conflicts
|
6
|
+
|
7
|
+
*/
|
8
|
+
// Chars and strings
|
9
|
+
|
10
|
+
#include "ArduinoDefines.h"
|
11
|
+
|
12
|
+
#include "WCharacter.h"
|
13
|
+
#include "WString.h"
|
14
|
+
#include "Print.h"
|
15
|
+
#include "Stream.h"
|
16
|
+
#include "HardwareSerial.h"
|
17
|
+
#include "SPI.h"
|
18
|
+
#include "Nullptr.h"
|
19
|
+
|
20
|
+
typedef bool boolean;
|
21
|
+
typedef uint8_t byte;
|
22
|
+
|
23
|
+
#include "binary.h"
|
24
|
+
|
25
|
+
// Math and Trig
|
26
|
+
#include "AvrMath.h"
|
27
|
+
|
28
|
+
#include "Godmode.h"
|
29
|
+
|
30
|
+
|
31
|
+
// Bits and Bytes
|
32
|
+
#define bit(b) (1UL << (b))
|
33
|
+
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
|
34
|
+
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
|
35
|
+
#define bitSet(value, bit) ((value) |= (1UL << (bit)))
|
36
|
+
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
|
37
|
+
#define highByte(w) ((uint8_t) ((w) >> 8))
|
38
|
+
#define lowByte(w) ((uint8_t) ((w) & 0xff))
|
39
|
+
|
40
|
+
// Arduino defines this
|
41
|
+
#define _NOP() do { 0; } while (0)
|
42
|
+
|
43
|
+
// might as well use that NO-op macro for these, while unit testing
|
44
|
+
// you need interrupts? interrupt yourself
|
45
|
+
#define yield() _NOP()
|
46
|
+
#define interrupts() _NOP()
|
47
|
+
#define noInterrupts() _NOP()
|
48
|
+
|
49
|
+
// TODO: correctly establish this per-board!
|
50
|
+
#define F_CPU 1000000UL
|
51
|
+
#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
|
52
|
+
#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() )
|
53
|
+
#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() )
|
54
|
+
|
55
|
+
typedef unsigned int word;
|
56
|
+
|
57
|
+
#define bit(b) (1UL << (b))
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
/*
|
62
|
+
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout);
|
63
|
+
unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout);
|
64
|
+
|
65
|
+
void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
|
66
|
+
uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
|
67
|
+
|
68
|
+
*/
|
69
|
+
|
70
|
+
// Get the bit location within the hardware port of the given virtual pin.
|
71
|
+
// This comes from the pins_*.c file for the active board configuration.
|
72
|
+
|
73
|
+
#define analogInPinToBit(P) (P)
|
74
|
+
#define digitalPinToInterrupt(P) (P)
|
75
|
+
|
76
|
+
/*
|
77
|
+
// On the ATmega1280, the addresses of some of the port registers are
|
78
|
+
// greater than 255, so we can't store them in uint8_t's.
|
79
|
+
extern const uint16_t PROGMEM port_to_mode_PGM[];
|
80
|
+
extern const uint16_t PROGMEM port_to_input_PGM[];
|
81
|
+
extern const uint16_t PROGMEM port_to_output_PGM[];
|
82
|
+
|
83
|
+
extern const uint8_t PROGMEM digital_pin_to_port_PGM[];
|
84
|
+
// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[];
|
85
|
+
extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[];
|
86
|
+
extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
|
87
|
+
|
88
|
+
// Get the bit location within the hardware port of the given virtual pin.
|
89
|
+
// This comes from the pins_*.c file for the active board configuration.
|
90
|
+
//
|
91
|
+
// These perform slightly better as macros compared to inline functions
|
92
|
+
//
|
93
|
+
#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) )
|
94
|
+
#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) )
|
95
|
+
#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) )
|
96
|
+
#define analogInPinToBit(P) (P)
|
97
|
+
#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) )
|
98
|
+
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) )
|
99
|
+
#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) )
|
100
|
+
|
101
|
+
*/
|
102
|
+
|
103
|
+
|
104
|
+
/* TODO
|
105
|
+
|
106
|
+
// USB
|
107
|
+
#include "USBAPI.h"
|
108
|
+
Keyboard
|
109
|
+
Mouse
|
110
|
+
|
111
|
+
*/
|
112
|
+
|
113
|
+
// uint16_t makeWord(uint16_t w);
|
114
|
+
// uint16_t makeWord(byte h, byte l);
|
115
|
+
inline unsigned int makeWord(unsigned int w) { return w; }
|
116
|
+
inline unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; }
|
117
|
+
|
118
|
+
#define word(...) makeWord(__VA_ARGS__)
|
119
|
+
|
120
|
+
<<<<<<< Updated upstream
|
121
|
+
|
122
|
+
=======
|
123
|
+
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
|
124
|
+
unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
|
125
|
+
|
126
|
+
// audio is taken care of in GODMODE
|
127
|
+
|
128
|
+
|
129
|
+
// BIG TODO ON THIS ONE
|
130
|
+
// $ find . | grep pins_
|
131
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/circuitplay32u4/pins_arduino.h
|
132
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/eightanaloginputs/pins_arduino.h
|
133
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/ethernet/pins_arduino.h
|
134
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/gemma/pins_arduino.h
|
135
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/leonardo/pins_arduino.h
|
136
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/mega/pins_arduino.h
|
137
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/micro/pins_arduino.h
|
138
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/robot_control/pins_arduino.h
|
139
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/robot_motor/pins_arduino.h
|
140
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/standard/pins_arduino.h
|
141
|
+
// ./arduino-1.8.5/hardware/arduino/avr/variants/yun/pins_arduino.h
|
142
|
+
// #include "pins_arduino.h"
|
143
|
+
>>>>>>> Stashed changes
|
@@ -154,7 +154,9 @@ class Test
|
|
154
154
|
p->mReporter = reporter;
|
155
155
|
TestData t1 = {p->name(), p->result()};
|
156
156
|
if (reporter) reporter->onTestStart(t1);
|
157
|
+
if (TestSetup::sInstance) TestSetup::sInstance->run();
|
157
158
|
p->test();
|
159
|
+
if (TestTeardown::sInstance) TestTeardown::sInstance->run();
|
158
160
|
if (p->mResult == RESULT_PASS) ++results.passed;
|
159
161
|
if (p->mResult == RESULT_FAIL) ++results.failed;
|
160
162
|
if (p->mResult == RESULT_SKIP) ++results.skipped;
|
@@ -172,9 +174,7 @@ class Test
|
|
172
174
|
static int run_and_report(int argc, char *argv[]) {
|
173
175
|
// TODO: pick a reporter based on args
|
174
176
|
ReporterTAP rep;
|
175
|
-
if (TestSetup::sInstance) TestSetup::sInstance->run();
|
176
177
|
Results results = run(&rep);
|
177
|
-
if (TestTeardown::sInstance) TestTeardown::sInstance->run();
|
178
178
|
return results.failed + results.skipped;
|
179
179
|
}
|
180
180
|
|
data/lib/arduino_ci/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arduino_ci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Katz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: os
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- README.md
|
124
124
|
- cpp/arduino/Arduino.cpp
|
125
125
|
- cpp/arduino/Arduino.h
|
126
|
+
- cpp/arduino/Arduino.h.orig
|
126
127
|
- cpp/arduino/ArduinoDefines.h
|
127
128
|
- cpp/arduino/AvrMath.h
|
128
129
|
- cpp/arduino/Godmode.cpp
|