From 65ee799fbe038eae24cdb6b02bd7f14cf274862d Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 2 May 2012 16:28:48 -0400 Subject: [PATCH] tests: add new tests f_jnl_32bit and f_jnl_64bit Add regression tests which make sure e2fsprogs understands the current 32-bit and 64-bit journal format. If a patch breaks the on-disk format, these tests should warn us about that. Signed-off-by: "Theodore Ts'o" --- tests/f_jnl_32bit/expect.0 | 568 +++++++++++++++++++++++++++++++++++++ tests/f_jnl_32bit/expect.1 | 16 ++ tests/f_jnl_32bit/expect.2 | 7 + tests/f_jnl_32bit/image.gz | Bin 0 -> 44544 bytes tests/f_jnl_32bit/name | 1 + tests/f_jnl_32bit/script | 4 + tests/f_jnl_64bit/expect.0 | 237 ++++++++++++++++ tests/f_jnl_64bit/expect.1 | 16 ++ tests/f_jnl_64bit/expect.2 | 7 + tests/f_jnl_64bit/image.gz | Bin 0 -> 45038 bytes tests/f_jnl_64bit/name | 1 + tests/f_jnl_64bit/script | 4 + tests/run_e2fsck | 10 +- 13 files changed, 869 insertions(+), 2 deletions(-) create mode 100644 tests/f_jnl_32bit/expect.0 create mode 100644 tests/f_jnl_32bit/expect.1 create mode 100644 tests/f_jnl_32bit/expect.2 create mode 100644 tests/f_jnl_32bit/image.gz create mode 100644 tests/f_jnl_32bit/name create mode 100644 tests/f_jnl_32bit/script create mode 100644 tests/f_jnl_64bit/expect.0 create mode 100644 tests/f_jnl_64bit/expect.1 create mode 100644 tests/f_jnl_64bit/expect.2 create mode 100644 tests/f_jnl_64bit/image.gz create mode 100644 tests/f_jnl_64bit/name create mode 100644 tests/f_jnl_64bit/script diff --git a/tests/f_jnl_32bit/expect.0 b/tests/f_jnl_32bit/expect.0 new file mode 100644 index 000000000..29b180fdf --- /dev/null +++ b/tests/f_jnl_32bit/expect.0 @@ -0,0 +1,568 @@ + +Journal starts at block 1, transaction 2 +Found expected sequence 2, type 1 (descriptor block) at block 1 +Dumping descriptor block, sequence 2, at block 1: + FS block 2 logged at journal block 2 (flags 0x8) +Found expected sequence 2, type 2 (commit block) at block 3 +Found expected sequence 3, type 1 (descriptor block) at block 4 +Dumping descriptor block, sequence 3, at block 4: + FS block 82 logged at journal block 5 (flags 0x0) + FS block 2 logged at journal block 6 (flags 0x2) + FS block 99 logged at journal block 7 (flags 0x2) + FS block 66 logged at journal block 8 (flags 0x2) + FS block 81 logged at journal block 9 (flags 0x2) + FS block 98 logged at journal block 10 (flags 0x2) + FS block 68 logged at journal block 11 (flags 0x2) + FS block 83 logged at journal block 12 (flags 0x2) + FS block 354 logged at journal block 13 (flags 0x2) + FS block 84 logged at journal block 14 (flags 0x2) + FS block 100 logged at journal block 15 (flags 0x2) + FS block 97 logged at journal block 16 (flags 0x2) + FS block 101 logged at journal block 17 (flags 0x2) + FS block 611 logged at journal block 18 (flags 0x2) + FS block 102 logged at journal block 19 (flags 0x2) + FS block 103 logged at journal block 20 (flags 0x2) + FS block 612 logged at journal block 21 (flags 0x2) + FS block 104 logged at journal block 22 (flags 0x2) + FS block 85 logged at journal block 23 (flags 0x2) + FS block 105 logged at journal block 24 (flags 0x2) + FS block 86 logged at journal block 25 (flags 0x2) + FS block 106 logged at journal block 26 (flags 0x2) + FS block 87 logged at journal block 27 (flags 0x2) + FS block 107 logged at journal block 28 (flags 0x2) + FS block 108 logged at journal block 29 (flags 0x2) + FS block 88 logged at journal block 30 (flags 0x2) + FS block 109 logged at journal block 31 (flags 0x2) + FS block 355 logged at journal block 32 (flags 0x2) + FS block 613 logged at journal block 33 (flags 0x2) + FS block 110 logged at journal block 34 (flags 0x2) + FS block 614 logged at journal block 35 (flags 0x2) + FS block 111 logged at journal block 36 (flags 0x2) + FS block 615 logged at journal block 37 (flags 0x2) + FS block 112 logged at journal block 38 (flags 0x2) + FS block 113 logged at journal block 39 (flags 0x2) + FS block 616 logged at journal block 40 (flags 0x2) + FS block 89 logged at journal block 41 (flags 0x2) + FS block 114 logged at journal block 42 (flags 0x2) + FS block 90 logged at journal block 43 (flags 0x2) + FS block 115 logged at journal block 44 (flags 0x2) + FS block 91 logged at journal block 45 (flags 0x2) + FS block 116 logged at journal block 46 (flags 0x2) + FS block 92 logged at journal block 47 (flags 0x2) + FS block 117 logged at journal block 48 (flags 0x2) + FS block 118 logged at journal block 49 (flags 0x2) + FS block 356 logged at journal block 50 (flags 0x2) + FS block 93 logged at journal block 51 (flags 0x2) + FS block 119 logged at journal block 52 (flags 0x2) + FS block 94 logged at journal block 53 (flags 0x2) + FS block 120 logged at journal block 54 (flags 0x2) + FS block 95 logged at journal block 55 (flags 0x2) + FS block 121 logged at journal block 56 (flags 0x2) + FS block 96 logged at journal block 57 (flags 0x2) + FS block 122 logged at journal block 58 (flags 0x2) + FS block 123 logged at journal block 59 (flags 0x2) + FS block 617 logged at journal block 60 (flags 0x2) + FS block 124 logged at journal block 61 (flags 0x2) + FS block 618 logged at journal block 62 (flags 0x2) + FS block 125 logged at journal block 63 (flags 0x2) + FS block 619 logged at journal block 64 (flags 0x2) + FS block 126 logged at journal block 65 (flags 0x2) + FS block 620 logged at journal block 66 (flags 0x2) + FS block 357 logged at journal block 67 (flags 0x2) + FS block 621 logged at journal block 68 (flags 0x2) + FS block 127 logged at journal block 69 (flags 0x2) + FS block 128 logged at journal block 70 (flags 0x2) + FS block 622 logged at journal block 71 (flags 0x2) + FS block 129 logged at journal block 72 (flags 0x2) + FS block 623 logged at journal block 73 (flags 0x2) + FS block 130 logged at journal block 74 (flags 0x2) + FS block 624 logged at journal block 75 (flags 0x2) + FS block 131 logged at journal block 76 (flags 0x2) + FS block 625 logged at journal block 77 (flags 0x2) + FS block 132 logged at journal block 78 (flags 0x2) + FS block 133 logged at journal block 79 (flags 0x2) + FS block 626 logged at journal block 80 (flags 0x2) + FS block 134 logged at journal block 81 (flags 0x2) + FS block 627 logged at journal block 82 (flags 0x2) + FS block 135 logged at journal block 83 (flags 0x2) + FS block 628 logged at journal block 84 (flags 0x2) + FS block 136 logged at journal block 85 (flags 0x2) + FS block 358 logged at journal block 86 (flags 0x2) + FS block 629 logged at journal block 87 (flags 0x2) + FS block 137 logged at journal block 88 (flags 0xa) +Found expected sequence 3, type 1 (descriptor block) at block 89 +Dumping descriptor block, sequence 3, at block 89: + FS block 138 logged at journal block 90 (flags 0x0) + FS block 630 logged at journal block 91 (flags 0x2) + FS block 139 logged at journal block 92 (flags 0x2) + FS block 631 logged at journal block 93 (flags 0x2) + FS block 140 logged at journal block 94 (flags 0x2) + FS block 632 logged at journal block 95 (flags 0x2) + FS block 633 logged at journal block 96 (flags 0x2) + FS block 141 logged at journal block 97 (flags 0x2) + FS block 634 logged at journal block 98 (flags 0x2) + FS block 142 logged at journal block 99 (flags 0x2) + FS block 143 logged at journal block 100 (flags 0x2) + FS block 635 logged at journal block 101 (flags 0x2) + FS block 144 logged at journal block 102 (flags 0x2) + FS block 636 logged at journal block 103 (flags 0x2) + FS block 145 logged at journal block 104 (flags 0x2) + FS block 359 logged at journal block 105 (flags 0x2) + FS block 637 logged at journal block 106 (flags 0x2) + FS block 146 logged at journal block 107 (flags 0x2) + FS block 638 logged at journal block 108 (flags 0x2) + FS block 147 logged at journal block 109 (flags 0x2) + FS block 148 logged at journal block 110 (flags 0x2) + FS block 639 logged at journal block 111 (flags 0x2) + FS block 149 logged at journal block 112 (flags 0x2) + FS block 640 logged at journal block 113 (flags 0x2) + FS block 150 logged at journal block 114 (flags 0x2) + FS block 641 logged at journal block 115 (flags 0x2) + FS block 151 logged at journal block 116 (flags 0x2) + FS block 642 logged at journal block 117 (flags 0x2) + FS block 152 logged at journal block 118 (flags 0x2) + FS block 153 logged at journal block 119 (flags 0x2) + FS block 643 logged at journal block 120 (flags 0x2) + FS block 154 logged at journal block 121 (flags 0x2) + FS block 644 logged at journal block 122 (flags 0x2) + FS block 360 logged at journal block 123 (flags 0x2) + FS block 645 logged at journal block 124 (flags 0x2) + FS block 155 logged at journal block 125 (flags 0x2) + FS block 646 logged at journal block 126 (flags 0x2) + FS block 156 logged at journal block 127 (flags 0x2) + FS block 647 logged at journal block 128 (flags 0x2) + FS block 157 logged at journal block 129 (flags 0x2) + FS block 158 logged at journal block 130 (flags 0x2) + FS block 648 logged at journal block 131 (flags 0x2) + FS block 159 logged at journal block 132 (flags 0x2) + FS block 649 logged at journal block 133 (flags 0x2) + FS block 160 logged at journal block 134 (flags 0x2) + FS block 650 logged at journal block 135 (flags 0x2) + FS block 161 logged at journal block 136 (flags 0x2) + FS block 651 logged at journal block 137 (flags 0x2) + FS block 162 logged at journal block 138 (flags 0x2) + FS block 163 logged at journal block 139 (flags 0x2) + FS block 652 logged at journal block 140 (flags 0x2) + FS block 164 logged at journal block 141 (flags 0x2) + FS block 361 logged at journal block 142 (flags 0x2) + FS block 653 logged at journal block 143 (flags 0x2) + FS block 165 logged at journal block 144 (flags 0x2) + FS block 654 logged at journal block 145 (flags 0x2) + FS block 166 logged at journal block 146 (flags 0x2) + FS block 655 logged at journal block 147 (flags 0x2) + FS block 167 logged at journal block 148 (flags 0x2) + FS block 168 logged at journal block 149 (flags 0x2) + FS block 656 logged at journal block 150 (flags 0x2) + FS block 657 logged at journal block 151 (flags 0x2) + FS block 169 logged at journal block 152 (flags 0x2) + FS block 658 logged at journal block 153 (flags 0x2) + FS block 170 logged at journal block 154 (flags 0x2) + FS block 659 logged at journal block 155 (flags 0x2) + FS block 171 logged at journal block 156 (flags 0x2) + FS block 660 logged at journal block 157 (flags 0x2) + FS block 172 logged at journal block 158 (flags 0x2) + FS block 173 logged at journal block 159 (flags 0x2) + FS block 362 logged at journal block 160 (flags 0x2) + FS block 661 logged at journal block 161 (flags 0x2) + FS block 174 logged at journal block 162 (flags 0x2) + FS block 662 logged at journal block 163 (flags 0x2) + FS block 175 logged at journal block 164 (flags 0x2) + FS block 663 logged at journal block 165 (flags 0x2) + FS block 176 logged at journal block 166 (flags 0x2) + FS block 664 logged at journal block 167 (flags 0x2) + FS block 177 logged at journal block 168 (flags 0x2) + FS block 178 logged at journal block 169 (flags 0x2) + FS block 665 logged at journal block 170 (flags 0x2) + FS block 179 logged at journal block 171 (flags 0x2) + FS block 666 logged at journal block 172 (flags 0x2) + FS block 180 logged at journal block 173 (flags 0xa) +Found expected sequence 3, type 1 (descriptor block) at block 174 +Dumping descriptor block, sequence 3, at block 174: + FS block 667 logged at journal block 175 (flags 0x0) + FS block 181 logged at journal block 176 (flags 0x2) + FS block 668 logged at journal block 177 (flags 0x2) + FS block 363 logged at journal block 178 (flags 0x2) + FS block 669 logged at journal block 179 (flags 0x2) + FS block 182 logged at journal block 180 (flags 0x2) + FS block 183 logged at journal block 181 (flags 0x2) + FS block 670 logged at journal block 182 (flags 0x2) + FS block 184 logged at journal block 183 (flags 0x2) + FS block 671 logged at journal block 184 (flags 0x2) + FS block 185 logged at journal block 185 (flags 0x2) + FS block 672 logged at journal block 186 (flags 0x2) + FS block 186 logged at journal block 187 (flags 0x2) + FS block 673 logged at journal block 188 (flags 0x2) + FS block 187 logged at journal block 189 (flags 0x2) + FS block 188 logged at journal block 190 (flags 0x2) + FS block 674 logged at journal block 191 (flags 0x2) + FS block 189 logged at journal block 192 (flags 0x2) + FS block 675 logged at journal block 193 (flags 0x2) + FS block 190 logged at journal block 194 (flags 0x2) + FS block 676 logged at journal block 195 (flags 0x2) + FS block 191 logged at journal block 196 (flags 0x2) + FS block 364 logged at journal block 197 (flags 0x2) + FS block 677 logged at journal block 198 (flags 0x2) + FS block 192 logged at journal block 199 (flags 0x2) + FS block 193 logged at journal block 200 (flags 0x2) + FS block 678 logged at journal block 201 (flags 0x2) + FS block 194 logged at journal block 202 (flags 0x2) + FS block 679 logged at journal block 203 (flags 0x2) + FS block 195 logged at journal block 204 (flags 0x2) + FS block 680 logged at journal block 205 (flags 0x2) + FS block 681 logged at journal block 206 (flags 0x2) + FS block 196 logged at journal block 207 (flags 0x2) + FS block 682 logged at journal block 208 (flags 0x2) + FS block 197 logged at journal block 209 (flags 0x2) + FS block 198 logged at journal block 210 (flags 0x2) + FS block 683 logged at journal block 211 (flags 0x2) + FS block 199 logged at journal block 212 (flags 0x2) + FS block 684 logged at journal block 213 (flags 0x2) + FS block 200 logged at journal block 214 (flags 0x2) + FS block 365 logged at journal block 215 (flags 0x2) + FS block 685 logged at journal block 216 (flags 0x2) + FS block 201 logged at journal block 217 (flags 0x2) + FS block 686 logged at journal block 218 (flags 0x2) + FS block 202 logged at journal block 219 (flags 0x2) + FS block 203 logged at journal block 220 (flags 0x2) + FS block 687 logged at journal block 221 (flags 0xa) +Found expected sequence 3, type 2 (commit block) at block 222 +Found expected sequence 4, type 1 (descriptor block) at block 223 +Dumping descriptor block, sequence 4, at block 223: + FS block 204 logged at journal block 224 (flags 0x0) + FS block 687 logged at journal block 225 (flags 0x2) + FS block 203 logged at journal block 226 (flags 0x2) + FS block 365 logged at journal block 227 (flags 0x2) + FS block 2 logged at journal block 228 (flags 0x2) + FS block 82 logged at journal block 229 (flags 0x2) + FS block 83 logged at journal block 230 (flags 0x2) + FS block 66 logged at journal block 231 (flags 0x2) + FS block 688 logged at journal block 232 (flags 0x2) + FS block 364 logged at journal block 233 (flags 0x2) + FS block 680 logged at journal block 234 (flags 0x2) + FS block 205 logged at journal block 235 (flags 0x2) + FS block 689 logged at journal block 236 (flags 0x2) + FS block 206 logged at journal block 237 (flags 0x2) + FS block 690 logged at journal block 238 (flags 0x2) + FS block 207 logged at journal block 239 (flags 0x2) + FS block 208 logged at journal block 240 (flags 0x2) + FS block 691 logged at journal block 241 (flags 0x2) + FS block 209 logged at journal block 242 (flags 0x2) + FS block 692 logged at journal block 243 (flags 0x2) + FS block 98 logged at journal block 244 (flags 0x2) + FS block 68 logged at journal block 245 (flags 0x2) + FS block 366 logged at journal block 246 (flags 0x2) + FS block 693 logged at journal block 247 (flags 0x2) + FS block 210 logged at journal block 248 (flags 0x2) + FS block 694 logged at journal block 249 (flags 0x2) + FS block 211 logged at journal block 250 (flags 0x2) + FS block 695 logged at journal block 251 (flags 0x2) + FS block 212 logged at journal block 252 (flags 0x2) + FS block 213 logged at journal block 253 (flags 0x2) + FS block 696 logged at journal block 254 (flags 0x2) + FS block 214 logged at journal block 255 (flags 0x2) + FS block 697 logged at journal block 256 (flags 0x2) + FS block 215 logged at journal block 257 (flags 0x2) + FS block 698 logged at journal block 258 (flags 0x2) + FS block 216 logged at journal block 259 (flags 0x2) + FS block 699 logged at journal block 260 (flags 0x2) + FS block 217 logged at journal block 261 (flags 0x2) + FS block 218 logged at journal block 262 (flags 0x2) + FS block 700 logged at journal block 263 (flags 0x2) + FS block 219 logged at journal block 264 (flags 0x2) + FS block 367 logged at journal block 265 (flags 0x2) + FS block 701 logged at journal block 266 (flags 0x2) + FS block 220 logged at journal block 267 (flags 0x2) + FS block 702 logged at journal block 268 (flags 0x2) + FS block 221 logged at journal block 269 (flags 0x2) + FS block 703 logged at journal block 270 (flags 0x2) + FS block 222 logged at journal block 271 (flags 0x2) + FS block 223 logged at journal block 272 (flags 0x2) + FS block 704 logged at journal block 273 (flags 0x2) + FS block 705 logged at journal block 274 (flags 0x2) + FS block 224 logged at journal block 275 (flags 0x2) + FS block 706 logged at journal block 276 (flags 0x2) + FS block 225 logged at journal block 277 (flags 0x2) + FS block 707 logged at journal block 278 (flags 0x2) + FS block 226 logged at journal block 279 (flags 0x2) + FS block 708 logged at journal block 280 (flags 0x2) + FS block 227 logged at journal block 281 (flags 0x2) + FS block 228 logged at journal block 282 (flags 0x2) + FS block 368 logged at journal block 283 (flags 0x2) + FS block 709 logged at journal block 284 (flags 0x2) + FS block 229 logged at journal block 285 (flags 0x2) + FS block 710 logged at journal block 286 (flags 0x2) + FS block 230 logged at journal block 287 (flags 0x2) + FS block 711 logged at journal block 288 (flags 0x2) + FS block 231 logged at journal block 289 (flags 0x2) + FS block 712 logged at journal block 290 (flags 0x2) + FS block 232 logged at journal block 291 (flags 0x2) + FS block 233 logged at journal block 292 (flags 0x2) + FS block 713 logged at journal block 293 (flags 0x2) + FS block 234 logged at journal block 294 (flags 0x2) + FS block 714 logged at journal block 295 (flags 0x2) + FS block 235 logged at journal block 296 (flags 0x2) + FS block 715 logged at journal block 297 (flags 0x2) + FS block 236 logged at journal block 298 (flags 0x2) + FS block 716 logged at journal block 299 (flags 0x2) + FS block 369 logged at journal block 300 (flags 0x2) + FS block 717 logged at journal block 301 (flags 0x2) + FS block 237 logged at journal block 302 (flags 0x2) + FS block 238 logged at journal block 303 (flags 0x2) + FS block 718 logged at journal block 304 (flags 0x2) + FS block 239 logged at journal block 305 (flags 0x2) + FS block 719 logged at journal block 306 (flags 0x2) + FS block 240 logged at journal block 307 (flags 0xa) +Found expected sequence 4, type 1 (descriptor block) at block 308 +Dumping descriptor block, sequence 4, at block 308: + FS block 720 logged at journal block 309 (flags 0x0) + FS block 241 logged at journal block 310 (flags 0x2) + FS block 721 logged at journal block 311 (flags 0x2) + FS block 242 logged at journal block 312 (flags 0x2) + FS block 243 logged at journal block 313 (flags 0x2) + FS block 722 logged at journal block 314 (flags 0x2) + FS block 244 logged at journal block 315 (flags 0x2) + FS block 723 logged at journal block 316 (flags 0x2) + FS block 245 logged at journal block 317 (flags 0x2) + FS block 724 logged at journal block 318 (flags 0x2) + FS block 246 logged at journal block 319 (flags 0x2) + FS block 370 logged at journal block 320 (flags 0x2) + FS block 725 logged at journal block 321 (flags 0x2) + FS block 247 logged at journal block 322 (flags 0x2) + FS block 248 logged at journal block 323 (flags 0x2) + FS block 726 logged at journal block 324 (flags 0x2) + FS block 249 logged at journal block 325 (flags 0x2) + FS block 727 logged at journal block 326 (flags 0x2) + FS block 250 logged at journal block 327 (flags 0xa) +Found expected sequence 4, type 2 (commit block) at block 328 +Found expected sequence 5, type 5 (revoke table) at block 329 +Dumping revoke block, sequence 5, at block 329: + Revoke FS block 640 + Revoke FS block 641 + Revoke FS block 642 + Revoke FS block 643 + Revoke FS block 644 + Revoke FS block 645 + Revoke FS block 646 + Revoke FS block 647 + Revoke FS block 648 + Revoke FS block 649 + Revoke FS block 650 + Revoke FS block 651 + Revoke FS block 652 + Revoke FS block 653 + Revoke FS block 654 + Revoke FS block 655 + Revoke FS block 656 + Revoke FS block 657 + Revoke FS block 81 + Revoke FS block 658 + Revoke FS block 659 + Revoke FS block 660 + Revoke FS block 84 + Revoke FS block 661 + Revoke FS block 85 + Revoke FS block 662 + Revoke FS block 86 + Revoke FS block 663 + Revoke FS block 87 + Revoke FS block 664 + Revoke FS block 88 + Revoke FS block 665 + Revoke FS block 89 + Revoke FS block 666 + Revoke FS block 90 + Revoke FS block 667 + Revoke FS block 91 + Revoke FS block 668 + Revoke FS block 92 + Revoke FS block 669 + Revoke FS block 93 + Revoke FS block 670 + Revoke FS block 94 + Revoke FS block 671 + Revoke FS block 95 + Revoke FS block 672 + Revoke FS block 96 + Revoke FS block 673 + Revoke FS block 97 + Revoke FS block 674 + Revoke FS block 675 + Revoke FS block 611 + Revoke FS block 676 + Revoke FS block 612 + Revoke FS block 677 + Revoke FS block 613 + Revoke FS block 678 + Revoke FS block 614 + Revoke FS block 679 + Revoke FS block 615 + Revoke FS block 616 + Revoke FS block 617 + Revoke FS block 682 + Revoke FS block 618 + Revoke FS block 683 + Revoke FS block 619 + Revoke FS block 684 + Revoke FS block 620 + Revoke FS block 685 + Revoke FS block 621 + Revoke FS block 622 + Revoke FS block 687 + Revoke FS block 623 + Revoke FS block 688 + Revoke FS block 624 + Revoke FS block 689 + Revoke FS block 625 + Revoke FS block 690 + Revoke FS block 626 + Revoke FS block 691 + Revoke FS block 627 + Revoke FS block 628 + Revoke FS block 629 + Revoke FS block 630 + Revoke FS block 631 + Revoke FS block 632 + Revoke FS block 633 + Revoke FS block 634 + Revoke FS block 635 + Revoke FS block 636 + Revoke FS block 637 + Revoke FS block 638 + Revoke FS block 639 +Found expected sequence 5, type 1 (descriptor block) at block 330 +Dumping descriptor block, sequence 5, at block 330: + FS block 98 logged at journal block 331 (flags 0x0) + FS block 99 logged at journal block 332 (flags 0x2) + FS block 354 logged at journal block 333 (flags 0x2) + FS block 1 logged at journal block 334 (flags 0x2) + FS block 105 logged at journal block 335 (flags 0x2) + FS block 2 logged at journal block 336 (flags 0x2) + FS block 82 logged at journal block 337 (flags 0x2) + FS block 104 logged at journal block 338 (flags 0x2) + FS block 66 logged at journal block 339 (flags 0x2) + FS block 83 logged at journal block 340 (flags 0x2) + FS block 355 logged at journal block 341 (flags 0x2) + FS block 112 logged at journal block 342 (flags 0x2) + FS block 113 logged at journal block 343 (flags 0x2) + FS block 102 logged at journal block 344 (flags 0x2) + FS block 103 logged at journal block 345 (flags 0x2) + FS block 107 logged at journal block 346 (flags 0x2) + FS block 108 logged at journal block 347 (flags 0x2) + FS block 101 logged at journal block 348 (flags 0x2) + FS block 100 logged at journal block 349 (flags 0x2) + FS block 110 logged at journal block 350 (flags 0x2) + FS block 109 logged at journal block 351 (flags 0x2) + FS block 111 logged at journal block 352 (flags 0x2) + FS block 106 logged at journal block 353 (flags 0x2) + FS block 68 logged at journal block 354 (flags 0x2) + FS block 356 logged at journal block 355 (flags 0x2) + FS block 119 logged at journal block 356 (flags 0x2) + FS block 118 logged at journal block 357 (flags 0x2) + FS block 126 logged at journal block 358 (flags 0x2) + FS block 125 logged at journal block 359 (flags 0x2) + FS block 116 logged at journal block 360 (flags 0x2) + FS block 115 logged at journal block 361 (flags 0x2) + FS block 117 logged at journal block 362 (flags 0x2) + FS block 121 logged at journal block 363 (flags 0x2) + FS block 120 logged at journal block 364 (flags 0x2) + FS block 114 logged at journal block 365 (flags 0x2) + FS block 124 logged at journal block 366 (flags 0x2) + FS block 123 logged at journal block 367 (flags 0x2) + FS block 122 logged at journal block 368 (flags 0x2) + FS block 357 logged at journal block 369 (flags 0x2) + FS block 132 logged at journal block 370 (flags 0x2) + FS block 133 logged at journal block 371 (flags 0x2) + FS block 358 logged at journal block 372 (flags 0x2) + FS block 140 logged at journal block 373 (flags 0x2) + FS block 139 logged at journal block 374 (flags 0x2) + FS block 130 logged at journal block 375 (flags 0x2) + FS block 129 logged at journal block 376 (flags 0x2) + FS block 131 logged at journal block 377 (flags 0x2) + FS block 135 logged at journal block 378 (flags 0x2) + FS block 134 logged at journal block 379 (flags 0x2) + FS block 128 logged at journal block 380 (flags 0x2) + FS block 137 logged at journal block 381 (flags 0x2) + FS block 138 logged at journal block 382 (flags 0x2) + FS block 136 logged at journal block 383 (flags 0x2) + FS block 127 logged at journal block 384 (flags 0x2) + FS block 359 logged at journal block 385 (flags 0x2) + FS block 146 logged at journal block 386 (flags 0x2) + FS block 145 logged at journal block 387 (flags 0x2) + FS block 154 logged at journal block 388 (flags 0x2) + FS block 153 logged at journal block 389 (flags 0x2) + FS block 144 logged at journal block 390 (flags 0x2) + FS block 143 logged at journal block 391 (flags 0x2) + FS block 149 logged at journal block 392 (flags 0x2) + FS block 148 logged at journal block 393 (flags 0x2) + FS block 142 logged at journal block 394 (flags 0x2) + FS block 151 logged at journal block 395 (flags 0x2) + FS block 150 logged at journal block 396 (flags 0x2) + FS block 152 logged at journal block 397 (flags 0x2) + FS block 141 logged at journal block 398 (flags 0x2) + FS block 147 logged at journal block 399 (flags 0x2) + FS block 360 logged at journal block 400 (flags 0x2) + FS block 160 logged at journal block 401 (flags 0x2) + FS block 159 logged at journal block 402 (flags 0x2) + FS block 361 logged at journal block 403 (flags 0x2) + FS block 167 logged at journal block 404 (flags 0x2) + FS block 168 logged at journal block 405 (flags 0x2) + FS block 157 logged at journal block 406 (flags 0x2) + FS block 158 logged at journal block 407 (flags 0x2) + FS block 162 logged at journal block 408 (flags 0x2) + FS block 163 logged at journal block 409 (flags 0x2) + FS block 156 logged at journal block 410 (flags 0x2) + FS block 155 logged at journal block 411 (flags 0x2) + FS block 165 logged at journal block 412 (flags 0x2) + FS block 164 logged at journal block 413 (flags 0x2) + FS block 166 logged at journal block 414 (flags 0xa) +Found expected sequence 5, type 1 (descriptor block) at block 415 +Dumping descriptor block, sequence 5, at block 415: + FS block 161 logged at journal block 416 (flags 0x0) + FS block 362 logged at journal block 417 (flags 0x2) + FS block 174 logged at journal block 418 (flags 0x2) + FS block 173 logged at journal block 419 (flags 0x2) + FS block 181 logged at journal block 420 (flags 0x2) + FS block 180 logged at journal block 421 (flags 0x2) + FS block 171 logged at journal block 422 (flags 0x2) + FS block 170 logged at journal block 423 (flags 0x2) + FS block 172 logged at journal block 424 (flags 0x2) + FS block 176 logged at journal block 425 (flags 0x2) + FS block 175 logged at journal block 426 (flags 0x2) + FS block 169 logged at journal block 427 (flags 0x2) + FS block 179 logged at journal block 428 (flags 0x2) + FS block 178 logged at journal block 429 (flags 0x2) + FS block 177 logged at journal block 430 (flags 0x2) + FS block 363 logged at journal block 431 (flags 0x2) + FS block 187 logged at journal block 432 (flags 0x2) + FS block 188 logged at journal block 433 (flags 0x2) + FS block 364 logged at journal block 434 (flags 0x2) + FS block 195 logged at journal block 435 (flags 0x2) + FS block 194 logged at journal block 436 (flags 0x2) + FS block 185 logged at journal block 437 (flags 0x2) + FS block 184 logged at journal block 438 (flags 0x2) + FS block 186 logged at journal block 439 (flags 0x2) + FS block 190 logged at journal block 440 (flags 0x2) + FS block 189 logged at journal block 441 (flags 0x2) + FS block 183 logged at journal block 442 (flags 0x2) + FS block 192 logged at journal block 443 (flags 0x2) + FS block 193 logged at journal block 444 (flags 0x2) + FS block 191 logged at journal block 445 (flags 0x2) + FS block 182 logged at journal block 446 (flags 0x2) + FS block 365 logged at journal block 447 (flags 0x2) + FS block 201 logged at journal block 448 (flags 0x2) + FS block 200 logged at journal block 449 (flags 0x2) + FS block 680 logged at journal block 450 (flags 0x2) + FS block 209 logged at journal block 451 (flags 0x2) + FS block 208 logged at journal block 452 (flags 0x2) + FS block 199 logged at journal block 453 (flags 0x2) + FS block 198 logged at journal block 454 (flags 0x2) + FS block 204 logged at journal block 455 (flags 0x2) + FS block 203 logged at journal block 456 (flags 0x2) + FS block 197 logged at journal block 457 (flags 0x2) + FS block 206 logged at journal block 458 (flags 0x2) + FS block 205 logged at journal block 459 (flags 0x2) + FS block 207 logged at journal block 460 (flags 0x2) + FS block 681 logged at journal block 461 (flags 0x2) + FS block 196 logged at journal block 462 (flags 0xa) +Found expected sequence 5, type 2 (commit block) at block 463 +No magic number at block 464: end of journal. diff --git a/tests/f_jnl_32bit/expect.1 b/tests/f_jnl_32bit/expect.1 new file mode 100644 index 000000000..56aab48be --- /dev/null +++ b/tests/f_jnl_32bit/expect.1 @@ -0,0 +1,16 @@ +test_filesys: recovering journal +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Free blocks count wrong (14699, counted=14660). +Fix? yes + +Free inodes count wrong (4085, counted=3697). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 399/4096 files (0.0% non-contiguous), 1724/16384 blocks +Exit status is 1 diff --git a/tests/f_jnl_32bit/expect.2 b/tests/f_jnl_32bit/expect.2 new file mode 100644 index 000000000..be948d216 --- /dev/null +++ b/tests/f_jnl_32bit/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 399/4096 files (0.0% non-contiguous), 1724/16384 blocks +Exit status is 0 diff --git a/tests/f_jnl_32bit/image.gz b/tests/f_jnl_32bit/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..b308102374313c15ed30fe57b3a1453053c96ec5 GIT binary patch literal 44544 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 literal 0 Hc-jL100001 diff --git a/tests/f_jnl_32bit/name b/tests/f_jnl_32bit/name new file mode 100644 index 000000000..60e991393 --- /dev/null +++ b/tests/f_jnl_32bit/name @@ -0,0 +1 @@ +on-disk 32-bit journal format diff --git a/tests/f_jnl_32bit/script b/tests/f_jnl_32bit/script new file mode 100644 index 000000000..4056f0de3 --- /dev/null +++ b/tests/f_jnl_32bit/script @@ -0,0 +1,4 @@ +PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs > $test_name.0.log' +PASS_ZERO=true + +. $cmd_dir/run_e2fsck diff --git a/tests/f_jnl_64bit/expect.0 b/tests/f_jnl_64bit/expect.0 new file mode 100644 index 000000000..2d3f8c42b --- /dev/null +++ b/tests/f_jnl_64bit/expect.0 @@ -0,0 +1,237 @@ + +Journal starts at block 329, transaction 5 +Found expected sequence 5, type 1 (descriptor block) at block 329 +Dumping descriptor block, sequence 5, at block 329: + FS block 162 logged at journal block 330 (flags 0x8) +Found expected sequence 5, type 2 (commit block) at block 331 +Found expected sequence 6, type 5 (revoke table) at block 332 +Dumping revoke block, sequence 6, at block 332: + Revoke FS block 704 + Revoke FS block 705 + Revoke FS block 706 + Revoke FS block 707 + Revoke FS block 708 + Revoke FS block 709 + Revoke FS block 710 + Revoke FS block 711 + Revoke FS block 712 + Revoke FS block 713 + Revoke FS block 714 + Revoke FS block 715 + Revoke FS block 716 + Revoke FS block 717 + Revoke FS block 718 + Revoke FS block 719 + Revoke FS block 720 + Revoke FS block 721 + Revoke FS block 145 + Revoke FS block 722 + Revoke FS block 723 + Revoke FS block 724 + Revoke FS block 148 + Revoke FS block 725 + Revoke FS block 149 + Revoke FS block 726 + Revoke FS block 150 + Revoke FS block 727 + Revoke FS block 151 + Revoke FS block 728 + Revoke FS block 152 + Revoke FS block 729 + Revoke FS block 153 + Revoke FS block 730 + Revoke FS block 154 + Revoke FS block 731 + Revoke FS block 155 + Revoke FS block 732 + Revoke FS block 156 + Revoke FS block 733 + Revoke FS block 157 + Revoke FS block 734 + Revoke FS block 158 + Revoke FS block 735 + Revoke FS block 159 + Revoke FS block 736 + Revoke FS block 160 + Revoke FS block 737 + Revoke FS block 161 + Revoke FS block 738 + Revoke FS block 739 + Revoke FS block 675 + Revoke FS block 740 + Revoke FS block 676 + Revoke FS block 741 + Revoke FS block 677 + Revoke FS block 742 + Revoke FS block 678 + Revoke FS block 743 + Revoke FS block 679 + Revoke FS block 680 + Revoke FS block 745 + Revoke FS block 681 + Revoke FS block 746 + Revoke FS block 682 + Revoke FS block 683 + Revoke FS block 748 + Revoke FS block 684 + Revoke FS block 749 + Revoke FS block 685 + Revoke FS block 750 + Revoke FS block 686 + Revoke FS block 751 + Revoke FS block 687 + Revoke FS block 752 + Revoke FS block 688 + Revoke FS block 753 + Revoke FS block 689 + Revoke FS block 690 + Revoke FS block 691 + Revoke FS block 692 + Revoke FS block 693 + Revoke FS block 694 + Revoke FS block 695 + Revoke FS block 696 + Revoke FS block 697 + Revoke FS block 698 + Revoke FS block 699 + Revoke FS block 700 + Revoke FS block 701 + Revoke FS block 702 + Revoke FS block 703 +Found expected sequence 6, type 1 (descriptor block) at block 333 +Dumping descriptor block, sequence 6, at block 333: + FS block 163 logged at journal block 334 (flags 0x0) + FS block 418 logged at journal block 335 (flags 0x2) + FS block 1 logged at journal block 336 (flags 0x2) + FS block 170 logged at journal block 337 (flags 0x2) + FS block 2 logged at journal block 338 (flags 0x2) + FS block 146 logged at journal block 339 (flags 0x2) + FS block 169 logged at journal block 340 (flags 0x2) + FS block 130 logged at journal block 341 (flags 0x2) + FS block 147 logged at journal block 342 (flags 0x2) + FS block 168 logged at journal block 343 (flags 0x2) + FS block 171 logged at journal block 344 (flags 0x2) + FS block 172 logged at journal block 345 (flags 0x2) + FS block 165 logged at journal block 346 (flags 0x2) + FS block 164 logged at journal block 347 (flags 0x2) + FS block 419 logged at journal block 348 (flags 0x2) + FS block 174 logged at journal block 349 (flags 0x2) + FS block 173 logged at journal block 350 (flags 0x2) + FS block 167 logged at journal block 351 (flags 0x2) + FS block 175 logged at journal block 352 (flags 0x2) + FS block 166 logged at journal block 353 (flags 0x2) + FS block 176 logged at journal block 354 (flags 0x2) + FS block 177 logged at journal block 355 (flags 0x2) + FS block 132 logged at journal block 356 (flags 0x2) + FS block 162 logged at journal block 357 (flags 0x2) + FS block 420 logged at journal block 358 (flags 0x2) + FS block 184 logged at journal block 359 (flags 0x2) + FS block 183 logged at journal block 360 (flags 0x2) + FS block 182 logged at journal block 361 (flags 0x2) + FS block 185 logged at journal block 362 (flags 0x2) + FS block 179 logged at journal block 363 (flags 0x2) + FS block 178 logged at journal block 364 (flags 0x2) + FS block 187 logged at journal block 365 (flags 0x2) + FS block 188 logged at journal block 366 (flags 0x2) + FS block 186 logged at journal block 367 (flags 0x2) + FS block 181 logged at journal block 368 (flags 0x2) + FS block 189 logged at journal block 369 (flags 0x2) + FS block 180 logged at journal block 370 (flags 0x2) + FS block 190 logged at journal block 371 (flags 0x2) + FS block 421 logged at journal block 372 (flags 0x2) + FS block 197 logged at journal block 373 (flags 0x2) + FS block 198 logged at journal block 374 (flags 0x2) + FS block 196 logged at journal block 375 (flags 0x2) + FS block 199 logged at journal block 376 (flags 0x2) + FS block 192 logged at journal block 377 (flags 0x2) + FS block 193 logged at journal block 378 (flags 0x2) + FS block 191 logged at journal block 379 (flags 0x2) + FS block 422 logged at journal block 380 (flags 0x2) + FS block 201 logged at journal block 381 (flags 0x2) + FS block 202 logged at journal block 382 (flags 0x2) + FS block 200 logged at journal block 383 (flags 0x2) + FS block 195 logged at journal block 384 (flags 0x2) + FS block 194 logged at journal block 385 (flags 0x2) + FS block 203 logged at journal block 386 (flags 0x2) + FS block 204 logged at journal block 387 (flags 0x2) + FS block 423 logged at journal block 388 (flags 0x2) + FS block 211 logged at journal block 389 (flags 0x2) + FS block 212 logged at journal block 390 (flags 0x2) + FS block 210 logged at journal block 391 (flags 0x2) + FS block 209 logged at journal block 392 (flags 0x2) + FS block 213 logged at journal block 393 (flags 0x2) + FS block 206 logged at journal block 394 (flags 0x2) + FS block 207 logged at journal block 395 (flags 0x2) + FS block 205 logged at journal block 396 (flags 0x2) + FS block 215 logged at journal block 397 (flags 0x2) + FS block 214 logged at journal block 398 (flags 0x2) + FS block 208 logged at journal block 399 (flags 0x2) + FS block 216 logged at journal block 400 (flags 0x2) + FS block 217 logged at journal block 401 (flags 0x2) + FS block 218 logged at journal block 402 (flags 0x2) + FS block 424 logged at journal block 403 (flags 0x2) + FS block 225 logged at journal block 404 (flags 0x2) + FS block 224 logged at journal block 405 (flags 0x2) + FS block 223 logged at journal block 406 (flags 0x2) + FS block 226 logged at journal block 407 (flags 0x2) + FS block 227 logged at journal block 408 (flags 0x2) + FS block 220 logged at journal block 409 (flags 0x2) + FS block 219 logged at journal block 410 (flags 0x2) + FS block 425 logged at journal block 411 (flags 0x2) + FS block 229 logged at journal block 412 (flags 0x2) + FS block 228 logged at journal block 413 (flags 0x2) + FS block 222 logged at journal block 414 (flags 0x2) + FS block 230 logged at journal block 415 (flags 0x2) + FS block 221 logged at journal block 416 (flags 0x2) + FS block 231 logged at journal block 417 (flags 0xa) +Found expected sequence 6, type 1 (descriptor block) at block 418 +Dumping descriptor block, sequence 6, at block 418: + FS block 232 logged at journal block 419 (flags 0x0) + FS block 426 logged at journal block 420 (flags 0x2) + FS block 239 logged at journal block 421 (flags 0x2) + FS block 238 logged at journal block 422 (flags 0x2) + FS block 237 logged at journal block 423 (flags 0x2) + FS block 240 logged at journal block 424 (flags 0x2) + FS block 234 logged at journal block 425 (flags 0x2) + FS block 233 logged at journal block 426 (flags 0x2) + FS block 242 logged at journal block 427 (flags 0x2) + FS block 243 logged at journal block 428 (flags 0x2) + FS block 241 logged at journal block 429 (flags 0x2) + FS block 236 logged at journal block 430 (flags 0x2) + FS block 244 logged at journal block 431 (flags 0x2) + FS block 235 logged at journal block 432 (flags 0x2) + FS block 245 logged at journal block 433 (flags 0x2) + FS block 427 logged at journal block 434 (flags 0x2) + FS block 252 logged at journal block 435 (flags 0x2) + FS block 253 logged at journal block 436 (flags 0x2) + FS block 251 logged at journal block 437 (flags 0x2) + FS block 254 logged at journal block 438 (flags 0x2) + FS block 247 logged at journal block 439 (flags 0x2) + FS block 248 logged at journal block 440 (flags 0x2) + FS block 246 logged at journal block 441 (flags 0x2) + FS block 428 logged at journal block 442 (flags 0x2) + FS block 256 logged at journal block 443 (flags 0x2) + FS block 257 logged at journal block 444 (flags 0x2) + FS block 255 logged at journal block 445 (flags 0x2) + FS block 250 logged at journal block 446 (flags 0x2) + FS block 249 logged at journal block 447 (flags 0x2) + FS block 258 logged at journal block 448 (flags 0x2) + FS block 259 logged at journal block 449 (flags 0x2) + FS block 429 logged at journal block 450 (flags 0x2) + FS block 266 logged at journal block 451 (flags 0x2) + FS block 267 logged at journal block 452 (flags 0x2) + FS block 744 logged at journal block 453 (flags 0x2) + FS block 265 logged at journal block 454 (flags 0x2) + FS block 264 logged at journal block 455 (flags 0x2) + FS block 268 logged at journal block 456 (flags 0x2) + FS block 261 logged at journal block 457 (flags 0x2) + FS block 262 logged at journal block 458 (flags 0x2) + FS block 260 logged at journal block 459 (flags 0x2) + FS block 270 logged at journal block 460 (flags 0x2) + FS block 269 logged at journal block 461 (flags 0x2) + FS block 263 logged at journal block 462 (flags 0x2) + FS block 754 logged at journal block 463 (flags 0x2) + FS block 271 logged at journal block 464 (flags 0x2) + FS block 272 logged at journal block 465 (flags 0xa) +Found expected sequence 6, type 2 (commit block) at block 466 +No magic number at block 467: end of journal. diff --git a/tests/f_jnl_64bit/expect.1 b/tests/f_jnl_64bit/expect.1 new file mode 100644 index 000000000..07b40dd01 --- /dev/null +++ b/tests/f_jnl_64bit/expect.1 @@ -0,0 +1,16 @@ +test_filesys: recovering journal +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Free blocks count wrong (14571, counted=14531). +Fix? yes + +Free inodes count wrong (4085, counted=3689). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 407/4096 files (0.0% non-contiguous), 1853/16384 blocks +Exit status is 1 diff --git a/tests/f_jnl_64bit/expect.2 b/tests/f_jnl_64bit/expect.2 new file mode 100644 index 000000000..42ae35579 --- /dev/null +++ b/tests/f_jnl_64bit/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 407/4096 files (0.0% non-contiguous), 1853/16384 blocks +Exit status is 0 diff --git a/tests/f_jnl_64bit/image.gz b/tests/f_jnl_64bit/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..81fbc63d781e589cf512442f0cb22283e871630d GIT binary patch literal 45038 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 literal 0 Hc-jL100001 diff --git a/tests/f_jnl_64bit/name b/tests/f_jnl_64bit/name new file mode 100644 index 000000000..2c8dd15ff --- /dev/null +++ b/tests/f_jnl_64bit/name @@ -0,0 +1 @@ +on-disk 64-bit journal format diff --git a/tests/f_jnl_64bit/script b/tests/f_jnl_64bit/script new file mode 100644 index 000000000..4056f0de3 --- /dev/null +++ b/tests/f_jnl_64bit/script @@ -0,0 +1,4 @@ +PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs > $test_name.0.log' +PASS_ZERO=true + +. $cmd_dir/run_e2fsck diff --git a/tests/run_e2fsck b/tests/run_e2fsck index 9202e1214..573e01008 100644 --- a/tests/run_e2fsck +++ b/tests/run_e2fsck @@ -79,8 +79,14 @@ if [ "$SKIP_VERIFY" != "true" ] ; then else status2=0 fi + if [ "$PASS_ZERO" = "true" ]; then + cmp -s $test_name.0.log $test_dir/expect.0 + status3=$? + else + status3=0 + fi - if [ "$status1" = 0 -a "$status2" = 0 ] ; then + if [ "$status1" -eq 0 -a "$status2" -eq 0 -a "$status3" -eq 0 ] ; then echo "ok" touch $test_name.ok else @@ -96,6 +102,6 @@ fi if [ "$SKIP_CLEANUP" != "true" ] ; then unset IMAGE FSCK_OPT SECOND_FSCK_OPT OUT1 OUT2 EXP1 EXP2 unset SKIP_VERIFY SKIP_CLEANUP SKIP_GUNZIP ONE_PASS_ONLY PREP_CMD - unset DESCRIPTION SKIP_UNLINK AFTER_CMD + unset DESCRIPTION SKIP_UNLINK AFTER_CMD PASS_ZERO fi -- 2.47.2