https://github.com/pyjarrett/trendy_test
Ada Unit Testing Library
https://github.com/pyjarrett/trendy_test
Last synced: 2 months ago
JSON representation
Ada Unit Testing Library
- Host: GitHub
- URL: https://github.com/pyjarrett/trendy_test
- Owner: pyjarrett
- License: apache-2.0
- Created: 2021-07-11T17:27:50.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-08-03T21:56:20.000Z (11 months ago)
- Last Synced: 2025-08-03T23:36:31.397Z (11 months ago)
- Language: Ada
- Size: 128 KB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# trendy_test
Minimum Effort Ada Unit Testing Library
[](https://github.com/pyjarrett/trendy_test/actions)
## Features
- Minimum setup
- Parallelization of tests
- Randomization of test order to find dependencies between tests
- No generated code or scripts needed
- [JUnit XML reports and GitLab integration](docs/gitlab.md)
## Example
```ada
with Ada.Text_IO;
with Trendy_Test.Assertions.Integer_Assertions;
with Trendy_Test.Reports;
with My_Tests;
use Trendy_Test.Assertions;
use Trendy_Test.Assertions.Integer_Assertions;
procedure My_Test_Main is
begin
Trendy_Test.Register (My_Tests.All_Tests);
Trendy_Test.Reports.Print_Basic_Report(Trendy_Test.Run);
end My_Test_Main;
----------------------------------------------------------------
with Trendy_Test;
package My_Tests is
function All_Tests return Trendy_Test.Test_Group;
end My_Tests;
----------------------------------------------------------------
package body My_Tests is
procedure Test_Sample (T : in out Trendy_Test.Operation'Class) is
begin
-- Don't put anything above here you don't want run during listing/other ops.
T.Register;
Assert (T, Some_Expression);
end Test_Sample;
procedure Test_Is_Disabled (T : in out Trendy_Test.Operation'Class) is
begin
T.Register(Disabled => True); -- Disabled, don't run this test.
Assert (T, Some_Expression);
end Test_Is_Disabled;
procedure Test_Is_Not_Run_In_Parallel (T : in out Trendy_Test.Operation'Class) is
begin
T.Register(Parallelize => False); -- There's some dependency, so don't run it in parallel.
Assert (T, Some_Expression);
end Test_Is_Not_Run_In_Parallel;
function All_Tests return Trendy_Test.Test_Group is
begin
return
(Test_Sample'Access,
Test_Is_Disabled'Access
);
end All_Tests;
end My_Tests;
```
## Example Output
```
D:\dev\ada\trendy_command_line\bin\trendy_command_line_test_main
[ PASS ] shared_pointers_tests.test_multiple_oracles 0.000105300
[ PASS ] shared_pointers_tests.test_single_oracle 0.000052700
[ PASS ] trendy_command_line.context_free.tests.test_is_long_option 0.000002300
[ PASS ] trendy_command_line.context_free.tests.test_is_option_terminator 0.000007200
[ PASS ] trendy_command_line.context_free.tests.test_is_short_option 0.000005000
[ PASS ] trendy_command_line.context_free.tests.test_is_short_option_or_group 0.000009200
[ PASS ] trendy_command_line_tests.flags.test_boolean_option_defaults 0.000149400
[ FAIL ] trendy_command_line_tests.flags.test_boolean_option_short_option_group 0.000185600
Assertion Failed: (Condition false) at D:\dev\ada\trendy_command_line\src\trendy_command_line_tests-flags.adb: 110[D:\dev\ada\trendy_command_line\bin\trendy_command_line_test_main.exe]
0x453530 Trendy_Test.Report_Failure at trendy_test.adb:88
0x4535a4 Trendy_Test.Assert at trendy_test.adb:102
0x425338 Trendy_Command_Line_Tests.Flags.Test_Boolean_Option_Short_Option_Group at trendy_command_line_tests-flags.adb:110
0x451ff1 Trendy_Test.Run_Test at trendy_test.adb:237
0x452d4c Trendy_Test.Run.Parallel_Test_TaskTB at trendy_test.adb:277
0x4601a2 system__tasking__queuing__select_protected_entry_call at ???
[C:\Windows\System32\KERNEL32.DLL]
0x7ffd7d1f7032
[C:\Windows\SYSTEM32\ntdll.dll]
0x7ffd7e08264f
[ FAIL ] trendy_command_line_tests.flags.test_boolean_option_short_options 0.001984800
Assertion Failed: (Condition false) at D:\dev\ada\trendy_command_line\src\trendy_command_line_tests-flags.adb: 93[D:\dev\ada\trendy_command_line\bin\trendy_command_line_test_main.exe]
0x453530 Trendy_Test.Report_Failure at trendy_test.adb:88
0x4535a4 Trendy_Test.Assert at trendy_test.adb:102
0x425a43 Trendy_Command_Line_Tests.Flags.Test_Boolean_Option_Short_Options at trendy_command_line_tests-flags.adb:93
0x451ff1 Trendy_Test.Run_Test at trendy_test.adb:237
0x452d4c Trendy_Test.Run.Parallel_Test_TaskTB at trendy_test.adb:277
0x4601a2 system__tasking__queuing__select_protected_entry_call at ???
[C:\Windows\System32\KERNEL32.DLL]
0x7ffd7d1f7032
[C:\Windows\SYSTEM32\ntdll.dll]
0x7ffd7e08264f
[ PASS ] trendy_command_line_tests.flags.test_boolean_option_toggles 0.000153600
[ PASS ] trendy_command_line_tests.flags.test_boolean_option_too_many_occurrences
0.003517400
[ PASS ] trendy_command_line_tests.test_long_option_with_argument 0.000013000
[ PASS ] trendy_command_line_tests.test_one_operand 0.000006700
[ PASS ] trendy_command_line_tests.test_short_option_with_argument 0.000193600
Results: Passed: 12 / 14
```