[ament_cmake_clang_tidy] failed test is detected as passed
- Lingua principale
- Python
- Stelle
- 50
- Fork
- 129
- Merge medio
- 3g 10h
- PR unite (30g)
- 3
Descrizione
This is using the latest master of ament_lint and latest rolling release.
From https://github.com/uwrobotics/uwrt_mars_rover/runs/4834656922?check_suite_focus=true#step:4:1520 :
```
test 2
Start 2: clang_tidy
2: Test command: /usr/bin/python3 "-u" "/opt/ros/galactic/share/ament_cmake_test/cmake/run_test.py" "/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml" "--package-name" "uwrt_mars_rover_drivetrain_hw" "--output-file" "/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw/ament_clang_tidy/clang_tidy.txt" "--command" "/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/install/ament_clang_tidy/bin/ament_clang_tidy" "--xunit-file" "/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml" "/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw" "--config" "/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/src/tsv4w6qdap/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/../../.clang-tidy"
2: Test timeout computed to be: 300
2: -- run_test.py: invoking following command in '/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/src/tsv4w6qdap/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw':
2: - /__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/install/ament_clang_tidy/bin/ament_clang_tidy --xunit-file /__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml /__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw --config /__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/src/tsv4w6qdap/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/../../.clang-tidy
2: The invocation of "clang-tidy" failed with error code 4: Command '['/usr/bin/clang-tidy', '-p', '/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw', "--config={CheckOptions: [{key: readability-identifier-naming.ClassCase, value: CamelCase}, {key: readability-identifier-naming.EnumCase, value: CamelCase}, {key: readability-identifier-naming.UnionCase, value: CamelCase}, {key: readability-identifier-naming.FunctionCase, value: camelBack}, {key: readability-identifier-naming.VariableCase, value: lower_case}, {key: readability-identifier-naming.ClassMemberSuffix, value: _}, {key: readability-identifier-naming.GlobalVariableCase, value: UPPER_CASE}, {key: readability-identifier-naming.StaticConstantCase, value: UPPER_CASE}, {key: readability-identifier-naming.ConstexprVariableCase, value: UPPER_CASE}, {key: readability-identifier-naming.EnumConstantCase, value: UPPER_CASE}, {key: readability-inconsistent-declaration-parameter-name.Strict, value: 1}], Checks: '-*, boost-*, bugprone-*, cppcoreguidelines-*, misc-*, modernize-*, performance-*, readability-*, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-constant-array-index, -cppcoreguidelines-pro-type-vararg, -cppcoreguidelines-pro-type-union-access, -cppcoreguidelines-non-private-member-variables-in-classes, -cppcoreguidelines-owning-memory, -misc-non-private-member-variables-in-classes, -modernize-use-trailing-return-type,', HeaderFilterRegex: .*/src/uwrt_mars_rover/.*, WarningsAsErrors: '*'}\n", '--header-filter', 'include/uwrt_mars_rover_drivetrain_hw/.*', '/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/src/tsv4w6qdap/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp']' returned non-zero exit status 4.
2: found compilation database for package "uwrt_mars_rover_drivetrain_hw"...
2:
2: -- run_test.py: return code 0
2: -- run_test.py: verify result file '/__w/uwrt_mars_rover/uwrt_mars_rover/ros_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml'
2/5 Test #2: clang_tidy ....................... Passed 17.71 sec
```
Exit status 4 indicating 4 clang-tidy violation errors, yet its still reported as a passed test
When running locally using latest rolling binary via `colcon test`:
```
1/5 Test #1: clang_format ..................... Passed 0.23 sec
test 2
Start 2: clang_tidy
2: Test command: /usr/bin/python3.8 "-u" "/opt/ros/rolling/share/ament_cmake_test/cmake/run_test.py" "/home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml" "--package-name" "uwrt_mars_rover_drivetrain_hw" "--output-file" "/home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw/ament_clang_tidy/clang_tidy.txt" "--command" "/opt/ros/rolling/bin/ament_clang_tidy" "--xunit-file" "/home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml" "/home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw" "--config" "/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/../../.clang-tidy"
2: Test timeout computed to be: 300
2: -- run_test.py: invoking following command in '/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw':
2: - /opt/ros/rolling/bin/ament_clang_tidy --xunit-file /home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml /home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw --config /home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/../../.clang-tidy
2: The invocation of "clang-tidy" failed with error code 4: Command '['/usr/bin/clang-tidy', '-p', '/home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw', "--config={CheckOptions: [{key: readability-identifier-naming.ClassCase, value: CamelCase}, {key: readability-identifier-naming.EnumCase, value: CamelCase}, {key: readability-identifier-naming.UnionCase, value: CamelCase}, {key: readability-identifier-naming.FunctionCase, value: camelBack}, {key: readability-identifier-naming.VariableCase, value: lower_case}, {key: readability-identifier-naming.ClassMemberSuffix, value: _}, {key: readability-identifier-naming.GlobalVariableCase, value: UPPER_CASE}, {key: readability-identifier-naming.StaticConstantCase, value: UPPER_CASE}, {key: readability-identifier-naming.ConstexprVariableCase, value: UPPER_CASE}, {key: readability-identifier-naming.EnumConstantCase, value: UPPER_CASE}, {key: readability-inconsistent-declaration-parameter-name.Strict, value: 1}], Checks: '-*, boost-*, bugprone-*, cppcoreguidelines-*, misc-*, modernize-*, performance-*, readability-*, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-constant-array-index, -cppcoreguidelines-pro-type-vararg, -cppcoreguidelines-pro-type-union-access, -cppcoreguidelines-non-private-member-variables-in-classes, -cppcoreguidelines-owning-memory, -misc-non-private-member-variables-in-classes, -modernize-use-trailing-return-type,', HeaderFilterRegex: .*/src/uwrt_mars_rover/.*, WarningsAsErrors: '*'}\n", '--header-filter', 'include/uwrt_mars_rover_drivetrain_hw/.*', '/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp']' returned non-zero exit status 4.
2: found compilation database for package "uwrt_mars_rover_drivetrain_hw"...
2:
2: -- run_test.py: return code 0
2: -- run_test.py: verify result file '/home/wmmc88/git-repos/ros2_uwrt_ws/build/uwrt_mars_rover_drivetrain_hw/test_results/uwrt_mars_rover_drivetrain_hw/clang_tidy.xunit.xml'
2/5 Test #2: clang_tidy ....................... Passed 11.15 sec
```
^ same result as CI running it using latest ament_lint master from source
When running locally using latest rolling binary via `ament_clang_tidy`:
```
❯ ament_clang_tidy
found compilation database for package "build"...
The invocation of "clang-tidy" failed with error code 1: Command '['/usr/bin/clang-tidy', '-p', 'build', '--header-filter', 'include/build/.*', '/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp']' returned non-zero exit status 1.
found compilation database for package "uwrt_mars_rover_drivetrain_hw"...
The invocation of "clang-tidy" failed with error code 4: Command '['/usr/bin/clang-tidy', '-p', 'build/uwrt_mars_rover_drivetrain_hw', '--header-filter', 'include/uwrt_mars_rover_drivetrain_hw/.*', '/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp']' returned non-zero exit status 4.
```
Prints that theres an error, but `echo $?` still reports 0. Also doesnt print what the errors actually are (and there doesnt seem to be any verbosity option in `ament_clang_tidy`)
Manually invoking the printed clang-tidy commands:
```
❯ /usr/bin/clang-tidy -p build --header-filter include/build/.* /home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp
31643 warnings generated.
/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp:4:1: error: constructor does not initialize these fields: actuator_state_position_, actuator_state_velocity_, actuator_state_iq_current_, joint_velocity_command_ [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
UWRTMarsRoverDrivetrainHWActuatorInterface::UWRTMarsRoverDrivetrainHWActuatorInterface()
^
Suppressed 31650 warnings (31642 in non-user code, 8 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
```
```
❯ /usr/bin/clang-tidy -p build/uwrt_mars_rover_drivetrain_hw --header-filter include/uwrt_mars_rover_drivetrain_hw/.* /home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp
31643 warnings generated.
/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/include/uwrt_mars_rover_drivetrain_hw/visibility_control.hpp:23:9: error: macro 'UWRT_MARS_ROVER_DRIVETRAIN_HW_EXPORT' used to declare a constant; consider using a 'constexpr' constant [cppcoreguidelines-macro-usage,-warnings-as-errors]
#define UWRT_MARS_ROVER_DRIVETRAIN_HW_EXPORT __attribute__((visibility("default")))
^
/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/include/uwrt_mars_rover_drivetrain_hw/visibility_control.hpp:26:9: error: macro 'UWRT_MARS_ROVER_DRIVETRAIN_HW_PUBLIC' used to declare a constant; consider using a 'constexpr' constant [cppcoreguidelines-macro-usage,-warnings-as-errors]
#define UWRT_MARS_ROVER_DRIVETRAIN_HW_PUBLIC __attribute__((visibility("default")))
^
/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/include/uwrt_mars_rover_drivetrain_hw/visibility_control.hpp:27:9: error: macro 'UWRT_MARS_ROVER_DRIVETRAIN_HW_LOCAL' used to declare a constant; consider using a 'constexpr' constant [cppcoreguidelines-macro-usage,-warnings-as-errors]
#define UWRT_MARS_ROVER_DRIVETRAIN_HW_LOCAL __attribute__((visibility("hidden")))
^
/home/wmmc88/git-repos/ros2_uwrt_ws/src/uwrt_mars_rover/uwrt_mars_rover_drivetrain/uwrt_mars_rover_drivetrain_hw/src/uwrt_mars_rover_drivetrain_hw_actuator_interface.cpp:4:1: error: constructor does not initialize these fields: actuator_state_position_, actuator_state_velocity_, actuator_state_iq_current_, joint_velocity_command_ [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
UWRTMarsRoverDrivetrainHWActuatorInterface::UWRTMarsRoverDrivetrainHWActuatorInterface()
^
Suppressed 31647 warnings (31639 in non-user code, 8 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings treated as errors
```
I finally can see the actual errors!
So the two issues I'm looking to get addressed here are failed tests being detected as passed tests, and failed tests not printing out the actual errors.
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.