1#!/usr/bin/perl -w 2# 3# Make sure the VT102 module can handle line and character insertion and 4# deletion, and line/screen clearing. 5# 6# Copyright (C) Andrew Wood 7# NO WARRANTY - see COPYING. 8# 9 10require Term::VT102; 11require 't/testbase'; 12 13my $fill = "0123456789\r\n" . 14 "1234567890\r\n" . 15 "2345678901\r\n" . 16 "3456789012\e[H"; 17 18run_tests ([( 19 [ 10, 4, $fill . "", # 1: nothing 20 "0123456789", 21 "1234567890", 22 "2345678901", 23 "3456789012", 24 ], 25 [ 10, 4, $fill . "\e[P", # 2: DCH 1 26 "123456789\0", 27 "1234567890", 28 "2345678901", 29 "3456789012", 30 ], 31 [ 10, 4, $fill . "\e[2;8H\e[2P", # 3: DCH 2 32 "0123456789", 33 "12345670\0\0", 34 "2345678901", 35 "3456789012", 36 ], 37 [ 10, 4, $fill . "\e[3;7H\e[9P", # 4: DCH 9 38 "0123456789", 39 "1234567890", 40 "234567\0\0\0\0", 41 "3456789012", 42 ], 43 [ 10, 4, $fill . "\e[X", # 5: ECH 1 44 "\0" . "123456789", 45 "1234567890", 46 "2345678901", 47 "3456789012", 48 ], 49 [ 10, 4, $fill . "\e[2;8H\e[2X", # 6: ECH 2 50 "0123456789", 51 "1234567\0\0" . "0", 52 "2345678901", 53 "3456789012", 54 ], 55 [ 10, 4, $fill . "\e[3;7H\e[9X", # 7: ECH 9 56 "0123456789", 57 "1234567890", 58 "234567\0\0\0\0", 59 "3456789012", 60 ], 61 [ 10, 4, $fill . "\e[@", # 8: ICH 1 62 "\0" . "012345678", 63 "1234567890", 64 "2345678901", 65 "3456789012", 66 ], 67 [ 10, 4, $fill . "\e[2;8H\e[2@", # 9: ICH 2 68 "0123456789", 69 "1234567\0\0" . "8", 70 "2345678901", 71 "3456789012", 72 ], 73 [ 10, 4, $fill . "\e[3;7H\e[9@", # 10: ICH 9 74 "0123456789", 75 "1234567890", 76 "234567\0\0\0\0", 77 "3456789012", 78 ], 79 [ 10, 4, $fill . "\e[2;4H\e[J", # 11: ED 0 80 "0123456789", 81 "123" . ("\0" x 7), 82 ("\0" x 10), 83 ("\0" x 10), 84 ], 85 [ 10, 4, $fill . "\e[2;4H\e[1J", # 12: ED 1 86 ("\0" x 10), 87 ("\0" x 4) . "567890", 88 "2345678901", 89 "3456789012", 90 ], 91 [ 10, 4, $fill . "\e[2;4H\e[2J", # 13: ED 2 92 ("\0" x 10), 93 ("\0" x 10), 94 ("\0" x 10), 95 ("\0" x 10), 96 ], 97 [ 10, 4, $fill . "\e[2;4H\e[K", # 14: EL 0 98 "0123456789", 99 "123" . ("\0" x 7), 100 "2345678901", 101 "3456789012", 102 ], 103 [ 10, 4, $fill . "\e[2;4H\e[1K", # 15: EL 1 104 "0123456789", 105 ("\0" x 4) . "567890", 106 "2345678901", 107 "3456789012", 108 ], 109 [ 10, 4, $fill . "\e[2;4H\e[2K", # 16: EL 2 110 "0123456789", 111 ("\0" x 10), 112 "2345678901", 113 "3456789012", 114 ], 115 [ 10, 4, $fill . "\e[2;4H\e[LAbC", # 17: IL 1 116 "0123456789", 117 ("\0" x 3) . "AbC" . ("\0" x 4), 118 "1234567890", 119 "2345678901", 120 ], 121 [ 10, 4, $fill . "\e[2;4H\e[2LAbC", # 18: IL 2 122 "0123456789", 123 ("\0" x 3) . "AbC" . ("\0" x 4), 124 ("\0" x 10), 125 "1234567890", 126 ], 127 [ 10, 4, $fill . "\e[2;4H\e[9LAbC", # 19: IL 3 128 "0123456789", 129 ("\0" x 3) . "AbC" . ("\0" x 4), 130 ("\0" x 10), 131 ("\0" x 10), 132 ], 133 [ 10, 4, $fill . "\e[1;1H\e[2LAbC", # 20: IL 4 134 "AbC" . ("\0" x 7), 135 ("\0" x 10), 136 "0123456789", 137 "1234567890", 138 ], 139 [ 10, 4, $fill . "\e[2;4H\e[MAbC", # 21: DL 1 140 "0123456789", 141 "234AbC8901", 142 "3456789012", 143 ("\0" x 10), 144 ], 145 [ 10, 4, $fill . "\e[2;4H\e[2MAbC", # 22: DL 2 146 "0123456789", 147 "345AbC9012", 148 ("\0" x 10), 149 ("\0" x 10), 150 ], 151 [ 10, 4, $fill . "\e[2;4H\e[9MAbC", # 23: DL 3 152 "0123456789", 153 ("\0" x 3) . "AbC" . ("\0" x 4), 154 ("\0" x 10), 155 ("\0" x 10), 156 ], 157 [ 10, 4, $fill . "\e[1;1H\e[2MAbC", # 24: DL 4 158 "AbC5678901", 159 "3456789012", 160 ("\0" x 10), 161 ("\0" x 10), 162 ], 163 [ 10, 4, $fill . "\e[2;3r\e[2;4H\e[LAbC", # 25: DECSTBM IL 1 164 "0123456789", 165 ("\0" x 3) . "AbC" . ("\0" x 4), 166 "1234567890", 167 "3456789012", 168 ], 169 [ 10, 4, $fill . "\e[2;3r\e[2;4H\e[2LAbC", # 26: DECSTBM IL 2 170 "0123456789", 171 ("\0" x 3) . "AbC" . ("\0" x 4), 172 ("\0" x 10), 173 "3456789012", 174 ], 175 [ 10, 4, $fill . "\e[2;3r\e[2;4H\e[9LAbC", # 27: DECSTBM IL 3 176 "0123456789", 177 ("\0" x 3) . "AbC" . ("\0" x 4), 178 ("\0" x 10), 179 "3456789012", 180 ], 181 [ 10, 4, $fill . "\e[2;3r\e[1;1H\e[2LAbC", # 28: DECSTBM IL 4 182 "AbC" . ("\0" x 7), 183 "1234567890", 184 "2345678901", 185 "3456789012", 186 ], 187 [ 10, 4, $fill . "\e[2;3r\e[2;4H\e[MAbC", # 29: DECSTBM DL 1 188 "0123456789", 189 "234AbC8901", 190 ("\0" x 10), 191 "3456789012", 192 ], 193 [ 10, 4, $fill . "\e[2;3r\e[2;4H\e[2MAbC", # 30: DECSTBM DL 2 194 "0123456789", 195 ("\0" x 3) . "AbC" . ("\0" x 4), 196 ("\0" x 10), 197 "3456789012", 198 ], 199 [ 10, 4, $fill . "\e[2;3r\e[2;4H\e[9MAbC", # 31: DECSTBM DL 3 200 "0123456789", 201 ("\0" x 3) . "AbC" . ("\0" x 4), 202 ("\0" x 10), 203 "3456789012", 204 ], 205 [ 10, 4, $fill . "\e[2;3r\e[1;1H\e[2MAbC", # 32: DECSTBM DL 4 206 "AbC" . ("\0" x 7), 207 "1234567890", 208 "2345678901", 209 "3456789012", 210 ], 211)]); 212 213# EOF 214