unittests: add versioning test

This commit is contained in:
Dario Röthlisberger
2017-10-05 11:19:35 +02:00
committed by Beat Küng
parent 28ca3b8d4c
commit bb644ee087
5 changed files with 121 additions and 0 deletions
+1
View File
@@ -29,6 +29,7 @@ set(tests
sf0x
sleep
uorb
versioning
)
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+1
View File
@@ -63,6 +63,7 @@ set(srcs
test_uart_console.c
test_uart_loopback.c
test_uart_send.c
test_versioning.cpp
tests_main.c
)
+117
View File
@@ -0,0 +1,117 @@
#include <unit_test.h>
#include <version/version.h>
class VersioningTest : public UnitTest
{
public:
virtual bool run_tests();
private:
bool _is_correct_version_tag(const char *version_tag, uint32_t result_goal);
bool _is_correct_version_tag_vendor(const char *version_tag, uint32_t result_goal);
bool _test_flight_version();
bool _test_vendor_version();
};
bool VersioningTest::_is_correct_version_tag(const char *version_tag, uint32_t result_goal)
{
uint32_t result = version_tag_to_number(version_tag);
if (result == result_goal) {
return true;
} else {
PX4_ERR("Wrong version: tag: %s, got: 0x%x, expected: 0x%x", version_tag, result, result_goal);
return false;
}
}
bool VersioningTest::_is_correct_version_tag_vendor(const char *version_tag, uint32_t result_goal)
{
uint32_t result = version_tag_to_vendor_version_number(version_tag);
if (result == result_goal) {
return true;
} else {
PX4_ERR("Wrong version: tag: %s, got: 0x%x, expected: 0x%x", version_tag, result, result_goal);
return false;
}
}
bool VersioningTest::run_tests()
{
ut_run_test(_test_flight_version);
ut_run_test(_test_vendor_version);
return (_tests_failed == 0);
}
bool VersioningTest::_test_flight_version()
{
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3", 0xB2D63ff));
ut_assert_true(_is_correct_version_tag("v1.2.3", 0x010203ff));
ut_assert_true(_is_correct_version_tag("v255.255.255", 0xffffffff));
ut_assert_true(_is_correct_version_tag("v255.255.255-11", 0xffffff00));
ut_assert_true(_is_correct_version_tag("v1.2.3-111", 0x01020300));
ut_assert_true(_is_correct_version_tag("v1.2.3-11-abababab", 0x01020300));
ut_assert_true(_is_correct_version_tag("11.45.99-1.2.3", 0x0B2D63ff));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3rc3-7-g7e282f57", 0x0B2D6300));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3rc4", 0x0B2D63C0));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3alpha3-7-g7e282f57", 0x0B2D6300));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3alpha4", 0x0B2D6340));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3beta3-7-g7e282f57", 0x0B2D6300));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3beta4", 0x0B2D6380));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3dev4", 0x0B2D6300));
ut_assert_true(_is_correct_version_tag("v11.45.99-1.2.3dev3-7-g7e282f57", 0xB2D6300));
ut_assert_true(_is_correct_version_tag("0.45.99-1.2.3beta4", 0x002D6380));
ut_assert_true(_is_correct_version_tag("0.0.0-1.2.3beta4", 0x00000080));
ut_assert_true(_is_correct_version_tag("0.0.0-1.2.3dev4", 0x00000000));
ut_assert_true(_is_correct_version_tag("v1.6.2-1.0.0", 0x010602ff));
ut_assert_true(_is_correct_version_tag("v1.6.2-1.0.0rc2", 0x010602C0));
ut_assert_true(_is_correct_version_tag("v1.6.2-1.0.0-rc2", 0x010602C0));
ut_assert_true(_is_correct_version_tag("v1.6.2-1.0.0-rc2-abababab", 0x01060200));
ut_assert_true(_is_correct_version_tag("v1.6.2-rc2", 0x010602C0));
ut_assert_true(_is_correct_version_tag("v1.6.2rc1", 0x010602C0));
ut_assert_true(_is_correct_version_tag("v1.6.10-100-g890c415", 0x01060A00));
ut_assert_true(_is_correct_version_tag("v1.6.2-0.8.7-67-g1d5e979", 0x01060200));
return true;
}
bool VersioningTest::_test_vendor_version()
{
ut_assert_true(_is_correct_version_tag_vendor("alpha", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("alpha23", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("v11.45.99-34.56.88", 0x223858));
ut_assert_true(_is_correct_version_tag_vendor("v11.45.99-1.2.3", 0x010203));
ut_assert_true(_is_correct_version_tag_vendor("1.2.3-11.45.99", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.6.2-1.0.0", 0x010000));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-255.255.255", 0xFFFFFF));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-255.255.255-11", 0xFFFFFF));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("v1.6.2-rc2", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11-abababab", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99rc3-7-g7e282f57", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99rc4", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99alpha3-7-g7e282f57", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99alpha4", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99beta3-7-g7e282f57", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99beta4", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99dev4", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.2.3-11.45.99dev3-7-g7e282f57", 0x0B2D63));
ut_assert_true(_is_correct_version_tag_vendor("v1.6.2-1.0.0-rc2-abababab", 0x010000));
ut_assert_true(_is_correct_version_tag_vendor("v1.6.2-1.0.0-rc2-23-abababab", 0x010000));
ut_assert_true(_is_correct_version_tag_vendor("v1.6.2-0.8.7-67-g1d5e979", 0x000807));
ut_assert_true(_is_correct_version_tag_vendor("v1.6.0-100-g890c415", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("1.2.3-0.45.99beta4", 0x002D63));
ut_assert_true(_is_correct_version_tag_vendor("1.2.3-0.0.0beta4", 0x000000));
ut_assert_true(_is_correct_version_tag_vendor("1.2.3-0.0.0dev4", 0x000000));
return true;
}
ut_declare_test_c(test_versioning, VersioningTest);
+1
View File
@@ -125,6 +125,7 @@ const struct {
{"tone", test_tone, 0},
{"uart_loopback", test_uart_loopback, OPT_NOJIGTEST | OPT_NOALLTEST},
{"uart_send", test_uart_send, OPT_NOJIGTEST | OPT_NOALLTEST},
{"versioning", test_versioning, 0},
{NULL, NULL, 0}
};
+1
View File
@@ -87,6 +87,7 @@ extern int test_uart_console(int argc, char *argv[]);
extern int test_uart_loopback(int argc, char *argv[]);
extern int test_uart_send(int argc, char *argv[]);
extern int test_parameters(int argc, char *argv[]);
extern int test_versioning(int argc, char *argv[]);
/* external */
extern int commander_tests_main(int argc, char *argv[]);