1
1
#include < ArduinoUnitTests.h>
2
2
#include < Arduino.h>
3
- #include < vector>
4
- #include < map>
5
-
6
3
#include < Wire.h>
7
4
using namespace std ;
8
5
9
- unittest (beginAsMaster) {
10
- Wire.begin ();
11
- assertTrue (Wire.getIsMaster ());
12
- }
13
-
14
- unittest (beginAsSlave) {
15
- Wire.begin (13 );
16
- assertFalse (Wire.getIsMaster ());
17
- }
18
-
19
- unittest (getMasterAddress) {
20
- Wire.begin ();
21
- assertEqual (0 , Wire.getAddress ());
22
- }
23
-
24
- unittest (getSlaveAddress) {
25
- Wire.begin (13 );
26
- assertEqual (13 , Wire.getAddress ());
27
- }
28
-
29
6
unittest (begin_write_end) {
7
+ deque<uint8_t >* mosi = Wire.getMosi (14 );
8
+ assertEqual (0 , mosi->size ());
30
9
Wire.begin ();
31
10
Wire.beginTransmission (14 );
32
- assertEqual (14 , Wire.getAddress ());
33
-
34
- assertTrue (Wire.isTxBufferEmpty ());
35
-
36
11
Wire.write (0x07 );
37
12
Wire.write (0x0E );
38
- assertEqual (0x07 , Wire.getTxBufferElement (0 ));
39
- assertEqual (0x0E , Wire.getTxBufferElement (1 ));
40
-
41
13
Wire.endTransmission ();
42
- assertTrue (Wire.isTxBufferEmpty ());
43
-
44
- vector<int > finalData = {0x07 , 0x0E };
45
- assert (finalData == Wire.getDataWritten (14 ));
14
+ assertEqual (2 , mosi->size ());
15
+ assertEqual (0x07 , mosi->front ());
16
+ mosi->pop_front ();
17
+ assertEqual (0x0E , mosi->front ());
18
+ mosi->pop_front ();
19
+ assertEqual (0 , mosi->size ());
46
20
}
47
21
48
22
unittest (readTwo_writeOne) {
49
23
Wire.begin ();
50
-
51
- vector<int > data1 = {0x07 , 0x0E }, data2 = {1 , 4 , 7 };
52
- Wire.setDataToRead (19 , data1);
53
- Wire.setDataToRead (34 , data2);
24
+ deque<uint8_t >* miso;
25
+ miso = Wire.getMiso (19 );
26
+ miso->push_back (0x07 );
27
+ miso->push_back (0x0E );
28
+ miso = Wire.getMiso (34 );
29
+ miso->push_back (1 );
30
+ miso->push_back (4 );
31
+ miso->push_back (7 );
54
32
55
- assertEqual (2 , Wire.requestFrom (19 , 1 ));
56
- assertEqual (3 , Wire.requestFrom (34 , 1 ));
57
- assertEqual (data1.size () + data2.size (), Wire.getRxBufferSize ());
33
+ assertEqual (0 , Wire.requestFrom (19 , 3 ));
34
+ assertEqual (2 , Wire.requestFrom (19 , 2 ));
35
+ assertEqual (2 , Wire.available ());
36
+ assertEqual (0x07 , Wire.read ());
37
+ assertEqual (1 , Wire.available ());
38
+ assertEqual (0x0E , Wire.read ());
39
+ assertEqual (0 , Wire.available ());
40
+ assertEqual (3 , Wire.requestFrom (34 , 3 ));
41
+ assertEqual (3 , Wire.available ());
42
+ assertEqual (1 , Wire.read ());
43
+ assertEqual (2 , Wire.available ());
44
+ assertEqual (4 , Wire.read ());
45
+ assertEqual (1 , Wire.available ());
46
+ assertEqual (7 , Wire.read ());
47
+ assertEqual (0 , Wire.available ());
58
48
59
49
Wire.beginTransmission (47 );
60
- assertEqual (47 , Wire.getAddress ());
61
- assertTrue (Wire.isTxBufferEmpty ());
62
- for (int i = 0 ; i < 5 ; i++) {
63
- Wire.write (Wire.read ());
50
+ for (int i = 1 ; i < 4 ; i++) {
51
+ Wire.write (i * 2 );
64
52
}
65
- assertEqual (0x07 , Wire.getTxBufferElement (0 ));
66
- assertEqual (0x0E , Wire.getTxBufferElement (1 ));
67
- assertEqual (1 , Wire.getTxBufferElement (2 ));
68
- assertEqual (4 , Wire.getTxBufferElement (3 ));
69
- assertEqual (7 , Wire.getTxBufferElement (4 ));
70
-
71
53
Wire.endTransmission ();
72
- assertTrue ( Wire.isTxBufferEmpty () );
54
+ deque< uint8_t >* mosi = Wire.getMosi ( 47 );
73
55
74
- vector<int > finalData = {0x07 , 0x0E , 1 , 4 , 7 };
75
- assert (finalData == Wire.getDataWritten (47 ));
56
+ assertEqual (3 , mosi->size ());
57
+ assertEqual (2 , mosi->front ());
58
+ mosi->pop_front ();
59
+ assertEqual (2 , mosi->size ());
60
+ assertEqual (4 , mosi->front ());
61
+ mosi->pop_front ();
62
+ assertEqual (1 , mosi->size ());
63
+ assertEqual (6 , mosi->front ());
64
+ mosi->pop_front ();
65
+ assertEqual (0 , mosi->size ());
76
66
}
77
67
78
68
unittest_main ()
0 commit comments