⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 26_twrite.t

📁 source of perl for linux application,
💻 T
📖 第 1 页 / 共 2 页
字号:
try(    0,     0, 24576);  # old=0        , new=<x><x><x>; old < newtry(    0,  6530,     0);  # old=<x       , new=0        ; old > newtry(    0,  8192,     0);  # old=<x>      , new=0        ; old > newtry(    0, 14707,     0);  # old=<x><x    , new=0        ; old > newtry(    0, 16384,     0);  # old=<x><x>   , new=0        ; old > newtry(    0, 24576,     0);  # old=<x><x><x>, new=0        ; old > newtry(    0,     0,     0);  # old=0        , new=0        ; old = new# (115-141)# These tests all take place at the end of the file$FLEN = 40960;  # Force the file to be exactly 40960 bytes longtry(32768,  8192,  8192);  # old=<x>      , new=<x       ; old = newtry(32768,  8192,  4026);  # old=<x>      , new=<x       ; old > newtry(24576, 16384,  1917);  # old=<x><x>   , new=<x       ; old > newtry(16384, 24576,  3818);  # old=<x><x><x>, new=<x       ; old > newtry(40960,     0,  2779);  # old=0        , new=<x       ; old < newtry(32768,  8192,  8192);  # old=<x>      , new=<x>      ; old = newtry(24576, 16384,  8192);  # old=<x><x>   , new=<x>      ; old > newtry(16384, 24576,  8192);  # old=<x><x><x>, new=<x>      ; old > newtry(40960,     0,  8192);  # old=0        , new=<x>      ; old < newtry(32768,  8192, 10724);  # old=<x>      , new=<x><x    ; old < newtry(24576, 16384, 12221);  # old=<x><x>   , new=<x><x    ; old > newtry(16384, 24576, 15030);  # old=<x><x><x>, new=<x><x    ; old > newtry(40960,     0, 11752);  # old=0        , new=<x><x    ; old < newtry(32768,  8192, 16384);  # old=<x>      , new=<x><x>   ; old < newtry(24576, 16384, 16384);  # old=<x><x>   , new=<x><x>   ; old = newtry(16384, 24576, 16384);  # old=<x><x><x>, new=<x><x>   ; old > newtry(40960,     0, 16384);  # old=0        , new=<x><x>   ; old < newtry(32768,  8192, 24576);  # old=<x>      , new=<x><x><x>; old < newtry(24576, 16384, 24576);  # old=<x><x>   , new=<x><x><x>; old < newtry(16384, 24576, 24576);  # old=<x><x><x>, new=<x><x><x>; old = newtry(40960,     0, 24576);  # old=0        , new=<x><x><x>; old < newtry(35973,  4987,     0);  # old=x>       , new=0        ; old > newtry(32768,  8192,     0);  # old=<x>      , new=0        ; old > newtry(29932, 11028,     0);  # old=x><x>    , new=0        ; old > newtry(24576, 16384,     0);  # old=<x><x>   , new=0        ; old > newtry(16384, 24576,     0);  # old=<x><x><x>, new=0        ; old > newtry(40960,     0,     0);  # old=0        , new=0        ; old = new# (142-181)# These tests all take place at the end of the file$FLEN = 42000;  # Force the file to be exactly 42000 bytes longtry(41275,   725,  4059);  # old=x        , new=x        ; old < newtry(41683,   317,   317);  # old=x        , new=x        ; old = newtry(41225,   775,   405);  # old=x        , new=x        ; old > newtry(35709,  6291,   284);  # old=x><x     , new=x        ; old > newtry(42000,     0,  2434);  # old=0        , new=x        ; old < newtry(40960,  1040,  1608);  # old=<x       , new=<x       ; old < newtry(40960,  1040,  1040);  # old=<x       , new=<x       ; old = newtry(40960,  1040,   378);  # old=<x       , new=<x       ; old > newtry(32768,  9232,  5604);  # old=<x><x    , new=<x       ; old > newtry(42000,     0,  6637);  # old=0        , new=<x       ; old < newtry(41022,   978,  8130);  # old=x        , new=x>       ; old < newtry(39994,  2006,   966);  # old=x><x     , new=x>       ; old > newtry(42000,     0,  7152);  # old=0        , new=x>       ; old < newtry(41613,   387, 10601);  # old=x        , new=x><x     ; old < newtry(38460,  3540,  3938);  # old=x><x     , new=x><x     ; old < newtry(36725,  5275,  5275);  # old=x><x     , new=x><x     ; old = newtry(37990,  4010,  3199);  # old=x><x     , new=x><x     ; old > newtry(42000,     0,  9189);  # old=0        , new=x><x     ; old < newtry(40960,  1040,  8192);  # old=<x       , new=<x>      ; old < newtry(32768,  9232,  8192);  # old=<x><x    , new=<x>      ; old > newtry(42000,     0,  8192);  # old=0        , new=<x>      ; old < newtry(40960,  1040, 11778);  # old=<x       , new=<x><x    ; old < newtry(32768,  9232, 13792);  # old=<x><x    , new=<x><x    ; old < newtry(32768,  9232,  9232);  # old=<x><x    , new=<x><x    ; old = newtry(32768,  9232,  8795);  # old=<x><x    , new=<x><x    ; old > newtry(42000,     0,  8578);  # old=0        , new=<x><x    ; old < newtry(41531,   469, 15813);  # old=x        , new=x><x>    ; old < newtry(39618,  2382,  9534);  # old=x><x     , new=x><x>    ; old < newtry(42000,     0, 15344);  # old=0        , new=x><x>    ; old < newtry(40960,  1040, 16384);  # old=<x       , new=<x><x>   ; old < newtry(32768,  9232, 16384);  # old=<x><x    , new=<x><x>   ; old < newtry(42000,     0, 16384);  # old=0        , new=<x><x>   ; old < newtry(40960,  1040, 24576);  # old=<x       , new=<x><x><x>; old < newtry(32768,  9232, 24576);  # old=<x><x    , new=<x><x><x>; old < newtry(42000,     0, 24576);  # old=0        , new=<x><x><x>; old < newtry(41500,   500,     0);  # old=x        , new=0        ; old > newtry(40960,  1040,     0);  # old=<x       , new=0        ; old > newtry(35272,  6728,     0);  # old=x><x     , new=0        ; old > newtry(32768,  9232,     0);  # old=<x><x    , new=0        ; old > newtry(42000,     0,     0);  # old=0        , new=0        ; old = newsub try {  my ($pos, $len, $newlen) = @_;  open F, "> $file" or die "Couldn't open file $file: $!";  binmode F;  # The record has exactly 17 characters.  This will help ensure that  # even if _twrite screws up, the data doesn't coincidentally  # look good because the remainder accidentally lines up.  my $d = substr("0123456789abcdef$:", -17);  my $recs = defined($FLEN) ?    int($FLEN/length($d))+1 : # enough to make up at least $FLEN    int(8192*5/length($d))+1; # at least 5 blocks' worth  my $oldfile = $d x $recs;  my $flen = defined($FLEN) ? $FLEN : $recs * 17;  substr($oldfile, $FLEN) = "" if defined $FLEN;  # truncate  print F $oldfile;  close F;  die "wrong length!" unless -s $file == $flen;  my $newdata = "-" x $newlen;  my $expected = $oldfile;  substr($expected, $pos, $len) = $newdata;  my $o = tie my @lines, 'Tie::File', $file or die $!;  $o->_twrite($newdata, $pos, $len);  undef $o; untie @lines;  open F, "< $file" or die "Couldn't open file $file: $!";  binmode F;  my $actual;  { local $/;    $actual = <F>;  }  close F;  my ($alen, $xlen) = (length $actual, length $expected);  unless ($alen == $xlen) {    print "# try(@_) expected file length $xlen, actual $alen!\n";  }  print $actual eq $expected ? "ok $N\n" : "not ok $N\n";  $N++;}use POSIX 'SEEK_SET';sub check_contents {  my @c = @_;  my $x = join $:, @c, '';  local *FH = $o->{fh};  seek FH, 0, SEEK_SET;#  my $open = open FH, "< $file";  my $a;  { local $/; $a = <FH> }  $a = "" unless defined $a;  if ($a eq $x) {    print "ok $N\n";  } else {    ctrlfix($a, $x);    print "not ok $N\n# expected <$x>, got <$a>\n";  }  $N++;  # now check FETCH:  my $good = 1;  my $msg;  for (0.. $#c) {    my $aa = $a[$_];    unless ($aa eq "$c[$_]$:") {      $msg = "expected <$c[$_]$:>, got <$aa>";      ctrlfix($msg);      $good = 0;    }  }  print $good ? "ok $N\n" : "not ok $N # $msg\n";  $N++;  print $o->_check_integrity($file, $ENV{INTEGRITY})       ? "ok $N\n" : "not ok $N\n";  $N++;}sub ctrlfix {  for (@_) {    s/\n/\\n/g;    s/\r/\\r/g;  }}END {  undef $o;  untie @a;  1 while unlink $file;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -