forked from Arduino-CI/arduino_ci
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwire.cpp
68 lines (62 loc) · 1.8 KB
/
wire.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <ArduinoUnitTests.h>
#include <Arduino.h>
#include <Wire.h>
using std::deque;
unittest(begin_write_end) {
deque<uint8_t>* mosi = Wire.getMosi(14);
assertEqual(0, mosi->size());
Wire.begin();
Wire.beginTransmission(14);
Wire.write(0x07);
Wire.write(0x0E);
Wire.endTransmission();
assertEqual(2, mosi->size());
assertEqual(0x07, mosi->front());
mosi->pop_front();
assertEqual(0x0E, mosi->front());
mosi->pop_front();
assertEqual(0, mosi->size());
}
unittest(readTwo_writeOne) {
Wire.begin();
deque<uint8_t>* miso;
miso = Wire.getMiso(19);
miso->push_back(0x07);
miso->push_back(0x0E);
miso = Wire.getMiso(34);
miso->push_back(1);
miso->push_back(4);
miso->push_back(7);
assertEqual(0, Wire.requestFrom(19, 3));
assertEqual(2, Wire.requestFrom(19, 2));
assertEqual(2, Wire.available());
assertEqual(0x07, Wire.read());
assertEqual(1, Wire.available());
assertEqual(0x0E, Wire.read());
assertEqual(0, Wire.available());
assertEqual(3, Wire.requestFrom(34, 3));
assertEqual(3, Wire.available());
assertEqual(1, Wire.read());
assertEqual(2, Wire.available());
assertEqual(4, Wire.read());
assertEqual(1, Wire.available());
assertEqual(7, Wire.read());
assertEqual(0, Wire.available());
Wire.beginTransmission(47);
for (int i = 1; i < 4; i++) {
Wire.write(i * 2);
}
Wire.endTransmission();
deque<uint8_t>* mosi = Wire.getMosi(47);
assertEqual(3, mosi->size());
assertEqual(2, mosi->front());
mosi->pop_front();
assertEqual(2, mosi->size());
assertEqual(4, mosi->front());
mosi->pop_front();
assertEqual(1, mosi->size());
assertEqual(6, mosi->front());
mosi->pop_front();
assertEqual(0, mosi->size());
}
unittest_main()