Exemplo n.º 1
0
TEST(BLEReturnSysExRecoveryBuffer, ReturnTwice)
{
  using testing::ElementsAreArray;
  using testing::_;
  using testing::Args;
  Fixture f;
  static uint8_t longSysEx1[9] =
  {
    0x80, 0x80, 0xf0, 0x47, 0x7f, 0x15, 0x5c, 0x00, 0x01
  };
  static uint8_t longSysEx2[9] =
  {
    0x80, 0x21, 0x46, 0x47, 0x7f, 0x15, 0x5c, 0xf7, 0xf7
  };
 
  static uint8_t sysExFalseResult[13] =
  { 0xf0, 0x47, 0x7f, 0x15, 0x5c, 0x00, 0x01, 0x21, 0x46,
    0x47, 0x7f, 0x15, 0xf7
  };

  static uint8_t sysExRecoveryResult[14] =
  { 0xf0, 0x47, 0x7f, 0x15, 0x5c, 0x00, 0x01, 0x21, 0x46,
    0x47, 0x7f, 0x15, 0x5c, 0xf7
  }; 

  EXPECT_CALL(f.getMock(), SendSysEx(_,_,0)).With(Args<0,1>(
    ElementsAreArray(sysExFalseResult))).Times(1);
  EXPECT_CALL(f.getMock(), SendSysEx(_,_,0)).With(Args<0,1>(
    ElementsAreArray(sysExRecoveryResult))).Times(1);

  f.parseDataArray(longSysEx1, 9);
  f.parseDataArray(longSysEx2, 9);
}
Exemplo n.º 2
0
TEST_F(ByteStuffer, receives_two_valid_frames) {
    uint8_t expected1[] = {5, 0};
    uint8_t expected2[] = {3};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected1)));
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected2)));
    byte_stuffer_recv_byte(1, 2);
    byte_stuffer_recv_byte(1, 5);
    byte_stuffer_recv_byte(1, 1);
    byte_stuffer_recv_byte(1, 0);
    byte_stuffer_recv_byte(1, 2);
    byte_stuffer_recv_byte(1, 3);
    byte_stuffer_recv_byte(1, 0);
}
TEST(EventLogListBuilder, IntThenString) {
  EventLogListBuilder builder;

  const uint8_t EXPECTED_LOG[] = {
    EVENT_TYPE_LIST,
    2,                        // Number of items in the list.
    EVENT_TYPE_INT,
    42, 0, 0, 0,              // 4 byte integer value.
    EVENT_TYPE_STRING,
    5, 0, 0, 0,               // 4 byte length of the string.
    'D', 'r', 'o', 'i', 'd',
  };

  builder.Append(42);
  builder.Append("Droid");

  std::unique_ptr<uint8_t[]> log;
  size_t size;
  builder.Release(&log, &size);
  EXPECT_EQ(17U, size);

  uint8_t* log_data = log.get();
  EXPECT_THAT(std::vector<uint8_t>(log_data, log_data + size),
              ElementsAreArray(EXPECTED_LOG));
}
Exemplo n.º 4
0
TEST_F(FrameValidator, sends_five_bytes_with_correct_crc) {
    uint8_t original[] = {1, 2, 3, 4, 5, 0, 0, 0, 0};
    uint8_t expected[] = {1, 2, 3, 4, 5, 0xF4, 0x99, 0x0B, 0x47};
    EXPECT_CALL(*this, byte_stuffer_send_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    validator_send_frame(0, original, 5);
}
Exemplo n.º 5
0
TEST_F(ByteStuffer, receives_two_long_frames_and_some_more) {
    uint8_t expected[515];
    int i;
    int j;
    for (j=0;j<2;j++) {
        for (i=0;i<254;i++) {
            expected[i+254*j] = i + 1;
        }
    }
    for (i=0;i<7;i++) {
        expected[254*2+i] = i + 1;
    }
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    byte_stuffer_recv_byte(0, 0xFF);
    for (i=0;i<254;i++) {
        byte_stuffer_recv_byte(0, i+1);
    }
    byte_stuffer_recv_byte(0, 0xFF);
    for (i=0;i<254;i++) {
        byte_stuffer_recv_byte(0, i+1);
    }
    byte_stuffer_recv_byte(0, 8);
    byte_stuffer_recv_byte(0, 1);
    byte_stuffer_recv_byte(0, 2);
    byte_stuffer_recv_byte(0, 3);
    byte_stuffer_recv_byte(0, 4);
    byte_stuffer_recv_byte(0, 5);
    byte_stuffer_recv_byte(0, 6);
    byte_stuffer_recv_byte(0, 7);
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 6
0
TEST_F(FrameValidator, sends_one_byte_with_correct_crc) {
    uint8_t original[] = {0x44, 0, 0, 0, 0};
    uint8_t expected[] = {0x44, 0x04, 0x6A, 0xB3, 0xA3};
    EXPECT_CALL(*this, byte_stuffer_send_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    validator_send_frame(0, original, 1);
}
Exemplo n.º 7
0
TEST_F(ByteStuffer, receives_single_byte_valid_frame) {
    uint8_t expected[] = {0x37};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    byte_stuffer_recv_byte(0, 2);
    byte_stuffer_recv_byte(0, 0x37);
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 8
0
TEST(BLEReturnRunningMIDIData, TwoNotes)
{
  using testing::ElementsAreArray;
  using testing::_;
  Fixture f;
  static uint8_t testdata[8] =
  { 0x80, 0x80, 0x90, 0x45, 0x45, 0x80, 0x22, 0x45 };
  static uint8_t midiResult1[3] =
  { 0x90, 0x45, 0x45 };
  static uint8_t midiResult2[3] =
  { 0x90, 0x22, 0x45 };



  EXPECT_CALL(f.getMock(), SendData(ElementsAreArray(midiResult1),0));
  EXPECT_CALL(f.getMock(), SendData(ElementsAreArray(midiResult2),0));
  f.parseDataArray(testdata, 8);
}
Exemplo n.º 9
0
TEST_F(ByteStuffer, sends_and_receives_full_roundtrip_small_packet_with_zeros) {
    uint8_t original_data[] = { 1, 0, 3, 0, 0, 9};
    byte_stuffer_send_frame(1, original_data, sizeof(original_data));
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(original_data)));
    int i;
    for(auto& d : sent_data) {
       byte_stuffer_recv_byte(1, d);
    }
}
Exemplo n.º 10
0
TEST_F(ByteStuffer, receives_an_all_zeros_frame_that_is_maximum_size) {
    uint8_t expected[MAX_FRAME_SIZE] = {};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    int i;
    byte_stuffer_recv_byte(0, 1);
    for(i=0;i<MAX_FRAME_SIZE;i++) {
       byte_stuffer_recv_byte(0, 1);
    }
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 11
0
TEST_F(ByteStuffer, receives_valid_frame_with_zeroes) {
    uint8_t expected[] = {5, 0, 3, 0};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    byte_stuffer_recv_byte(0, 2);
    byte_stuffer_recv_byte(0, 5);
    byte_stuffer_recv_byte(0, 2);
    byte_stuffer_recv_byte(0, 3);
    byte_stuffer_recv_byte(0, 1);
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 12
0
TEST_F(ByteStuffer, receives_valid_frame_after_unexpected_zero) {
    uint8_t expected[] = {5, 7};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    byte_stuffer_recv_byte(1, 3);
    byte_stuffer_recv_byte(1, 1);
    byte_stuffer_recv_byte(1, 0);
    byte_stuffer_recv_byte(1, 3);
    byte_stuffer_recv_byte(1, 5);
    byte_stuffer_recv_byte(1, 7);
    byte_stuffer_recv_byte(1, 0);
}
Exemplo n.º 13
0
TEST_F(ByteStuffer, receives_valid_frame_after_unexpected_non_zero) {
    uint8_t expected[] = {5, 7};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    byte_stuffer_recv_byte(0, 2);
    byte_stuffer_recv_byte(0, 9);
    byte_stuffer_recv_byte(0, 4); // This should have been zero
    byte_stuffer_recv_byte(0, 0);
    byte_stuffer_recv_byte(0, 3);
    byte_stuffer_recv_byte(0, 5);
    byte_stuffer_recv_byte(0, 7);
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 14
0
TEST_F(ByteStuffer, received_frame_is_aborted_when_its_too_long) {
    uint8_t expected[1] = {1};
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    int i;
    byte_stuffer_recv_byte(0, 1);
    for(i=0;i<MAX_FRAME_SIZE;i++) {
       byte_stuffer_recv_byte(0, 1);
    }
    byte_stuffer_recv_byte(0, 2);
    byte_stuffer_recv_byte(0, 1);
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 15
0
TEST(BLEReturnMIDIData, SingleNote)
{
  using testing::ElementsAreArray;
  using testing::_;
  Fixture f;
  static uint8_t testdata[5] =
    { 0x80, 0x80, 0x90, 0x80, 0x45 };
  static uint8_t midiResult[3] =
    { 0x90, 0x80, 0x45 };

  EXPECT_CALL(f.getMock(), SendData(ElementsAreArray(midiResult),0));
  f.parseDataArray(testdata, 5);
}
Exemplo n.º 16
0
TEST_F(ByteStuffer, sends_and_receives_full_roundtrip_254_bytes) {
    uint8_t original_data[254];
    int i;
    for(i=0;i<254;i++) {
        original_data[i] = i + 1;
    }
    byte_stuffer_send_frame(0, original_data, sizeof(original_data));
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(original_data)));
    for(auto& d : sent_data) {
       byte_stuffer_recv_byte(1, d);
    }
}
Exemplo n.º 17
0
TEST(BLEReturnSysExData, SingleData)
{
  using testing::ElementsAreArray;
  using testing::_;
  using testing::Args;
  Fixture f;
  static uint8_t testdata[8] =
  { 0x80, 0x80, 0xf0, 0x90, 0x80, 0x45, 0x88, 0xf7};
  static uint8_t sysExResult[5] =
  { 0xf0, 0x90, 0x80, 0x45, 0xf7 }; 

  EXPECT_CALL(f.getMock(), SendSysEx(_,_,0)).With(Args<0,1>(ElementsAreArray(sysExResult)));
  f.parseDataArray(testdata, 8);
}
Exemplo n.º 18
0
TEST_F(ByteStuffer, receives_a_valid_frame_with_over254_non_zeroes_and_then_end_of_frame) {
    uint8_t expected[254];
    int i;
    for (i=0;i<254;i++) {
        expected[i] = i + 1;
    }
    EXPECT_CALL(*this, validator_recv_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(expected)));
    byte_stuffer_recv_byte(0, 0xFF);
    for (i=0;i<254;i++) {
        byte_stuffer_recv_byte(0, i+1);
    }
    byte_stuffer_recv_byte(0, 0);
}
Exemplo n.º 19
0
TEST_F(ByteStuffer, sends_frame_with_254_non_zeroes) {
    uint8_t data[254];
    int i;
    for(i=0;i<254;i++) {
        data[i] = i + 1;
    }
    byte_stuffer_send_frame(0, data, 254);
    uint8_t expected[256];
    expected[0] = 0xFF;
    for(i=1;i<255;i++) {
        expected[i] = i;
    }
    expected[255] = 0;
    EXPECT_THAT(sent_data, ElementsAreArray(expected));
}
TEST(EventLogListBuilder, Empty) {
  EventLogListBuilder builder;

  const uint8_t EXPECTED_LOG[] = {
    EVENT_TYPE_LIST,
    0,  // Number of items in the list.
  };

  std::unique_ptr<uint8_t[]> log;
  size_t size;
  builder.Release(&log, &size);
  EXPECT_EQ(2U, size);

  uint8_t* log_data = log.get();
  EXPECT_THAT(std::vector<uint8_t>(log_data, log_data + size),
              ElementsAreArray(EXPECTED_LOG));
}
TEST(EventLogListBuilder, SingleInt) {
  EventLogListBuilder builder;

  const uint8_t EXPECTED_LOG[] = {
    EVENT_TYPE_LIST,
    1,                // Number of items in the list.
    EVENT_TYPE_INT,
    42, 0, 0, 0,      // 4 byte integer value.
  };

  builder.Append(42);

  std::unique_ptr<uint8_t[]> log;
  size_t size;
  builder.Release(&log, &size);
  EXPECT_EQ(7U, size);

  uint8_t* log_data = log.get();
  EXPECT_THAT(std::vector<uint8_t>(log_data, log_data + size),
              ElementsAreArray(EXPECTED_LOG));
}
Exemplo n.º 22
0
TEST(BLEReturnLongSysExData, MultipleData)
{
  using testing::ElementsAreArray;
  using testing::_;
  using testing::Args;
  Fixture f;
  static uint8_t longSysEx1[9] =
  {
    0x80, 0x80, 0xf0, 0x47, 0x7f, 0x15, 0x5c, 0x00, 0x01
  };
  static uint8_t longSysEx2[9] =
  {
    0x80, 0x21, 0x46, 0x47, 0x7f, 0x15, 0x5c, 0x80, 0xf7
  };
 
  static uint8_t sysExResult[14] =
  { 0xf0, 0x47, 0x7f, 0x15, 0x5c, 0x00, 0x01, 0x21, 0x46,
    0x47, 0x7f, 0x15, 0x5c,  0xf7
  }; 

  EXPECT_CALL(f.getMock(), SendSysEx(_,_,0)).With(Args<0,1>(ElementsAreArray(sysExResult)));
  f.parseDataArray(longSysEx1, 9);
  f.parseDataArray(longSysEx2, 9);
}
Exemplo n.º 23
0
TEST_F(FrameValidator, validates_one_byte_frame_with_correct_crc) {
    uint8_t data[] = {0x44, 0x04, 0x6A, 0xB3, 0xA3};
    EXPECT_CALL(*this, route_incoming_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(data, 1)));
    validator_recv_frame(0, data, 5);
}
Exemplo n.º 24
0
TEST_F(FrameValidator, validates_four_byte_frame_with_correct_crc) {
    uint8_t data[] = {0x44, 0x10, 0xFF, 0x00, 0x74, 0x4E, 0x30, 0xBA};
    EXPECT_CALL(*this, route_incoming_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(data, 4)));
    validator_recv_frame(1, data, 8);
}
Exemplo n.º 25
0
TEST_F(FrameValidator, validates_five_byte_frame_with_correct_crc) {
    uint8_t data[] = {1, 2, 3, 4, 5, 0xF4, 0x99, 0x0B, 0x47};
    EXPECT_CALL(*this, route_incoming_frame(_, _, _))
        .With(Args<1, 2>(ElementsAreArray(data, 5)));
    validator_recv_frame(0, data, 9);
}
Exemplo n.º 26
0
TEST_F(ByteStuffer, sends_three_byte_frame_with_all_zeroes) {
    uint8_t data[] = {0, 0, 0};
    byte_stuffer_send_frame(0, data, 3);
    uint8_t expected[] = {1, 1, 1, 1, 0};
    EXPECT_THAT(sent_data, ElementsAreArray(expected));
}
Exemplo n.º 27
0
TEST_F(ByteStuffer, sends_three_byte_frame_data_in_the_middle) {
    uint8_t data[] = {0, 0x55, 0};
    byte_stuffer_send_frame(0, data, 3);
    uint8_t expected[] = {1, 2, 0x55, 1, 0};
    EXPECT_THAT(sent_data, ElementsAreArray(expected));
}
Exemplo n.º 28
0
TEST_F(ByteStuffer, sends_two_byte_frame_starting_with_non_zero) {
    uint8_t data[] = {9, 0};
    byte_stuffer_send_frame(1, data, 2);
    uint8_t expected[] = {2, 9, 1, 0};
    EXPECT_THAT(sent_data, ElementsAreArray(expected));
}
Exemplo n.º 29
0
TEST_F(ByteStuffer, sends_two_byte_frame) {
    uint8_t data[] = {5, 0x77};
    byte_stuffer_send_frame(0, data, 2);
    uint8_t expected[] = {3, 5, 0x77, 0};
    EXPECT_THAT(sent_data, ElementsAreArray(expected));
}
Exemplo n.º 30
0
TEST_F(ByteStuffer, send_one_byte_frame) {
    uint8_t data[] = {5};
    byte_stuffer_send_frame(1, data, 1);
    uint8_t expected[] = {2, 5, 0};
    EXPECT_THAT(sent_data, ElementsAreArray(expected));
}