Overview
Comment: | chunked_strings-tests-coverage: new gray-box test section for Chunked_String |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b751974453beceb04f31308aa0849ee3 |
User & Date: | nat on 2013-09-12 18:31:43 |
Other Links: | manifest | tags |
Context
2013-09-13
| ||
21:00 | chunked_strings-tests-coverage: add a few more tests check-in: c9a8cc0df1 user: nat tags: trunk | |
2013-09-12
| ||
18:31 | chunked_strings-tests-coverage: new gray-box test section for Chunked_String check-in: b751974453 user: nat tags: trunk | |
2013-09-11
| ||
19:45 | chunked_strings: fix size after Hard_Reset check-in: c4b3d85973 user: nat tags: trunk | |
Changes
Added tests/natools-chunked_strings-tests-coverage.adb version [bdc274877e].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | ------------------------------------------------------------------------------ -- Copyright (c) 2013, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with Ada.Exceptions; with Ada.Strings.Fixed; procedure Natools.Chunked_Strings.Tests.Coverage (Report : in out Natools.Tests.Reporter'Class) is package NT renames Natools.Tests; begin NT.Section (Report, "Extra tests for complete coverage"); declare Name : constant String := "Index_Error raised in Element"; C : Character; begin C := Element (To_Chunked_String (Name), Name'Length + 1); NT.Item (Report, Name, NT.Fail); NT.Info (Report, "No exception has been raised."); NT.Info (Report, "Return value: " & Character'Image (C)); exception when Ada.Strings.Index_Error => NT.Item (Report, Name, NT.Success); when Error : others => NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Wrong exception " & Ada.Exceptions.Exception_Name (Error) & "has been raised."); end; declare Name : constant String := "Index_Error raised in Replace_Element"; CS : Chunked_String := To_Chunked_String (Name); begin Replace_Element (CS, Name'Length + 1, '*'); NT.Item (Report, Name, NT.Fail); NT.Info (Report, "No exception has been raised."); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); exception when Ada.Strings.Index_Error => NT.Item (Report, Name, NT.Success); when Error : others => NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Wrong exception " & Ada.Exceptions.Exception_Name (Error) & "has been raised."); end; declare Name : constant String := "Function Duplicate"; S, T : Chunked_String; begin S := To_Chunked_String (Name); T := Duplicate (S); S.Unappend ("cate"); if To_String (T) /= Name then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Duplicate """ & To_String (T) & " does not match original"); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; declare Name : constant String := "Procedure Set_Chunked_String (Chunked_String, String)"; CS : Chunked_String; begin Set_Chunked_String (CS, Name); if To_String (CS) /= Name then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); NT.Info (Report, "Expected: """ & Name & '"'); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; declare Name : constant String := "Function Delete with empty range"; CS : Chunked_String; begin CS := Delete (To_Chunked_String (Name), 1, 0); if To_String (CS) /= Name then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); NT.Info (Report, "Expected: """ & Name & '"'); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; declare Name : constant String := "Function Head with oversized Count and parameter override"; Pad : constant Character := ' '; Shadow : constant String (1 .. Name'Length) := (others => Pad); CS : Chunked_String; begin CS := Head (To_Chunked_String (Name), 2 * Name'Length, Pad, 10, 5); if To_String (CS) /= Name & Shadow then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); NT.Info (Report, "Expected: """ & Name & Shadow & '"'); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; declare Name : constant String := "Function Tail with oversized Count and parameter override"; Pad : constant Character := ' '; Shadow : constant String (1 .. Name'Length) := (others => Pad); CS : Chunked_String; begin CS := Tail (To_Chunked_String (Name), 2 * Name'Length, Pad, 10, 5); if To_String (CS) /= Shadow & Name then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); NT.Info (Report, "Expected: """ & Shadow & Name & '"'); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; declare Name : constant String := "Function ""*"" (Character) over multiple chunks"; CS : Chunked_String; Count : constant Positive := 3 * Default_Chunk_Size + 2; Template : constant Character := '$'; Ref : constant String := Ada.Strings.Fixed."*" (Count, Template); begin CS := Count * Template; if To_String (CS) /= Ref then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); NT.Info (Report, "Expected: """ & Ref & '"'); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; declare Name : constant String := "Function ""*"" (String) over multiple chunks"; CS : Chunked_String; Count : constant Positive := Default_Chunk_Size + 2; Template : constant String := "<>"; Ref : constant String := Ada.Strings.Fixed."*" (Count, Template); begin CS := Count * Template; if To_String (CS) /= Ref then NT.Item (Report, Name, NT.Fail); NT.Info (Report, "Final value: """ & To_String (CS) & '"'); NT.Info (Report, "Expected: """ & Ref & '"'); else NT.Item (Report, Name, NT.Success); end if; exception when Error : others => NT.Report_Exception (Report, Name, Error); end; Natools.Tests.End_Section (Report); end Natools.Chunked_Strings.Tests.Coverage; |
Added tests/natools-chunked_strings-tests-coverage.ads version [246b5ae9af].
> > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ------------------------------------------------------------------------------ -- Copyright (c) 2013, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Natools.Chunked_Strings.Tests.Coverage contains extra test cases chosen -- -- to complete coverage with black-box tests. -- ------------------------------------------------------------------------------ with Natools.Tests; generic procedure Natools.Chunked_Strings.Tests.Coverage (Report : in out Natools.Tests.Reporter'Class); pragma Preelaborate (Coverage); |
Modified tests/natools-chunked_strings-tests.adb from [36de30eaa0] to [ee8c88c27b].
1 | ------------------------------------------------------------------------------ | | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ------------------------------------------------------------------------------ -- Copyright (c) 2011-2013, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with Natools.Chunked_Strings.Tests.Coverage; with Natools.Chunked_Strings.Tests.CXA4010; with Natools.Chunked_Strings.Tests.CXA4011; with Natools.Chunked_Strings.Tests.CXA4030; with Natools.Chunked_Strings.Tests.CXA4031; with Natools.Chunked_Strings.Tests.CXA4032; with Natools.Accumulators.Tests; |
︙ | ︙ | |||
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | begin Accumulators.Tests.Test (Report, Acc); end; NT.End_Section (Report); NT.End_Section (Report); end All_Blackbox_Tests; procedure All_Tests (Report : in out Natools.Tests.Reporter'Class) is begin NT.Section (Report, "All tests of Chunked_Strings"); All_Blackbox_Tests (Report); NT.End_Section (Report); end All_Tests; procedure Dump (Report : in out Natools.Tests.Reporter'Class; Dumped : in Chunked_String) | > > > > > > > > > > > | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | begin Accumulators.Tests.Test (Report, Acc); end; NT.End_Section (Report); NT.End_Section (Report); end All_Blackbox_Tests; procedure All_Greybox_Tests (Report : in out Natools.Tests.Reporter'Class) is procedure Test_Coverage is new Coverage; begin NT.Section (Report, "Greybox tests for Chunked_Strings"); Test_Coverage (Report); NT.End_Section (Report); end All_Greybox_Tests; procedure All_Tests (Report : in out Natools.Tests.Reporter'Class) is begin NT.Section (Report, "All tests of Chunked_Strings"); All_Blackbox_Tests (Report); All_Greybox_Tests (Report); NT.End_Section (Report); end All_Tests; procedure Dump (Report : in out Natools.Tests.Reporter'Class; Dumped : in Chunked_String) |
︙ | ︙ |
Modified tests/natools-chunked_strings-tests.ads from [5dd21e31bf] to [ab60cb24ca].
1 | ------------------------------------------------------------------------------ | | | 1 2 3 4 5 6 7 8 9 | ------------------------------------------------------------------------------ -- Copyright (c) 2011-2013, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- |
︙ | ︙ | |||
27 28 29 30 31 32 33 34 35 36 37 38 39 40 | with Natools.Tests; generic package Natools.Chunked_Strings.Tests is pragma Preelaborate (Tests); procedure All_Blackbox_Tests (Report : in out Natools.Tests.Reporter'Class); procedure All_Tests (Report : in out Natools.Tests.Reporter'Class); private procedure Dump (Report : in out Natools.Tests.Reporter'Class; Dumped : in Chunked_String); | > > | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | with Natools.Tests; generic package Natools.Chunked_Strings.Tests is pragma Preelaborate (Tests); procedure All_Blackbox_Tests (Report : in out Natools.Tests.Reporter'Class); procedure All_Greybox_Tests (Report : in out Natools.Tests.Reporter'Class); procedure All_Tests (Report : in out Natools.Tests.Reporter'Class); private procedure Dump (Report : in out Natools.Tests.Reporter'Class; Dumped : in Chunked_String); |
︙ | ︙ |