File tree Expand file tree Collapse file tree 6 files changed +63
-6
lines changed Expand file tree Collapse file tree 6 files changed +63
-6
lines changed Original file line number Diff line number Diff line change
1
+ name : Sonarcube Scan
2
+ on :
3
+ push :
4
+ branches :
5
+ - master
6
+ pull_request :
7
+ types : [opened, synchronize, reopened]
8
+ jobs :
9
+ build :
10
+ name : Build
11
+ runs-on : ubuntu-latest
12
+ env :
13
+ BUILD_WRAPPER_OUT_DIR : build_wrapper_output_directory # Directory where build-wrapper output will be placed
14
+ steps :
15
+ - uses : actions/checkout@v4
16
+ with :
17
+ fetch-depth : 0 # Shallow clones should be disabled for a better relevancy of analysis
18
+ - name : Install Build Wrapper
19
+ uses : SonarSource/sonarqube-scan-action/install-build-wrapper@v4
20
+
21
+ - name : Install Dependencies
22
+ run : |
23
+ sudo apt-get update
24
+ sudo apt-get install -y libzmq3-dev libsqlite3-dev
25
+
26
+ - name : Install googletest
27
+ uses : Bacondish2023/setup-googletest@v1
28
+
29
+ - name : Run Build Wrapper
30
+ run : |
31
+ mkdir build
32
+ cmake -S . -B build
33
+ build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build build/ --config Release
34
+ - name : SonarQube Scan
35
+ uses : SonarSource/sonarqube-scan-action@v4
36
+ env :
37
+ SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }} # Put the name of your token here
38
+ with :
39
+ args : >
40
+ --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json"
Original file line number Diff line number Diff line change 22
22
add_definitions (-Wpedantic -fno-omit-frame-pointer )
23
23
endif ()
24
24
25
+ # create compile_commands.json
26
+ set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
27
+
25
28
26
29
#---- project configuration ----
27
30
option (BTCPP_SHARED_LIBS "Build shared libraries" ON )
Original file line number Diff line number Diff line change @@ -149,7 +149,7 @@ class Tree
149
149
[[nodiscard]] Blackboard::Ptr rootBlackboard ();
150
150
151
151
// Call the visitor for each node of the tree.
152
- void applyVisitor (const std::function<void (const TreeNode*)>& visitor);
152
+ void applyVisitor (const std::function<void (const TreeNode*)>& visitor) const ;
153
153
154
154
// Call the visitor for each node of the tree.
155
155
void applyVisitor (const std::function<void (TreeNode*)>& visitor);
Original file line number Diff line number Diff line change @@ -93,11 +93,12 @@ inline void checkTruncation(const From& from)
93
93
if constexpr (std::is_integral_v<From> && std::is_floating_point_v<To>)
94
94
{
95
95
// Check if value can be represented exactly in the target type
96
- To as_float = static_cast <To>(from);
97
- From back_conv = static_cast <From>(as_float);
98
- if (back_conv != from)
96
+ constexpr auto max_exact = (1LL << std::numeric_limits<double >::digits) - 1 ;
97
+ if (from > max_exact || from < -max_exact)
99
98
{
100
- throw std::runtime_error (" Loss of precision in conversion to floating point" );
99
+ throw std::runtime_error (" Loss of precision when converting a large integer number "
100
+ " to floating point:" +
101
+ std::to_string (from));
101
102
}
102
103
}
103
104
// Handle floating point to integer
Original file line number Diff line number Diff line change
1
+ sonar.projectKey =BehaviorTree_BehaviorTree.CPP
2
+ sonar.organization =behaviortree
3
+
4
+ # This is the name and version displayed in the SonarCloud UI.
5
+ # sonar.projectName=BehaviorTree.CPP
6
+ # sonar.projectVersion=1.0
7
+
8
+
9
+ # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
10
+ # sonar.sources=.
11
+
12
+ # Encoding of the source code. Default is default system encoding
13
+ # sonar.sourceEncoding=UTF-8
Original file line number Diff line number Diff line change @@ -597,7 +597,7 @@ Blackboard::Ptr Tree::rootBlackboard()
597
597
return {};
598
598
}
599
599
600
- void Tree::applyVisitor (const std::function<void (const TreeNode*)>& visitor)
600
+ void Tree::applyVisitor (const std::function<void (const TreeNode*)>& visitor) const
601
601
{
602
602
BT::applyRecursiveVisitor (static_cast <const TreeNode*>(rootNode ()), visitor);
603
603
}
You can’t perform that action at this time.
0 commit comments