From 3f45f3afb5d655bbf06c3a8233cb95b5266d7fef Mon Sep 17 00:00:00 2001 From: Nino Tarantino Date: Fri, 4 Sep 2026 13:17:05 -0500 Subject: [PATCH 1/2] Enforce consistent file extensions --- .github/workflows/static-analysis.yml | 36 ++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 1b7ba92f..f2e5de27 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -66,6 +66,40 @@ jobs: exit 1 fi + # CML file extensions are .hh for header files and .cc for source files. + - name: File extensions are correct + run: | + wrong_extensions=( + c + h + cpp cxx cp "c++" + hpp hxx hp "h++" + tpp txx thh th + ) + declare -A forbidden + for ext in "${wrong_extensions[@]}"; do + forbidden["$ext"]=1 + done + + violating_files=() + while IFS= read -r basename; do + [[ "$basename" != *.* ]] && continue + ext="${basename##*.}" + ext="${ext,,}" + if [[ -n "${forbidden[$ext]:-}" ]]; then + violating_files+=("$basename") + fi + done < <(git ls-files | awk -F/ '{print $NF}') + + violations=${#violating_files[@]} + if [[ $violations -gt 0 ]]; then + echo "Incorrect extension found for $violations file(s)." + printf '\t%s\n' "${violating_files[@]}" | tee file-extension-issues.log + echo + echo "Headers must use .hh and source files must use .cc" + fi + exit "$violations" + - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -231,4 +265,4 @@ jobs: name: clang-tidy-failure-logs path: clang-tidy.log if-no-files-found: warn - retention-days: 2 + retention-days: 2 \ No newline at end of file From a8a7d75a4837f9c9f1e35806a35e7b4b45b141c9 Mon Sep 17 00:00:00 2001 From: Nino Tarantino Date: Fri, 4 Sep 2026 14:50:52 -0500 Subject: [PATCH 2/2] Standardize C++ file extensions --- models/dynamics/CMakeLists.txt | 2 +- .../test_mass_derivative_dynamics.cc} | 0 models/environment/CMakeLists.txt | 2 +- .../{ConvertBinToCsv.cpp => convert_bin_to_csv.cc} | 0 .../SIM_lookup/Binaries/corrupt_binaries/README | 2 +- .../{WriteBinFile.cpp => write_bin_file.cc} | 0 .../verif/SIM_lookup/BinaryFileUtilities/.gitignore | 3 +++ .../verif/SIM_lookup/BinaryFileUtilities/makefile | 12 ++++++------ .../{ReadBinFile.cpp => read_bin_file.cc} | 0 ...ReadEntireBinFile.cpp => read_entire_bin_file.cc} | 0 .../{WriteBinFile.cpp => write_bin_file.cc} | 1 - .../std_atmos_1976/src/std_atmos_1976.cc | 2 +- .../std_atmos_1976/src/std_atmos_1976_dd.cc | 2 +- .../{std_atmos_formula.h => std_atmos_formula.hh} | 4 ++-- models/tools/CMakeLists.txt | 2 +- .../models/{tests => test}/test_unit_framework.cc | 0 models/utilities/CMakeLists.txt | 2 +- .../env_utils/include/{env_utils.h => env_utils.hh} | 4 ++-- models/utilities/env_utils/verif/SIM_verif/S_define | 2 +- .../SIM_verif_JIT/RUN_1_JIT/{input.cpp => input.cc} | 0 .../verif/SIM_verif_JIT/RUN_1_JIT/input.py | 4 ++-- trickified/S_source.hh | 4 ++-- 22 files changed, 25 insertions(+), 23 deletions(-) rename models/dynamics/mass_derivative_dynamics/{tests/test_mass_derivative_dynamics.cpp => test/test_mass_derivative_dynamics.cc} (100%) rename models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/{ConvertBinToCsv.cpp => convert_bin_to_csv.cc} (100%) rename models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/{WriteBinFile.cpp => write_bin_file.cc} (100%) create mode 100644 models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/.gitignore rename models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/{ReadBinFile.cpp => read_bin_file.cc} (100%) rename models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/{ReadEntireBinFile.cpp => read_entire_bin_file.cc} (100%) rename models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/{WriteBinFile.cpp => write_bin_file.cc} (98%) rename models/environment/atmos/atmosphere_models/std_atmos_1976/src/{std_atmos_formula.h => std_atmos_formula.hh} (98%) rename models/tools/unit_test/models/{tests => test}/test_unit_framework.cc (100%) rename models/utilities/env_utils/include/{env_utils.h => env_utils.hh} (95%) rename models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/{input.cpp => input.cc} (100%) diff --git a/models/dynamics/CMakeLists.txt b/models/dynamics/CMakeLists.txt index 56289fdd..b5525e20 100644 --- a/models/dynamics/CMakeLists.txt +++ b/models/dynamics/CMakeLists.txt @@ -106,5 +106,5 @@ add_cml_tests( dynamics SOURCES - mass_derivative_dynamics/tests/test_mass_derivative_dynamics.cpp + mass_derivative_dynamics/test/test_mass_derivative_dynamics.cc ) diff --git a/models/dynamics/mass_derivative_dynamics/tests/test_mass_derivative_dynamics.cpp b/models/dynamics/mass_derivative_dynamics/test/test_mass_derivative_dynamics.cc similarity index 100% rename from models/dynamics/mass_derivative_dynamics/tests/test_mass_derivative_dynamics.cpp rename to models/dynamics/mass_derivative_dynamics/test/test_mass_derivative_dynamics.cc diff --git a/models/environment/CMakeLists.txt b/models/environment/CMakeLists.txt index 35700caf..7a10601a 100644 --- a/models/environment/CMakeLists.txt +++ b/models/environment/CMakeLists.txt @@ -16,7 +16,7 @@ add_cml_library( atmos/atmosphere_models/DRWP_atmos/include/lookup_winds.hh atmos/atmosphere_models/simple_lookup_wind/include/simple_lookup_wind.hh atmos/atmosphere_models/std_atmos_1976/include/std_atmos_1976.hh - atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.h + atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.hh atmos/first_order_hold/include/first_order_hold.hh atmos/gust/include/gust.hh atmos/lagged_atmosphere/include/lagged_atmos_payload_data.hh diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/ConvertBinToCsv.cpp b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/convert_bin_to_csv.cc similarity index 100% rename from models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/ConvertBinToCsv.cpp rename to models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/convert_bin_to_csv.cc diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/README b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/README index 02050e0a..e6a569da 100644 --- a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/README +++ b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/README @@ -1,2 +1,2 @@ -The source code WriteBinFile.cpp will generate the *.bin files if they ever +The source code write_bin_file.cc will generate the *.bin files if they ever need to be modified. diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/WriteBinFile.cpp b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/write_bin_file.cc similarity index 100% rename from models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/WriteBinFile.cpp rename to models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/Binaries/corrupt_binaries/write_bin_file.cc diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/.gitignore b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/.gitignore new file mode 100644 index 00000000..6662a41a --- /dev/null +++ b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/.gitignore @@ -0,0 +1,3 @@ +ReadBinFile +ReadEntireBinFile +WriteBinFile diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/makefile b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/makefile index 2e229749..62986f1b 100644 --- a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/makefile +++ b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/makefile @@ -1,13 +1,13 @@ all : ReadBinFile WriteBinFile ReadEntireBinFile -ReadBinFile : ReadBinFile.cpp - g++ -g -std=c++17 -Wall -Wextra -Werror -o ReadBinFile ReadBinFile.cpp -I. +ReadBinFile : read_bin_file.cc + g++ -g -std=c++17 -Wall -Wextra -Werror -o ReadBinFile read_bin_file.cc -I. -ReadEntireBinFile : ReadEntireBinFile.cpp - g++ -g -std=c++17 -Wall -Wextra -Werror -o ReadEntireBinFile ReadEntireBinFile.cpp -I. +ReadEntireBinFile : read_entire_bin_file.cc + g++ -g -std=c++17 -Wall -Wextra -Werror -o ReadEntireBinFile read_entire_bin_file.cc -I. -WriteBinFile : WriteBinFile.cpp - g++ -g -std=c++17 -Wall -Wextra -Werror -o WriteBinFile WriteBinFile.cpp -I. +WriteBinFile : write_bin_file.cc + g++ -g -std=c++17 -Wall -Wextra -Werror -o WriteBinFile write_bin_file.cc -I. zap : rm ReadBinFile ReadEntireBinFile WriteBinFile *.o diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/ReadBinFile.cpp b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/read_bin_file.cc similarity index 100% rename from models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/ReadBinFile.cpp rename to models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/read_bin_file.cc diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/ReadEntireBinFile.cpp b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/read_entire_bin_file.cc similarity index 100% rename from models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/ReadEntireBinFile.cpp rename to models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/read_entire_bin_file.cc diff --git a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/WriteBinFile.cpp b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/write_bin_file.cc similarity index 98% rename from models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/WriteBinFile.cpp rename to models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/write_bin_file.cc index 8b9a5a9c..341e2d84 100644 --- a/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/WriteBinFile.cpp +++ b/models/environment/atmos/atmosphere_models/DRWP_atmos/verif/SIM_lookup/BinaryFileUtilities/write_bin_file.cc @@ -9,7 +9,6 @@ int main() { std::cout.precision(std::numeric_limits::digits10); filename = "DRWP_6dependentvariables.bin"; - int num_variables = 6; int nProfiles = 3; int nAltitudes = 5; diff --git a/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976.cc b/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976.cc index 91424e02..5ae94771 100644 --- a/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976.cc +++ b/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976.cc @@ -41,7 +41,7 @@ ASSUMPTIONS AND LIMITATIONS: #include "cml/models/utilities/cml_message/include/cml_message.hh" #include "../include/std_atmos_1976.hh" -#include "std_atmos_formula.h" +#include "std_atmos_formula.hh" STD1976::STD1976() diff --git a/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976_dd.cc b/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976_dd.cc index 493a191d..b81cd4e1 100644 --- a/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976_dd.cc +++ b/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_1976_dd.cc @@ -28,7 +28,7 @@ LIBRARY DEPENDENCIES: #include "cml/models/utilities/cml_message/include/cml_message.hh" #include "../include/std_atmos_1976.hh" -#include "std_atmos_formula.h" +#include "std_atmos_formula.hh" const double STD1976::min_valid_alt = -5000.0; diff --git a/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.h b/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.hh similarity index 98% rename from models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.h rename to models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.hh index 431d312e..3b576572 100644 --- a/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.h +++ b/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.hh @@ -12,8 +12,8 @@ ********************************************************************************/ -#ifndef CML_STD_ATMOS_FORMULA_H -#define CML_STD_ATMOS_FORMULA_H +#ifndef CML_STD_ATMOS_FORMULA_HH +#define CML_STD_ATMOS_FORMULA_HH #include #include diff --git a/models/tools/CMakeLists.txt b/models/tools/CMakeLists.txt index 4831e4f5..c4f9f440 100644 --- a/models/tools/CMakeLists.txt +++ b/models/tools/CMakeLists.txt @@ -16,5 +16,5 @@ add_cml_tests( tools SOURCES - unit_test/models/tests/test_unit_framework.cc + unit_test/models/test/test_unit_framework.cc ) diff --git a/models/tools/unit_test/models/tests/test_unit_framework.cc b/models/tools/unit_test/models/test/test_unit_framework.cc similarity index 100% rename from models/tools/unit_test/models/tests/test_unit_framework.cc rename to models/tools/unit_test/models/test/test_unit_framework.cc diff --git a/models/utilities/CMakeLists.txt b/models/utilities/CMakeLists.txt index f946e73e..b3e71986 100644 --- a/models/utilities/CMakeLists.txt +++ b/models/utilities/CMakeLists.txt @@ -22,7 +22,7 @@ add_cml_library( constraint_check/include/valset_constraint.hh convert_string/include/convert_string.hh double_to_words/include/convert_double_to_words.hh - env_utils/include/env_utils.h + env_utils/include/env_utils.hh fault_arch/include/sSensorFaults.hh fault_management/include/fault.hh fault_management/include/fault_bias.hh diff --git a/models/utilities/env_utils/include/env_utils.h b/models/utilities/env_utils/include/env_utils.hh similarity index 95% rename from models/utilities/env_utils/include/env_utils.h rename to models/utilities/env_utils/include/env_utils.hh index 073bb250..99c7c42d 100644 --- a/models/utilities/env_utils/include/env_utils.h +++ b/models/utilities/env_utils/include/env_utils.hh @@ -1,5 +1,5 @@ -#ifndef CML_ENV_UTILS_H -#define CML_ENV_UTILS_H +#ifndef CML_ENV_UTILS_HH +#define CML_ENV_UTILS_HH #include #include diff --git a/models/utilities/env_utils/verif/SIM_verif/S_define b/models/utilities/env_utils/verif/SIM_verif/S_define index 5ec1db6a..7cac7c14 100644 --- a/models/utilities/env_utils/verif/SIM_verif/S_define +++ b/models/utilities/env_utils/verif/SIM_verif/S_define @@ -8,7 +8,7 @@ Purpose:(The sim) #define bad_env_variable "fhglkjdehglk" // Include headers for classes that this class contains: -##include "cml/models/utilities/env_utils/include/env_utils.h" +##include "cml/models/utilities/env_utils/include/env_utils.hh" ##include ##include diff --git a/models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.cpp b/models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.cc similarity index 100% rename from models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.cpp rename to models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.cc diff --git a/models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.py b/models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.py index 8c92876a..664a6966 100644 --- a/models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.py +++ b/models/vehicle_management/compound_events/verif/SIM_verif_JIT/RUN_1_JIT/input.py @@ -6,7 +6,7 @@ when using JIT input files. Consequently, we have implemented the test run as a JIT-input files in -input.cpp ***AS A DEVELOPMENT TEMPLATE ONLY *** to provide +input.cc ***AS A DEVELOPMENT TEMPLATE ONLY *** to provide a guide as to how to implement the features of this model in an integrated simulation. However, the automated test runs ***DOES NOT USE*** this JIT-compiled implementations because we need to get code-coverage metrics from the @@ -27,7 +27,7 @@ verif.framework.data_file_name = "Unit_test_data/data.txt" -'Here is the call that replaces input.cpp' +'Here is the call that replaces input.cc' verif.jit_input_replacement() verif.manager.enabled = True diff --git a/trickified/S_source.hh b/trickified/S_source.hh index 519bd30b..b342ed2b 100644 --- a/trickified/S_source.hh +++ b/trickified/S_source.hh @@ -63,7 +63,7 @@ PROGRAMMERS: #include "cml/models/environment/atmos/atmosphere_models/DRWP_atmos/include/lookup_winds.hh" #include "cml/models/environment/atmos/atmosphere_models/simple_lookup_wind/include/simple_lookup_wind.hh" #include "cml/models/environment/atmos/atmosphere_models/std_atmos_1976/include/std_atmos_1976.hh" -#include "cml/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.h" +#include "cml/models/environment/atmos/atmosphere_models/std_atmos_1976/src/std_atmos_formula.hh" #include "cml/models/environment/atmos/first_order_hold/include/first_order_hold.hh" #include "cml/models/environment/atmos/gust/include/gust.hh" #include "cml/models/environment/atmos/lagged_atmosphere/include/lagged_atmos_payload_data.hh" @@ -130,7 +130,7 @@ PROGRAMMERS: #include "cml/models/utilities/constraint_check/include/valset_constraint.hh" #include "cml/models/utilities/convert_string/include/convert_string.hh" #include "cml/models/utilities/double_to_words/include/convert_double_to_words.hh" -#include "cml/models/utilities/env_utils/include/env_utils.h" +#include "cml/models/utilities/env_utils/include/env_utils.hh" #include "cml/models/utilities/fault_arch/include/sSensorFaults.hh" #include "cml/models/utilities/fault_management/include/fault_bias.hh" #include "cml/models/utilities/fault_management/include/fault_function.hh"