Skip to content

Commit

Permalink
Add basic setup for unit testing (#205)
Browse files Browse the repository at this point in the history
Signed-off-by: Javier Balloffet <[email protected]>
  • Loading branch information
jballoffet authored Jan 31, 2024
1 parent f1db6b1 commit 88eec4c
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 6 deletions.
25 changes: 19 additions & 6 deletions andino_firmware/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,36 @@
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[platformio]
default_envs = uno, nanoatmega328

; Base configuration for build tools.
[base_build]
build_flags =
-Wall -Wextra

; Base configuration for Atmel AVR based Arduino boards.
[base_atmelavr]
platform = atmelavr
framework = arduino
monitor_speed = 57600
test_ignore = test_desktop

; Base configuration for build tools.
[base_build]
build_flags =
-Wall -Wextra
; Base configuration for desktop platforms (for unit testing).
[base_desktop]
platform = native
test_framework = googletest

; Environment for Arduino Uno.
[env:uno]
extends = base_atmelavr, base_build
extends = base_build, base_atmelavr
board = uno

; Environment for Arduino Nano.
[env:nanoatmega328]
extends = base_atmelavr, base_build
extends = base_build, base_atmelavr
board = nanoatmega328

; Environment for desktop platforms (Windows, macOS, Linux, etc).
[env:desktop]
extends = base_build, base_desktop
47 changes: 47 additions & 0 deletions andino_firmware/test/test_desktop/pid_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// BSD 3-Clause License
//
// Copyright (c) 2023, Ekumen Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "pid.h"

#include <gtest/gtest.h>

// TODO(jballoffet): Add unit tests.
TEST(PidTest, ConstructOk) {
andino::PID pid_controller(0, 0, 0, 0, 0, 0);
EXPECT_EQ(1, 1);
}

int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
if (RUN_ALL_TESTS()) {
}

// Always return zero-code and allow PlatformIO to parse results.
return 0;
}

0 comments on commit 88eec4c

Please sign in to comment.