Rich Salz | e0a6519 | 2016-04-19 22:10:43 -0400 | [diff] [blame] | 1 | #! /usr/bin/env perl |
| 2 | # Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. |
| 3 | # |
Richard Levitte | c7fcbc0 | 2018-12-06 13:10:33 +0100 | [diff] [blame] | 4 | # Licensed under the Apache License 2.0 (the "License"). You may not use |
Rich Salz | e0a6519 | 2016-04-19 22:10:43 -0400 | [diff] [blame] | 5 | # this file except in compliance with the License. You can obtain a copy |
| 6 | # in the file LICENSE in the source distribution or at |
| 7 | # https://www.openssl.org/source/license.html |
Ralf S. Engelschall | d02b48c | 1998-12-21 10:52:47 +0000 | [diff] [blame] | 8 | |
| 9 | ($#ARGV == 1) || die "usage: cmp.pl <file1> <file2>\n"; |
| 10 | |
| 11 | open(IN0,"<$ARGV[0]") || die "unable to open $ARGV[0]\n"; |
| 12 | open(IN1,"<$ARGV[1]") || die "unable to open $ARGV[1]\n"; |
| 13 | binmode IN0; |
| 14 | binmode IN1; |
| 15 | |
| 16 | $tot=0; |
| 17 | $ret=1; |
| 18 | for (;;) |
Viktor Szakats | 76c1183 | 2016-03-29 16:25:18 +0200 | [diff] [blame] | 19 | { |
| 20 | $n1=sysread(IN0,$b1,4096); |
| 21 | $n2=sysread(IN1,$b2,4096); |
Ralf S. Engelschall | d02b48c | 1998-12-21 10:52:47 +0000 | [diff] [blame] | 22 | |
Viktor Szakats | 76c1183 | 2016-03-29 16:25:18 +0200 | [diff] [blame] | 23 | last if ($n1 != $n2); |
| 24 | last if ($b1 ne $b2); |
| 25 | last if ($n1 < 0); |
| 26 | if ($n1 == 0) |
| 27 | { |
| 28 | $ret=0; |
| 29 | last; |
| 30 | } |
| 31 | $tot+=$n1; |
| 32 | } |
Ralf S. Engelschall | d02b48c | 1998-12-21 10:52:47 +0000 | [diff] [blame] | 33 | |
| 34 | close(IN0); |
| 35 | close(IN1); |
| 36 | if ($ret) |
Viktor Szakats | 76c1183 | 2016-03-29 16:25:18 +0200 | [diff] [blame] | 37 | { |
| 38 | printf STDERR "$ARGV[0] and $ARGV[1] are different\n"; |
| 39 | @a1=unpack("C*",$b1); |
| 40 | @a2=unpack("C*",$b2); |
| 41 | for ($i=0; $i<=$#a1; $i++) |
| 42 | { |
| 43 | if ($a1[$i] ne $a2[$i]) |
| 44 | { |
| 45 | printf "%02X %02X <<\n",$a1[$i],$a2[$i]; |
| 46 | last; |
| 47 | } |
| 48 | } |
| 49 | $nm=$tot+$n1; |
| 50 | $tot+=$i+1; |
| 51 | printf STDERR "diff at char $tot of $nm\n"; |
| 52 | } |
Ralf S. Engelschall | d02b48c | 1998-12-21 10:52:47 +0000 | [diff] [blame] | 53 | exit($ret); |