Test ran at 2022-05-31 01:14:01.235820+00:00 SOLUTION: trendy_test=0.0.3: Minimal Effort Ada Unit Testing Library Origin: commit a0e147369f723969740eb25995cf22ba74282127 from https://github.com/pyjarrett/trendy_test.git Properties: Author: Paul Jarrett Description: Minimal Effort Ada Unit Testing Library License: Apache-2.0 Long_Description: # trendy_test Minimum Effort Ada Unit Testing Library [![Build Status](https://github.com/pyjarrett/trendy_test/actions/workflows/build.yml/badge.svg)](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 ## Example ```ada with Ada.Text_IO; with Trendy_Test; with Trendy_Test.Assertions.Integer_Assertions; with Trendy_Test.Reports; 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 Trendy_Command_Line_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_Sample; 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_Sample; 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 ``` Maintainer: Paul Jarrett Maintainers_Logins: pyjarrett Name: trendy_test Project_File: trendy_test.gpr Tag: test Tag: unit-test Tag: unit Version: 0.0.3 Website: https://github.com/pyjarrett/trendy_test LOG: Note: Deploying release trendy_test=0.0.3... Cloning into '/home/runner/work/alire-crates-ci/alire-crates-ci/test/65eaa0d1-1c85-4412-9210-77c24de644a7/alr-uodq.tmp'... remote: Enumerating objects: 256, done. remote: Counting objects: 0% (1/256) remote: Counting objects: 1% (3/256) remote: Counting objects: 2% (6/256) remote: Counting objects: 3% (8/256) remote: Counting objects: 4% (11/256) remote: Counting objects: 5% (13/256) remote: Counting objects: 6% (16/256) remote: Counting objects: 7% (18/256) remote: Counting objects: 8% (21/256) remote: Counting objects: 9% (24/256) remote: Counting objects: 10% (26/256) remote: Counting objects: 11% (29/256) remote: Counting objects: 12% (31/256) remote: Counting objects: 13% (34/256) remote: Counting objects: 14% (36/256) remote: Counting objects: 15% (39/256) remote: Counting objects: 16% (41/256) remote: Counting objects: 17% (44/256) remote: Counting objects: 18% (47/256) remote: Counting objects: 19% (49/256) remote: Counting objects: 20% (52/256) remote: Counting objects: 21% (54/256) remote: Counting objects: 22% (57/256) remote: Counting objects: 23% (59/256) remote: Counting objects: 24% (62/256) remote: Counting objects: 25% (64/256) remote: Counting objects: 26% (67/256) remote: Counting objects: 27% (70/256) remote: Counting objects: 28% (72/256) remote: Counting objects: 29% (75/256) remote: Counting objects: 30% (77/256) remote: Counting objects: 31% (80/256) remote: Counting objects: 32% (82/256) remote: Counting objects: 33% (85/256) remote: Counting objects: 34% (88/256) remote: Counting objects: 35% (90/256) remote: Counting objects: 36% (93/256) remote: Counting objects: 37% (95/256) remote: Counting objects: 38% (98/256) remote: Counting objects: 39% (100/256) remote: Counting objects: 40% (103/256) remote: Counting objects: 41% (105/256) remote: Counting objects: 42% (108/256) remote: Counting objects: 43% (111/256) remote: Counting objects: 44% (113/256) remote: Counting objects: 45% (116/256) remote: Counting objects: 46% (118/256) remote: Counting objects: 47% (121/256) remote: Counting objects: 48% (123/256) remote: Counting objects: 49% (126/256) remote: Counting objects: 50% (128/256) remote: Counting objects: 51% (131/256) remote: Counting objects: 52% (134/256) remote: Counting objects: 53% (136/256) remote: Counting objects: 54% (139/256) remote: Counting objects: 55% (141/256) remote: Counting objects: 56% (144/256) remote: Counting objects: 57% (146/256) remote: Counting objects: 58% (149/256) remote: Counting objects: 59% (152/256) remote: Counting objects: 60% (154/256) remote: Counting objects: 61% (157/256) remote: Counting objects: 62% (159/256) remote: Counting objects: 63% (162/256) remote: Counting objects: 64% (164/256) remote: Counting objects: 65% (167/256) remote: Counting objects: 66% (169/256) remote: Counting objects: 67% (172/256) remote: Counting objects: 68% (175/256) remote: Counting objects: 69% (177/256) remote: Counting objects: 70% (180/256) remote: Counting objects: 71% (182/256) remote: Counting objects: 72% (185/256) remote: Counting objects: 73% (187/256) remote: Counting objects: 74% (190/256) remote: Counting objects: 75% (192/256) remote: Counting objects: 76% (195/256) remote: Counting objects: 77% (198/256) remote: Counting objects: 78% (200/256) remote: Counting objects: 79% (203/256) remote: Counting objects: 80% (205/256) remote: Counting objects: 81% (208/256) remote: Counting objects: 82% (210/256) remote: Counting objects: 83% (213/256) remote: Counting objects: 84% (216/256) remote: Counting objects: 85% (218/256) remote: Counting objects: 86% (221/256) remote: Counting objects: 87% (223/256) remote: Counting objects: 88% (226/256) remote: Counting objects: 89% (228/256) remote: Counting objects: 90% (231/256) remote: Counting objects: 91% (233/256) remote: Counting objects: 92% (236/256) remote: Counting objects: 93% (239/256) remote: Counting objects: 94% (241/256) remote: Counting objects: 95% (244/256) remote: Counting objects: 96% (246/256) remote: Counting objects: 97% (249/256) remote: Counting objects: 98% (251/256) remote: Counting objects: 99% (254/256) remote: Counting objects: 100% (256/256) remote: Counting objects: 100% (256/256), done. remote: Compressing objects: 0% (1/158) remote: Compressing objects: 1% (2/158) remote: Compressing objects: 2% (4/158) remote: Compressing objects: 3% (5/158) remote: Compressing objects: 4% (7/158) remote: Compressing objects: 5% (8/158) remote: Compressing objects: 6% (10/158) remote: Compressing objects: 7% (12/158) remote: Compressing objects: 8% (13/158) remote: Compressing objects: 9% (15/158) remote: Compressing objects: 10% (16/158) remote: Compressing objects: 11% (18/158) remote: Compressing objects: 12% (19/158) remote: Compressing objects: 13% (21/158) remote: Compressing objects: 14% (23/158) remote: Compressing objects: 15% (24/158) remote: Compressing objects: 16% (26/158) remote: Compressing objects: 17% (27/158) remote: Compressing objects: 18% (29/158) remote: Compressing objects: 19% (31/158) remote: Compressing objects: 20% (32/158) remote: Compressing objects: 21% (34/158) remote: Compressing objects: 22% (35/158) remote: Compressing objects: 23% (37/158) remote: Compressing objects: 24% (38/158) remote: Compressing objects: 25% (40/158) remote: Compressing objects: 26% (42/158) remote: Compressing objects: 27% (43/158) remote: Compressing objects: 28% (45/158) remote: Compressing objects: 29% (46/158) remote: Compressing objects: 30% (48/158) remote: Compressing objects: 31% (49/158) remote: Compressing objects: 32% (51/158) remote: Compressing objects: 33% (53/158) remote: Compressing objects: 34% (54/158) remote: Compressing objects: 35% (56/158) remote: Compressing objects: 36% (57/158) remote: Compressing objects: 37% (59/158) remote: Compressing objects: 38% (61/158) remote: Compressing objects: 39% (62/158) remote: Compressing objects: 40% (64/158) remote: Compressing objects: 41% (65/158) remote: Compressing objects: 42% (67/158) remote: Compressing objects: 43% (68/158) remote: Compressing objects: 44% (70/158) remote: Compressing objects: 45% (72/158) remote: Compressing objects: 46% (73/158) remote: Compressing objects: 47% (75/158) remote: Compressing objects: 48% (76/158) remote: Compressing objects: 49% (78/158) remote: Compressing objects: 50% (79/158) remote: Compressing objects: 51% (81/158) remote: Compressing objects: 52% (83/158) remote: Compressing objects: 53% (84/158) remote: Compressing objects: 54% (86/158) remote: Compressing objects: 55% (87/158) remote: Compressing objects: 56% (89/158) remote: Compressing objects: 57% (91/158) remote: Compressing objects: 58% (92/158) remote: Compressing objects: 59% (94/158) remote: Compressing objects: 60% (95/158) remote: Compressing objects: 61% (97/158) remote: Compressing objects: 62% (98/158) remote: Compressing objects: 63% (100/158) remote: Compressing objects: 64% (102/158) remote: Compressing objects: 65% (103/158) remote: Compressing objects: 66% (105/158) remote: Compressing objects: 67% (106/158) remote: Compressing objects: 68% (108/158) remote: Compressing objects: 69% (110/158) remote: Compressing objects: 70% (111/158) remote: Compressing objects: 71% (113/158) remote: Compressing objects: 72% (114/158) remote: Compressing objects: 73% (116/158) remote: Compressing objects: 74% (117/158) remote: Compressing objects: 75% (119/158) remote: Compressing objects: 76% (121/158) remote: Compressing objects: 77% (122/158) remote: Compressing objects: 78% (124/158) remote: Compressing objects: 79% (125/158) remote: Compressing objects: 80% (127/158) remote: Compressing objects: 81% (128/158) remote: Compressing objects: 82% (130/158) remote: Compressing objects: 83% (132/158) remote: Compressing objects: 84% (133/158) remote: Compressing objects: 85% (135/158) remote: Compressing objects: 86% (136/158) remote: Compressing objects: 87% (138/158) remote: Compressing objects: 88% (140/158) remote: Compressing objects: 89% (141/158) remote: Compressing objects: 90% (143/158) remote: Compressing objects: 91% (144/158) remote: Compressing objects: 92% (146/158) remote: Compressing objects: 93% (147/158) remote: Compressing objects: 94% (149/158) remote: Compressing objects: 95% (151/158) remote: Compressing objects: 96% (152/158) remote: Compressing objects: 97% (154/158) remote: Compressing objects: 98% (155/158) remote: Compressing objects: 99% (157/158) remote: Compressing objects: 100% (158/158) remote: Compressing objects: 100% (158/158), done. Receiving objects: 0% (1/256) Receiving objects: 1% (3/256) Receiving objects: 2% (6/256) Receiving objects: 3% (8/256) Receiving objects: 4% (11/256) Receiving objects: 5% (13/256) Receiving objects: 6% (16/256) Receiving objects: 7% (18/256) Receiving objects: 8% (21/256) Receiving objects: 9% (24/256) Receiving objects: 10% (26/256) Receiving objects: 11% (29/256) Receiving objects: 12% (31/256) Receiving objects: 13% (34/256) Receiving objects: 14% (36/256) Receiving objects: 15% (39/256) Receiving objects: 16% (41/256) Receiving objects: 17% (44/256) Receiving objects: 18% (47/256) Receiving objects: 19% (49/256) Receiving objects: 20% (52/256) Receiving objects: 21% (54/256) Receiving objects: 22% (57/256) Receiving objects: 23% (59/256) Receiving objects: 24% (62/256) Receiving objects: 25% (64/256) Receiving objects: 26% (67/256) Receiving objects: 27% (70/256) Receiving objects: 28% (72/256) Receiving objects: 29% (75/256) Receiving objects: 30% (77/256) Receiving objects: 31% (80/256) Receiving objects: 32% (82/256) Receiving objects: 33% (85/256) Receiving objects: 34% (88/256) Receiving objects: 35% (90/256) Receiving objects: 36% (93/256) Receiving objects: 37% (95/256) Receiving objects: 38% (98/256) Receiving objects: 39% (100/256) Receiving objects: 40% (103/256) Receiving objects: 41% (105/256) Receiving objects: 42% (108/256) Receiving objects: 43% (111/256) Receiving objects: 44% (113/256) Receiving objects: 45% (116/256) Receiving objects: 46% (118/256) Receiving objects: 47% (121/256) Receiving objects: 48% (123/256) Receiving objects: 49% (126/256) Receiving objects: 50% (128/256) Receiving objects: 51% (131/256) Receiving objects: 52% (134/256) Receiving objects: 53% (136/256) Receiving objects: 54% (139/256) Receiving objects: 55% (141/256) Receiving objects: 56% (144/256) Receiving objects: 57% (146/256) Receiving objects: 58% (149/256) Receiving objects: 59% (152/256) Receiving objects: 60% (154/256) Receiving objects: 61% (157/256) Receiving objects: 62% (159/256) Receiving objects: 63% (162/256) Receiving objects: 64% (164/256) Receiving objects: 65% (167/256) Receiving objects: 66% (169/256) Receiving objects: 67% (172/256) Receiving objects: 68% (175/256) Receiving objects: 69% (177/256) Receiving objects: 70% (180/256) Receiving objects: 71% (182/256) Receiving objects: 72% (185/256) Receiving objects: 73% (187/256) Receiving objects: 74% (190/256) remote: Total 256 (delta 167), reused 166 (delta 90), pack-reused 0 Receiving objects: 75% (192/256) Receiving objects: 76% (195/256) Receiving objects: 77% (198/256) Receiving objects: 78% (200/256) Receiving objects: 79% (203/256) Receiving objects: 80% (205/256) Receiving objects: 81% (208/256) Receiving objects: 82% (210/256) Receiving objects: 83% (213/256) Receiving objects: 84% (216/256) Receiving objects: 85% (218/256) Receiving objects: 86% (221/256) Receiving objects: 87% (223/256) Receiving objects: 88% (226/256) Receiving objects: 89% (228/256) Receiving objects: 90% (231/256) Receiving objects: 91% (233/256) Receiving objects: 92% (236/256) Receiving objects: 93% (239/256) Receiving objects: 94% (241/256) Receiving objects: 95% (244/256) Receiving objects: 96% (246/256) Receiving objects: 97% (249/256) Receiving objects: 98% (251/256) Receiving objects: 99% (254/256) Receiving objects: 100% (256/256) Receiving objects: 100% (256/256), 45.65 KiB | 2.54 MiB/s, done. Resolving deltas: 0% (0/167) Resolving deltas: 2% (4/167) Resolving deltas: 7% (13/167) Resolving deltas: 8% (14/167) Resolving deltas: 20% (35/167) Resolving deltas: 44% (75/167) Resolving deltas: 47% (80/167) Resolving deltas: 49% (82/167) Resolving deltas: 52% (88/167) Resolving deltas: 64% (107/167) Resolving deltas: 65% (109/167) Resolving deltas: 70% (118/167) Resolving deltas: 86% (144/167) Resolving deltas: 100% (167/167) Resolving deltas: 100% (167/167), done. Setup [mkdir] object directory for project Trendy_Test [mkdir] library directory for project Trendy_Test Compile [Ada] trendy_test-reports.adb [Ada] trendy_locations.adb [Ada] trendy_test.adb [Ada] trendy_test-generics.adb [Ada] trendy_test-assertions-integer_assertions.ads [Ada] trendy_test-assertions-discrete.ads [Ada] trendy_test-assertions.adb Build Libraries [gprlib] Trendy_Test.lexch [archive] libTrendy_Test.a [index] libTrendy_Test.a trendy_test=0.0.3 successfully retrieved and built. There are no dependencies.