Skip to content

Commit

Permalink
Update septum_tests to use alire build profiles.
Browse files Browse the repository at this point in the history
  • Loading branch information
pyjarrett committed Mar 8, 2024
1 parent c6908ad commit 10b2ee9
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 81 deletions.
18 changes: 17 additions & 1 deletion tests/alire.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
name = "septum_tests"
description = "Tests for septum"
version = "0.0.4"
version = "0.0.5"

authors = ["Paul Jarrett"]
maintainers = ["Paul Jarrett <[email protected]>"]
maintainers-logins = ["pyjarrett"]

executables = ["septum_tests"]

[build-switches]
"*".Compile_Checks = "Warnings"
"*".Debug_Info = "Yes"
"*".Contracts = "Yes"
"*".Runtime_Checks = [
"-gnato", # Enable numeric overflow checking;
"-fstack-check", # Stack overflow checking
"-gnatVa" # All validity checks
]
"*".Ada_Version = "Ada2022"
"*".Style_Checks = [
"-gnaty-d", # Disable no DOS line terminators
"-gnatyM120", # Maximum line length
"-gnatyO" # Overriding subprograms explicitly marked as such]
]

[[depends-on]]
septum = "~0.0.8"

Expand Down
91 changes: 11 additions & 80 deletions tests/septum_tests.gpr
Original file line number Diff line number Diff line change
@@ -1,93 +1,16 @@
with "atomic.gpr";
with "config/septum_tests_config.gpr";
with "trendy_test.gpr";
with "septum.gpr";

project Septum_Tests is

for Source_Dirs use ("src");
for Object_Dir use "obj";
for Source_Dirs use ("src/", "config/");
for Object_Dir use "obj/" & Septum_Tests_Config.Build_Profile;
for Create_Missing_Dirs use "True";
for Exec_Dir use "bin";
for Main use ("septum_tests.adb");

type Enabled_Kind is ("enabled", "disabled");
Compile_Checks : Enabled_Kind := External ("SEPTUM_TESTS_COMPILE_CHECKS", "enabled");
Runtime_Checks : Enabled_Kind := External ("SEPTUM_TESTS_RUNTIME_CHECKS", "enabled");
Style_Checks : Enabled_Kind := External ("SEPTUM_TESTS_STYLE_CHECKS", "enabled");
Contracts_Checks : Enabled_Kind := External ("SEPTUM_TESTS_CONTRACTS", "enabled");

type Build_Kind is ("debug", "optimize");
Build_Mode : Build_Kind := External ("SEPTUM_TESTS_BUILD_MODE", "debug");

Compile_Checks_Switches := ();
case Compile_Checks is
when "enabled" =>
Compile_Checks_Switches := (
"-gnatwa", -- All warnings
"-gnatVa", -- All validity checks
"-gnatwe" -- Warnings as errors
);
when others => null;
end case;

Runtime_Checks_Switches := ();
case Runtime_Checks is
when "enabled" =>
Runtime_Checks_Switches := (
"-gnato", -- Enable numeric overflow checking;
"-fstack-check", -- Stack overflow checking
"-gnatVa" -- All validity checks
);
when others =>
Runtime_Checks_Switches :=
("-gnatp"); -- Suppress checks
end case;

Style_Checks_Switches := ();
case Style_Checks is
when "enabled" =>
Style_Checks_Switches := (
"-gnaty-d", -- Disable no DOS line terminators
"-gnatyM120", -- Maximum line length
"-gnatyO" -- Overriding subprograms explicitly marked as such
);
when others => null;
end case;

Contracts_Switches := ();
case Contracts_Checks is
when "enabled" =>
Contracts_Switches :=
("-gnata"); -- Enable assertions and contracts
when others => null;
end case;

Build_Switches := ();
case Build_Mode is
when "optimize" =>
Build_Switches := ("-O3", -- Optimization
"-gnatn"); -- Enable inlining
when "debug" =>
Build_Switches := ("-g", -- Debug info
"-Og"); -- No optimization
end case;

package Compiler is
for Default_Switches ("Ada") use
Compile_Checks_Switches &
Build_Switches &
Runtime_Checks_Switches &
Style_Checks_Switches &
Contracts_Switches &
("-gnatw.X", -- Disable warnings for No_Exception_Propagation
"-gnatf", -- Full errors. Multiple errors per line, all undefined references,
-- Do not attempt to suppress cascaded errors.
"-gnat2022", -- Use Ada 2022
"-gnatw.oa", -- Warning settings
"-gnatQ" -- Don't quit. Generate ALI and tree files even if illegalities
);
end Compiler;

package Binder is
for Switches ("Ada") use ("-Es"); -- Symbolic traceback
end Binder;
Expand All @@ -103,4 +26,12 @@ project Septum_Tests is
);
end Pretty_Printer;

package Compiler is
for Default_Switches ("Ada") use Septum_Tests_Config.Ada_Compiler_Switches;
end Compiler;

package Install is
for Artifacts (".") use ("share");
end Install;

end Septum_Tests;

0 comments on commit 10b2ee9

Please sign in to comment.