update .clang-format header inclusion order

Added the header inclusion order to the .clang-format file generated
these changes.

Change-Id: Ia31b21d7ea451cac0309828006bc17c27cbd5bd5
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/.clang-format b/.clang-format
index bbc1bb1..00d9a54 100644
--- a/.clang-format
+++ b/.clang-format
@@ -48,6 +48,20 @@
 ExperimentalAutoDetectBinPacking: false
 FixNamespaceComments: true
 ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
+IncludeBlocks: Regroup
+IncludeCategories:
+  - Regex:           '^[<"](gtest|gmock)'
+    Priority:        5
+  - Regex:           '^"config.h"'
+    Priority:        -1
+  - Regex:           '^".*\.hpp"'
+    Priority:        1
+  - Regex:           '^<.*\.h>'
+    Priority:        2
+  - Regex:           '^<.*'
+    Priority:        3
+  - Regex:           '.*'
+    Priority:        4
 IndentCaseLabels: true
 IndentWidth:     4
 IndentWrappedFunctionNames: true
@@ -67,7 +81,7 @@
 PenaltyReturnTypeOnItsOwnLine: 60
 PointerAlignment: Right
 ReflowComments:  true
-SortIncludes:    false
+SortIncludes:    true
 SpaceAfterCStyleCast: false
 SpaceBeforeAssignmentOperators: true
 SpaceBeforeParens: ControlStatements
diff --git a/example/asio-example.cpp b/example/asio-example.cpp
index 7477357..31b55f2 100644
--- a/example/asio-example.cpp
+++ b/example/asio-example.cpp
@@ -1,11 +1,11 @@
-#include <iostream>
-#include <ctime>
+#include <boost/asio.hpp>
 #include <chrono>
-#include <sdbusplus/bus.hpp>
-#include <sdbusplus/server.hpp>
+#include <ctime>
+#include <iostream>
 #include <sdbusplus/asio/connection.hpp>
 #include <sdbusplus/asio/object_server.hpp>
-#include <boost/asio.hpp>
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server.hpp>
 
 int foo(int test)
 {
diff --git a/example/calculator-server.cpp b/example/calculator-server.cpp
index 753d2d7..f128bf1 100644
--- a/example/calculator-server.cpp
+++ b/example/calculator-server.cpp
@@ -1,7 +1,7 @@
 #include <iostream>
-#include <sdbusplus/server.hpp>
-#include <net/poettering/Calculator/server.hpp>
 #include <net/poettering/Calculator/error.hpp>
+#include <net/poettering/Calculator/server.hpp>
+#include <sdbusplus/server.hpp>
 
 using Calculator_inherit =
     sdbusplus::server::object_t<sdbusplus::net::poettering::server::Calculator>;
diff --git a/example/list-users.cpp b/example/list-users.cpp
index d5e59d6..7b5a1a6 100644
--- a/example/list-users.cpp
+++ b/example/list-users.cpp
@@ -1,6 +1,6 @@
-#include <sdbusplus/bus.hpp>
-#include <iostream>
 #include <cstdint>
+#include <iostream>
+#include <sdbusplus/bus.hpp>
 
 /** An example dbus client application.
  *  Calls org.freedesktop.login1's ListUsers interface to find all active
diff --git a/mapbox/variant.hpp b/mapbox/variant.hpp
index 46db853..2019fc5 100644
--- a/mapbox/variant.hpp
+++ b/mapbox/variant.hpp
@@ -2,7 +2,8 @@
 #define MAPBOX_UTIL_VARIANT_HPP
 
 #include <cassert>
-#include <cstddef>   // size_t
+#include <cstddef> // size_t
+#include <mapbox/recursive_wrapper.hpp>
 #include <new>       // operator new
 #include <stdexcept> // runtime_error
 #include <string>
@@ -11,8 +12,6 @@
 #include <typeinfo>
 #include <utility>
 
-#include <mapbox/recursive_wrapper.hpp>
-
 // clang-format off
 // [[deprecated]] is only available in C++14, use this for the time being
 #if __cplusplus <= 201103L
diff --git a/sdbusplus/asio/connection.hpp b/sdbusplus/asio/connection.hpp
index 146b1b1..35bd853 100644
--- a/sdbusplus/asio/connection.hpp
+++ b/sdbusplus/asio/connection.hpp
@@ -15,15 +15,15 @@
 */
 #pragma once
 
+#include <boost/asio.hpp>
+#include <boost/callable_traits.hpp>
+#include <chrono>
+#include <experimental/tuple>
+#include <sdbusplus/asio/detail/async_send_handler.hpp>
 #include <sdbusplus/message.hpp>
 #include <sdbusplus/utility/read_into_tuple.hpp>
 #include <sdbusplus/utility/type_traits.hpp>
-#include <sdbusplus/asio/detail/async_send_handler.hpp>
-#include <chrono>
 #include <string>
-#include <experimental/tuple>
-#include <boost/asio.hpp>
-#include <boost/callable_traits.hpp>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/asio/detail/async_send_handler.hpp b/sdbusplus/asio/detail/async_send_handler.hpp
index e9e036d..1c56eb2 100644
--- a/sdbusplus/asio/detail/async_send_handler.hpp
+++ b/sdbusplus/asio/detail/async_send_handler.hpp
@@ -15,10 +15,11 @@
 */
 #pragma once
 
-#include <sdbusplus/message.hpp>
-#include <sdbusplus/bus.hpp>
 #include <systemd/sd-bus.h>
+
 #include <boost/asio.hpp>
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/message.hpp>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/asio/object_server.hpp b/sdbusplus/asio/object_server.hpp
index bdd910b..e4cb6ca 100644
--- a/sdbusplus/asio/object_server.hpp
+++ b/sdbusplus/asio/object_server.hpp
@@ -1,14 +1,14 @@
 #pragma once
 
-#include <list>
-#include <sdbusplus/exception.hpp>
-#include <sdbusplus/server.hpp>
-#include <sdbusplus/asio/connection.hpp>
-#include <sdbusplus/message/types.hpp>
-#include <sdbusplus/message/read.hpp>
-#include <sdbusplus/utility/tuple_to_array.hpp>
 #include <boost/any.hpp>
 #include <boost/container/flat_map.hpp>
+#include <list>
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/exception.hpp>
+#include <sdbusplus/message/read.hpp>
+#include <sdbusplus/message/types.hpp>
+#include <sdbusplus/server.hpp>
+#include <sdbusplus/utility/tuple_to_array.hpp>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/bus/match.hpp b/sdbusplus/bus/match.hpp
index 10cd679..75d62b8 100644
--- a/sdbusplus/bus/match.hpp
+++ b/sdbusplus/bus/match.hpp
@@ -2,10 +2,10 @@
 
 #include <functional>
 #include <memory>
-#include <string>
-#include <sdbusplus/slot.hpp>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/message.hpp>
+#include <sdbusplus/slot.hpp>
+#include <string>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/exception.hpp b/sdbusplus/exception.hpp
index 2e170ef..6fe8d70 100644
--- a/sdbusplus/exception.hpp
+++ b/sdbusplus/exception.hpp
@@ -1,9 +1,10 @@
 #pragma once
 
+#include <systemd/sd-bus.h>
+
 #include <exception>
 #include <sdbusplus/sdbus.hpp>
 #include <string>
-#include <systemd/sd-bus.h>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/message.hpp b/sdbusplus/message.hpp
index af18f30..dc2fe5b 100644
--- a/sdbusplus/message.hpp
+++ b/sdbusplus/message.hpp
@@ -1,12 +1,13 @@
 #pragma once
 
-#include <memory>
-#include <type_traits>
 #include <systemd/sd-bus.h>
+
+#include <memory>
 #include <sdbusplus/message/append.hpp>
-#include <sdbusplus/message/read.hpp>
 #include <sdbusplus/message/native_types.hpp>
+#include <sdbusplus/message/read.hpp>
 #include <sdbusplus/sdbus.hpp>
+#include <type_traits>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/message/append.hpp b/sdbusplus/message/append.hpp
index b8f6b5e..0451bdd 100644
--- a/sdbusplus/message/append.hpp
+++ b/sdbusplus/message/append.hpp
@@ -1,13 +1,13 @@
 #pragma once
 
-#include <tuple>
-
 #include <systemd/sd-bus.h>
+
 #include <sdbusplus/message/types.hpp>
 #include <sdbusplus/sdbus.hpp>
 #include <sdbusplus/utility/container_traits.hpp>
 #include <sdbusplus/utility/tuple_to_array.hpp>
 #include <sdbusplus/utility/type_traits.hpp>
+#include <tuple>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/message/read.hpp b/sdbusplus/message/read.hpp
index 6ab6a00..b3fb73b 100644
--- a/sdbusplus/message/read.hpp
+++ b/sdbusplus/message/read.hpp
@@ -1,11 +1,12 @@
 #pragma once
 
-#include <tuple>
+#include <systemd/sd-bus.h>
+
 #include <sdbusplus/exception.hpp>
 #include <sdbusplus/message/types.hpp>
-#include <sdbusplus/utility/type_traits.hpp>
 #include <sdbusplus/utility/tuple_to_array.hpp>
-#include <systemd/sd-bus.h>
+#include <sdbusplus/utility/type_traits.hpp>
+#include <tuple>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/message/types.hpp b/sdbusplus/message/types.hpp
index af7be35..6156c0e 100644
--- a/sdbusplus/message/types.hpp
+++ b/sdbusplus/message/types.hpp
@@ -1,15 +1,15 @@
 #pragma once
 
-#include <tuple>
-#include <string>
-#include <vector>
-#include <map>
-#include <mapbox/variant.hpp>
 #include <systemd/sd-bus.h>
 
+#include <map>
+#include <mapbox/variant.hpp>
+#include <sdbusplus/message/native_types.hpp>
 #include <sdbusplus/utility/container_traits.hpp>
 #include <sdbusplus/utility/type_traits.hpp>
-#include <sdbusplus/message/native_types.hpp>
+#include <string>
+#include <tuple>
+#include <vector>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/server/interface.hpp b/sdbusplus/server/interface.hpp
index 35c1fe0..4c9d133 100644
--- a/sdbusplus/server/interface.hpp
+++ b/sdbusplus/server/interface.hpp
@@ -1,11 +1,12 @@
 #pragma once
 
-#include <string>
 #include <systemd/sd-bus.h>
-#include <sdbusplus/slot.hpp>
-#include <sdbusplus/vtable.hpp>
+
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/sdbus.hpp>
+#include <sdbusplus/slot.hpp>
+#include <sdbusplus/vtable.hpp>
+#include <string>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/server/transaction.hpp b/sdbusplus/server/transaction.hpp
index db07504..f6d9234 100644
--- a/sdbusplus/server/transaction.hpp
+++ b/sdbusplus/server/transaction.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
-#include <thread>
 #include <sdbusplus/bus.hpp>
+#include <thread>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/slot.hpp b/sdbusplus/slot.hpp
index 364d002..30a29c3 100644
--- a/sdbusplus/slot.hpp
+++ b/sdbusplus/slot.hpp
@@ -1,8 +1,9 @@
 #pragma once
 
-#include <memory>
 #include <systemd/sd-bus.h>
 
+#include <memory>
+
 namespace sdbusplus
 {
 
diff --git a/sdbusplus/test/sdbus_mock.hpp b/sdbusplus/test/sdbus_mock.hpp
index 6939630..4f1bfb3 100644
--- a/sdbusplus/test/sdbus_mock.hpp
+++ b/sdbusplus/test/sdbus_mock.hpp
@@ -1,10 +1,10 @@
 #pragma once
 
-#include "gmock/gmock.h"
-
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/sdbus.hpp>
 
+#include "gmock/gmock.h"
+
 namespace sdbusplus
 {
 
diff --git a/sdbusplus/utility/read_into_tuple.hpp b/sdbusplus/utility/read_into_tuple.hpp
index 9628e11..30dbea5 100644
--- a/sdbusplus/utility/read_into_tuple.hpp
+++ b/sdbusplus/utility/read_into_tuple.hpp
@@ -15,8 +15,8 @@
 */
 
 #pragma once
-#include <tuple>
 #include <sdbusplus/message.hpp>
+#include <tuple>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/utility/tuple_to_array.hpp b/sdbusplus/utility/tuple_to_array.hpp
index fd57d1d..dfaf60a 100644
--- a/sdbusplus/utility/tuple_to_array.hpp
+++ b/sdbusplus/utility/tuple_to_array.hpp
@@ -1,8 +1,8 @@
 #pragma once
 
-#include <utility>
-#include <tuple>
 #include <array>
+#include <tuple>
+#include <utility>
 
 namespace sdbusplus
 {
diff --git a/sdbusplus/utility/type_traits.hpp b/sdbusplus/utility/type_traits.hpp
index e2e0b90..9ba0180 100644
--- a/sdbusplus/utility/type_traits.hpp
+++ b/sdbusplus/utility/type_traits.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
-#include <type_traits>
 #include <tuple>
+#include <type_traits>
 
 namespace sdbusplus
 {
diff --git a/test/bus/list_names.cpp b/test/bus/list_names.cpp
index a1967d9..834b8f2 100644
--- a/test/bus/list_names.cpp
+++ b/test/bus/list_names.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
 #include <sdbusplus/bus.hpp>
 
+#include <gtest/gtest.h>
+
 constexpr auto this_name = "xyz.openbmc_project.sdbusplus.test.ListNames";
 
 class ListNames : public ::testing::Test
diff --git a/test/bus/match.cpp b/test/bus/match.cpp
index 80bc259..3a5cc49 100644
--- a/test/bus/match.cpp
+++ b/test/bus/match.cpp
@@ -1,7 +1,8 @@
-#include <gtest/gtest.h>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/bus/match.hpp>
 
+#include <gtest/gtest.h>
+
 class Match : public ::testing::Test
 {
   protected:
diff --git a/test/exception/sdbus_error.cpp b/test/exception/sdbus_error.cpp
index c1d8baa..40d88ee 100644
--- a/test/exception/sdbus_error.cpp
+++ b/test/exception/sdbus_error.cpp
@@ -1,12 +1,14 @@
+#include <systemd/sd-bus.h>
+
 #include <cstdlib>
-#include <gtest/gtest.h>
 #include <sdbusplus/exception.hpp>
 #include <sdbusplus/test/sdbus_mock.hpp>
 #include <stdexcept>
 #include <string>
-#include <systemd/sd-bus.h>
 #include <utility>
 
+#include <gtest/gtest.h>
+
 // Needed for constructor error testing
 extern sdbusplus::SdBusImpl sdbus_impl;
 
diff --git a/test/message/append.cpp b/test/message/append.cpp
index 58775b8..6485d99 100644
--- a/test/message/append.cpp
+++ b/test/message/append.cpp
@@ -1,16 +1,18 @@
+#include <systemd/sd-bus-protocol.h>
+
 #include <array>
-#include <gtest/gtest.h>
-#include <gmock/gmock.h>
 #include <map>
 #include <sdbusplus/message.hpp>
 #include <sdbusplus/test/sdbus_mock.hpp>
 #include <set>
 #include <string>
-#include <systemd/sd-bus-protocol.h>
 #include <tuple>
 #include <unordered_map>
 #include <vector>
 
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
 namespace
 {
 
diff --git a/test/message/native_types.cpp b/test/message/native_types.cpp
index eed7669..29dad22 100644
--- a/test/message/native_types.cpp
+++ b/test/message/native_types.cpp
@@ -1,8 +1,9 @@
-#include <gtest/gtest.h>
-#include <sdbusplus/message.hpp>
-#include <vector>
 #include <map>
+#include <sdbusplus/message.hpp>
 #include <unordered_map>
+#include <vector>
+
+#include <gtest/gtest.h>
 
 /* Suite tests that object_path and signature can be cleanly converted to
  * and from strings and used as container parameters.
diff --git a/test/message/read.cpp b/test/message/read.cpp
index 168865a..07bc984 100644
--- a/test/message/read.cpp
+++ b/test/message/read.cpp
@@ -1,17 +1,19 @@
+#include <systemd/sd-bus-protocol.h>
+
 #include <cerrno>
-#include <gtest/gtest.h>
-#include <gmock/gmock.h>
 #include <map>
 #include <sdbusplus/exception.hpp>
 #include <sdbusplus/message.hpp>
 #include <sdbusplus/test/sdbus_mock.hpp>
 #include <set>
 #include <string>
-#include <systemd/sd-bus-protocol.h>
 #include <tuple>
 #include <unordered_map>
 #include <vector>
 
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
 namespace
 {
 
diff --git a/test/message/types.cpp b/test/message/types.cpp
index e779c79..a6df2f4 100644
--- a/test/message/types.cpp
+++ b/test/message/types.cpp
@@ -1,7 +1,8 @@
-#include <gtest/gtest.h>
 #include <sdbusplus/message/types.hpp>
 #include <sdbusplus/utility/tuple_to_array.hpp>
 
+#include <gtest/gtest.h>
+
 template <typename... Args> auto dbus_string(Args&&... args)
 {
     return std::string(sdbusplus::utility::tuple_to_array(
diff --git a/test/utility/tuple_to_array.cpp b/test/utility/tuple_to_array.cpp
index bf73783..0b79170 100644
--- a/test/utility/tuple_to_array.cpp
+++ b/test/utility/tuple_to_array.cpp
@@ -1,4 +1,5 @@
 #include <sdbusplus/utility/tuple_to_array.hpp>
+
 #include <gtest/gtest.h>
 
 TEST(TupleToArray, Test3Chars)
diff --git a/test/utility/type_traits.cpp b/test/utility/type_traits.cpp
index 1a411f7..6e15201 100644
--- a/test/utility/type_traits.cpp
+++ b/test/utility/type_traits.cpp
@@ -1,7 +1,8 @@
-#include <gtest/gtest.h>
 #include <sdbusplus/utility/type_traits.hpp>
 #include <type_traits>
 
+#include <gtest/gtest.h>
+
 namespace
 {
 
diff --git a/test/vtable/vtable.cpp b/test/vtable/vtable.cpp
index bc67382..399630c 100644
--- a/test/vtable/vtable.cpp
+++ b/test/vtable/vtable.cpp
@@ -1,4 +1,5 @@
 #include <sdbusplus/vtable.hpp>
+
 #include <gtest/gtest.h>
 
 static const sdbusplus::vtable::vtable_t example[] = {