Skip to content

Commit 912c24c

Browse files
committed
Make includeorder.py handle #ifndef
1 parent 9d06be3 commit 912c24c

File tree

2 files changed

+84
-3
lines changed

2 files changed

+84
-3
lines changed

wpiformat/wpiformat/includeorder.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,10 +262,10 @@ def header_sort(self, config_file, lines_list, file_name, start, end, ifdef_leve
262262

263263
i = start
264264
while i < end:
265-
if "#ifdef" in lines_list[i]:
265+
if "#ifdef" in lines_list[i] or "#ifndef" in lines_list[i]:
266266
ifdef_count = 1
267267
for j in range(i + 1, end):
268-
if "#ifdef" in lines_list[j]:
268+
if "#ifdef" in lines_list[j] or "#ifndef" in lines_list[j]:
269269
ifdef_count += 1
270270
elif "#endif" in lines_list[j]:
271271
ifdef_count -= 1
@@ -419,7 +419,9 @@ def run_pipeline(self, config_file, name, lines):
419419
# Write lines from beginning of file to headers
420420
i = 0
421421
while i < len(lines_list) and (
422-
"#ifdef" not in lines_list[i] and "#include" not in lines_list[i]
422+
"#ifdef" not in lines_list[i]
423+
and "#ifndef" not in lines_list[i]
424+
and "#include" not in lines_list[i]
423425
):
424426
i += 1
425427
output_list = lines_list[0:i]

wpiformat/wpiformat/test/test_includeorder.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,4 +949,83 @@ def test_includeorder():
949949
)
950950
test.add_latest_input_as_output(True)
951951

952+
# Ensure #ifndef is handled properly
953+
test.add_input(
954+
"./Test.h",
955+
"#ifndef __APPLE__"
956+
+ os.linesep
957+
+ "#include <util.h>"
958+
+ os.linesep
959+
+ "#elif !defined(_WIN32)"
960+
+ os.linesep
961+
+ "#include <pty.h>"
962+
+ os.linesep
963+
+ "#endif"
964+
+ os.linesep,
965+
)
966+
test.add_latest_input_as_output(True)
967+
968+
# Ensure #ifndef is handled properly
969+
test.add_input(
970+
"./Test.h",
971+
"#ifndef _WIN32"
972+
+ os.linesep
973+
+ "#include <pty.h>"
974+
+ os.linesep
975+
+ "#endif"
976+
+ os.linesep,
977+
)
978+
test.add_latest_input_as_output(True)
979+
980+
# Ensure include guards are handled properly
981+
test.add_input(
982+
"./Test.h",
983+
"#ifndef CSCORE_CONFIGURABLESOURCEIMPL_H_"
984+
+ os.linesep
985+
+ "#define CSCORE_CONFIGURABLESOURCEIMPL_H_"
986+
+ os.linesep
987+
+ os.linesep
988+
+ "#include <atomic>"
989+
+ os.linesep
990+
+ "#include <functional>"
991+
+ os.linesep
992+
+ "#include <memory>"
993+
+ os.linesep
994+
+ "#include <string>"
995+
+ os.linesep
996+
+ "#include <string_view>"
997+
+ os.linesep
998+
+ "#include <vector>"
999+
+ os.linesep
1000+
+ os.linesep
1001+
+ "#include <wpi/span.h>"
1002+
+ os.linesep
1003+
+ os.linesep
1004+
+ '#include "SourceImpl.h"'
1005+
+ os.linesep
1006+
+ os.linesep
1007+
+ "namespace cs {"
1008+
+ os.linesep
1009+
+ os.linesep
1010+
+ "class ConfigurableSourceImpl : public SourceImpl {"
1011+
+ os.linesep
1012+
+ " protected:"
1013+
+ os.linesep
1014+
+ " ConfigurableSourceImpl(std::string_view name, wpi::Logger& logger,"
1015+
+ os.linesep
1016+
+ " Notifier& notifier, Telemetry& telemetry,"
1017+
+ os.linesep
1018+
+ " const VideoMode& mode);"
1019+
+ os.linesep
1020+
+ "};"
1021+
+ os.linesep
1022+
+ os.linesep
1023+
+ "} // namespace cs"
1024+
+ os.linesep
1025+
+ os.linesep
1026+
+ "#endif // CSCORE_CONFIGURABLESOURCEIMPL_H_"
1027+
+ os.linesep,
1028+
)
1029+
test.add_latest_input_as_output(True)
1030+
9521031
test.run(OutputType.FILE)

0 commit comments

Comments
 (0)