#!/usr/bin/perl -w
#
# Make sure the VT102 module can handle line and character insertion and
# deletion, and line/screen clearing.
#
# Copyright (C) Andrew Wood
# NO WARRANTY - see COPYING.
#
require Term::VT102;
require 't/testbase';
my $fill = "0123456789\r\n" .
"1234567890\r\n" .
"2345678901\r\n" .
"3456789012\e[H";
run_tests ([(
[ 10, 4, $fill . "", # 1: nothing
"0123456789",
"1234567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[P", # 2: DCH 1
"123456789\0",
"1234567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;8H\e[2P", # 3: DCH 2
"0123456789",
"12345670\0\0",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[3;7H\e[9P", # 4: DCH 9
"0123456789",
"1234567890",
"234567\0\0\0\0",
"3456789012",
],
[ 10, 4, $fill . "\e[X", # 5: ECH 1
"\0" . "123456789",
"1234567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;8H\e[2X", # 6: ECH 2
"0123456789",
"1234567\0\0" . "0",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[3;7H\e[9X", # 7: ECH 9
"0123456789",
"1234567890",
"234567\0\0\0\0",
"3456789012",
],
[ 10, 4, $fill . "\e[@", # 8: ICH 1
"\0" . "012345678",
"1234567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;8H\e[2@", # 9: ICH 2
"0123456789",
"1234567\0\0" . "8",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[3;7H\e[9@", # 10: ICH 9
"0123456789",
"1234567890",
"234567\0\0\0\0",
"3456789012",
],
[ 10, 4, $fill . "\e[2;4H\e[J", # 11: ED 0
"0123456789",
"123" . ("\0" x 7),
("\0" x 10),
("\0" x 10),
],
[ 10, 4, $fill . "\e[2;4H\e[1J", # 12: ED 1
("\0" x 10),
("\0" x 4) . "567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;4H\e[2J", # 13: ED 2
("\0" x 10),
("\0" x 10),
("\0" x 10),
("\0" x 10),
],
[ 10, 4, $fill . "\e[2;4H\e[K", # 14: EL 0
"0123456789",
"123" . ("\0" x 7),
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;4H\e[1K", # 15: EL 1
"0123456789",
("\0" x 4) . "567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;4H\e[2K", # 16: EL 2
"0123456789",
("\0" x 10),
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;4H\e[LAbC", # 17: IL 1
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
"1234567890",
"2345678901",
],
[ 10, 4, $fill . "\e[2;4H\e[2LAbC", # 18: IL 2
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
"1234567890",
],
[ 10, 4, $fill . "\e[2;4H\e[9LAbC", # 19: IL 3
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
("\0" x 10),
],
[ 10, 4, $fill . "\e[1;1H\e[2LAbC", # 20: IL 4
"AbC" . ("\0" x 7),
("\0" x 10),
"0123456789",
"1234567890",
],
[ 10, 4, $fill . "\e[2;4H\e[MAbC", # 21: DL 1
"0123456789",
"234AbC8901",
"3456789012",
("\0" x 10),
],
[ 10, 4, $fill . "\e[2;4H\e[2MAbC", # 22: DL 2
"0123456789",
"345AbC9012",
("\0" x 10),
("\0" x 10),
],
[ 10, 4, $fill . "\e[2;4H\e[9MAbC", # 23: DL 3
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
("\0" x 10),
],
[ 10, 4, $fill . "\e[1;1H\e[2MAbC", # 24: DL 4
"AbC5678901",
"3456789012",
("\0" x 10),
("\0" x 10),
],
[ 10, 4, $fill . "\e[2;3r\e[2;4H\e[LAbC", # 25: DECSTBM IL 1
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
"1234567890",
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[2;4H\e[2LAbC", # 26: DECSTBM IL 2
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[2;4H\e[9LAbC", # 27: DECSTBM IL 3
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[1;1H\e[2LAbC", # 28: DECSTBM IL 4
"AbC" . ("\0" x 7),
"1234567890",
"2345678901",
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[2;4H\e[MAbC", # 29: DECSTBM DL 1
"0123456789",
"234AbC8901",
("\0" x 10),
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[2;4H\e[2MAbC", # 30: DECSTBM DL 2
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[2;4H\e[9MAbC", # 31: DECSTBM DL 3
"0123456789",
("\0" x 3) . "AbC" . ("\0" x 4),
("\0" x 10),
"3456789012",
],
[ 10, 4, $fill . "\e[2;3r\e[1;1H\e[2MAbC", # 32: DECSTBM DL 4
"AbC" . ("\0" x 7),
"1234567890",
"2345678901",
"3456789012",
],
)]);
# EOF