Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(494)

Side by Side Diff: tools/battor_agent/battor_agent_unittest.cc

Issue 1642763002: tools/battor_agent: Adds a tool to find connected BattOrs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/battor_agent/battor_agent_bin.cc ('k') | tools/battor_agent/battor_finder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "tools/battor_agent/battor_agent.h" 5 #include "tools/battor_agent/battor_agent.h"
6 6
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "base/thread_task_runner_handle.h" 8 #include "base/thread_task_runner_handle.h"
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 449
450 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT); 450 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT);
451 451
452 // Send the calibration frame. 452 // Send the calibration frame.
453 BattOrFrameHeader cal_frame_header{0, 2 * sizeof(RawBattOrSample)}; 453 BattOrFrameHeader cal_frame_header{0, 2 * sizeof(RawBattOrSample)};
454 RawBattOrSample cal_frame[] = { 454 RawBattOrSample cal_frame[] = {
455 RawBattOrSample{1, 1}, RawBattOrSample{2, 2}, 455 RawBattOrSample{1, 1}, RawBattOrSample{2, 2},
456 }; 456 };
457 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 457 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
458 CreateFrame(cal_frame_header, cal_frame, 2)); 458 CreateFrame(cal_frame_header, cal_frame, 2));
459 GetTaskRunner()->RunUntilIdle();
459 460
460 // Send the two real data frames. 461 // Send the two real data frames.
461 BattOrFrameHeader frame_header1{0, 3 * sizeof(RawBattOrSample)}; 462 BattOrFrameHeader frame_header1{0, 3 * sizeof(RawBattOrSample)};
462 RawBattOrSample frame1[] = { 463 RawBattOrSample frame1[] = {
463 RawBattOrSample{1, 1}, RawBattOrSample{2, 2}, RawBattOrSample{3, 3}, 464 RawBattOrSample{1, 1}, RawBattOrSample{2, 2}, RawBattOrSample{3, 3},
464 }; 465 };
465 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 466 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
466 CreateFrame(frame_header1, frame1, 3)); 467 CreateFrame(frame_header1, frame1, 3));
468 GetTaskRunner()->RunUntilIdle();
467 469
468 BattOrFrameHeader frame_header2{0, 1 * sizeof(RawBattOrSample)}; 470 BattOrFrameHeader frame_header2{0, 1 * sizeof(RawBattOrSample)};
469 RawBattOrSample frame2[] = {RawBattOrSample{1, 1}}; 471 RawBattOrSample frame2[] = {RawBattOrSample{1, 1}};
470 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 472 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
471 CreateFrame(frame_header2, frame2, 1)); 473 CreateFrame(frame_header2, frame2, 1));
474 GetTaskRunner()->RunUntilIdle();
472 475
473 // Send an empty last frame to indicate that we're done. 476 // Send an empty last frame to indicate that we're done.
474 BattOrFrameHeader frame_header3{0, 0 * sizeof(RawBattOrSample)}; 477 BattOrFrameHeader frame_header3{0, 0 * sizeof(RawBattOrSample)};
475 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 478 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
476 CreateFrame(frame_header3, nullptr, 0)); 479 CreateFrame(frame_header3, nullptr, 0));
480 GetTaskRunner()->RunUntilIdle();
477 481
478 EXPECT_TRUE(IsCommandComplete()); 482 EXPECT_TRUE(IsCommandComplete());
479 EXPECT_EQ(BATTOR_ERROR_NONE, GetCommandError()); 483 EXPECT_EQ(BATTOR_ERROR_NONE, GetCommandError());
480 EXPECT_EQ("0.00 -0.3 -0.6\n1.00 0.3 0.6\n2.00 0.9 1.8\n3.00 -0.3 -0.6\n", 484 EXPECT_EQ("0.00 -0.3 -0.6\n1.00 0.3 0.6\n2.00 0.9 1.8\n3.00 -0.3 -0.6\n",
481 GetTrace()); 485 GetTrace());
482 } 486 }
483 487
484 TEST_F(BattOrAgentTest, StopTracingFailsWithoutConnection) { 488 TEST_F(BattOrAgentTest, StopTracingFailsWithoutConnection) {
485 GetAgent()->StopTracing(); 489 GetAgent()->StopTracing();
486 GetTaskRunner()->RunUntilIdle(); 490 GetTaskRunner()->RunUntilIdle();
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT); 673 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT);
670 674
671 // Send a calibration frame with a mismatch between the frame length in the 675 // Send a calibration frame with a mismatch between the frame length in the
672 // header and the actual frame length. 676 // header and the actual frame length.
673 BattOrFrameHeader cal_frame_header{0, 1 * sizeof(RawBattOrSample)}; 677 BattOrFrameHeader cal_frame_header{0, 1 * sizeof(RawBattOrSample)};
674 RawBattOrSample cal_frame[] = { 678 RawBattOrSample cal_frame[] = {
675 RawBattOrSample{1, 1}, RawBattOrSample{2, 2}, 679 RawBattOrSample{1, 1}, RawBattOrSample{2, 2},
676 }; 680 };
677 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 681 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
678 CreateFrame(cal_frame_header, cal_frame, 2)); 682 CreateFrame(cal_frame_header, cal_frame, 2));
683 GetTaskRunner()->RunUntilIdle();
679 684
680 EXPECT_TRUE(IsCommandComplete()); 685 EXPECT_TRUE(IsCommandComplete());
681 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError()); 686 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError());
682 } 687 }
683 688
684 TEST_F(BattOrAgentTest, StopTracingFailsIfDataFrameHasWrongLength) { 689 TEST_F(BattOrAgentTest, StopTracingFailsIfDataFrameHasWrongLength) {
685 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT); 690 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT);
686 691
687 BattOrFrameHeader cal_frame_header{0, 1 * sizeof(RawBattOrSample)}; 692 BattOrFrameHeader cal_frame_header{0, 1 * sizeof(RawBattOrSample)};
688 RawBattOrSample cal_frame[] = { 693 RawBattOrSample cal_frame[] = {
689 RawBattOrSample{1, 1}, 694 RawBattOrSample{1, 1},
690 }; 695 };
691 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 696 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
692 CreateFrame(cal_frame_header, cal_frame, 1)); 697 CreateFrame(cal_frame_header, cal_frame, 1));
698 GetTaskRunner()->RunUntilIdle();
693 699
694 // Send a data frame with a mismatch between the frame length in the 700 // Send a data frame with a mismatch between the frame length in the
695 // header and the actual frame length. 701 // header and the actual frame length.
696 BattOrFrameHeader frame_header{0, 2 * sizeof(RawBattOrSample)}; 702 BattOrFrameHeader frame_header{0, 2 * sizeof(RawBattOrSample)};
697 RawBattOrSample frame[] = {RawBattOrSample{1, 1}}; 703 RawBattOrSample frame[] = {RawBattOrSample{1, 1}};
698 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 704 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
699 CreateFrame(frame_header, frame, 1)); 705 CreateFrame(frame_header, frame, 1));
700 GetTaskRunner()->RunUntilIdle(); 706 GetTaskRunner()->RunUntilIdle();
701 707
702 EXPECT_TRUE(IsCommandComplete()); 708 EXPECT_TRUE(IsCommandComplete());
703 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError()); 709 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError());
704 } 710 }
705 711
706 TEST_F(BattOrAgentTest, StopTracingFailsIfCalibrationFrameMissingByte) { 712 TEST_F(BattOrAgentTest, StopTracingFailsIfCalibrationFrameMissingByte) {
707 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT); 713 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT);
708 714
709 BattOrFrameHeader cal_frame_header{0, 2 * sizeof(RawBattOrSample)}; 715 BattOrFrameHeader cal_frame_header{0, 2 * sizeof(RawBattOrSample)};
710 RawBattOrSample cal_frame[] = { 716 RawBattOrSample cal_frame[] = {
711 RawBattOrSample{1, 1}, RawBattOrSample{2, 2}, 717 RawBattOrSample{1, 1}, RawBattOrSample{2, 2},
712 }; 718 };
713 719
714 // Remove the last byte from the frame to make it invalid. 720 // Remove the last byte from the frame to make it invalid.
715 scoped_ptr<vector<char>> cal_frame_bytes = 721 scoped_ptr<vector<char>> cal_frame_bytes =
716 CreateFrame(cal_frame_header, cal_frame, 2); 722 CreateFrame(cal_frame_header, cal_frame, 2);
717 cal_frame_bytes->pop_back(); 723 cal_frame_bytes->pop_back();
718 724
719 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 725 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
720 std::move(cal_frame_bytes)); 726 std::move(cal_frame_bytes));
727 GetTaskRunner()->RunUntilIdle();
721 728
722 EXPECT_TRUE(IsCommandComplete()); 729 EXPECT_TRUE(IsCommandComplete());
723 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError()); 730 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError());
724 } 731 }
725 732
726 TEST_F(BattOrAgentTest, StopTracingFailsIfDataFrameMissingByte) { 733 TEST_F(BattOrAgentTest, StopTracingFailsIfDataFrameMissingByte) {
727 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT); 734 RunStopTracingTo(BattOrAgentState::SAMPLES_REQUEST_SENT);
728 735
729 BattOrFrameHeader cal_frame_header{0, 1 * sizeof(RawBattOrSample)}; 736 BattOrFrameHeader cal_frame_header{0, 1 * sizeof(RawBattOrSample)};
730 RawBattOrSample cal_frame[] = { 737 RawBattOrSample cal_frame[] = {
731 RawBattOrSample{1, 1}, 738 RawBattOrSample{1, 1},
732 }; 739 };
733 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 740 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
734 CreateFrame(cal_frame_header, cal_frame, 1)); 741 CreateFrame(cal_frame_header, cal_frame, 1));
742 GetTaskRunner()->RunUntilIdle();
735 743
736 BattOrFrameHeader frame_header{0, 1}; 744 BattOrFrameHeader frame_header{0, 1};
737 RawBattOrSample frame[] = {RawBattOrSample{1, 1}}; 745 RawBattOrSample frame[] = {RawBattOrSample{1, 1}};
738 746
739 // Remove the last byte from the frame to make it invalid. 747 // Remove the last byte from the frame to make it invalid.
740 scoped_ptr<vector<char>> frame_bytes = CreateFrame(frame_header, frame, 2); 748 scoped_ptr<vector<char>> frame_bytes = CreateFrame(frame_header, frame, 2);
741 frame_bytes->pop_back(); 749 frame_bytes->pop_back();
742 750
743 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES, 751 GetAgent()->OnMessageRead(true, BATTOR_MESSAGE_TYPE_SAMPLES,
744 std::move(frame_bytes)); 752 std::move(frame_bytes));
745 GetTaskRunner()->RunUntilIdle(); 753 GetTaskRunner()->RunUntilIdle();
746 754
747 EXPECT_TRUE(IsCommandComplete()); 755 EXPECT_TRUE(IsCommandComplete());
748 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError()); 756 EXPECT_EQ(BATTOR_ERROR_UNEXPECTED_MESSAGE, GetCommandError());
749 } 757 }
750 758
751 } // namespace battor 759 } // namespace battor
OLDNEW
« no previous file with comments | « tools/battor_agent/battor_agent_bin.cc ('k') | tools/battor_agent/battor_finder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698