eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
& eval 'exec perl -S $0 $argv:q'
if 0;
# THE PRECEEDING STUFF EXECS perl via $PATH
# -*-Fundamental-*-
require 5.000;
# $Id: //guest/richard_geiger/utils/cvs2p4/test/runtest#3 $
#
# Richard Geiger
#
sub dirname
{
local($dir) = @_;
$dir =~ s%^$%.%; $dir = "$dir/";
if ($dir =~ m%^/[^/]*//*$%) { return "/"; }
if ($dir =~ m%^.*[^/]//*[^/][^/]*//*$%)
{ $dir =~ s%^(.*[^/])//*[^/][^/]*//*$%$1%; { return $dir; } }
return ".";
}
use Carp; # ...or flounder.
$| = 1;
($Myname = $0) =~ s%^.*/%%;
$Mydir = &dirname($0);
$Here = `/bin/pwd`; chop $Here;
if ($Mydir ne ".") { chdir "$Mydir" || die "$Myname: can't chdir \"$Mydir\": $!"; }
chdir ".." || die "$Myname: can't chdir \"..\": $!";
$Mydir = `/bin/pwd`; chop $Mydir;
chdir $Here || die "$Myname: can't chdir \"$Here\": $!";
require "$Mydir/lib/util.pl";
$Usage = <<LIT;
$Myname: usage: $Myname
LIT
sub usage
{
print STDERR $Usage;
exit 1;
}
sub help
{
print STDERR <<LIT;
$Usage
$Myname is...
LIT
exit 1;
}
$Valopt = "default";
$Gengood = 0;
while ($#ARGV >= 0)
{
if ($ARGV[0] eq "-gengood") { $Gengood = 1; shift; next; }
elsif ($ARGV[0] eq "-valopt")
{
shift; if ($ARGV[0] < 0) { &usage; }
$Valopt = $ARGV[0]; shift; next;
}
elsif ($ARGV[0] eq "-help")
{ &help; }
elsif ($ARGV[0] =~ /^-/) { &usage; }
if ($Args ne "") { $Args .= " "; }
push(@Args, $ARGV[0]);
shift;
}
$Convdir = "$Mydir/test_conv_dir";
$Testdir = "$Mydir/test";
### Setup
#
if ( &s("rm -rf $Convdir") ||
&s("mkdir $Convdir") ||
&s("cp $Testdir/config $Convdir"))
{ print "$Myname: *** setup failed\n"; exit 1; }
require "$Convdir/config";
$ENV{"P4PORT"} = $P4PORT;
print "$Myname > chdir $Mydir\n";
if (! chdir "$Mydir")
{ print "$Myname: ** can't \"chdir $Mydir\": $!\n"; exit 1; }
### genmetadata
#
if (&s("bin/genmetadata test_conv_dir"))
{ print "$Myname: *** genmetadata failed\n"; exit 1; }
if (! $Gengood &&
(&s("diff $Convdir/lines $Testdir/lines.good") ||
&s("diff $Convdir/metadata $Testdir/metadata.good")))
{ print "$Myname: *** genmetadata bad results\n"; exit 1; }
### genchanges
#
if (&s("bin/genchanges test_conv_dir"))
{ print "$Myname: *** genchanges failed\n"; exit 1; }
if (! $Gengood &&
&s("diff $Convdir/changes $Testdir/changes.good"))
{ print "$Myname: *** genchanges bad results\n"; exit 1; }
### dochanges
#
# Interlock to set up server here TBD
#
if (&s("bin/dochanges test_conv_dir") ||
&s("$P4 changes -l | $Testdir/norm > $Convdir/p4_changes_-l 2>&1") ||
&s("$P4 describe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2>&1".
"| $Testdir/norm > $Convdir/p4_describe"))
{ print "$Myname: *** dochanges failed\n"; exit 1; }
if (! $Gengood &&
(&s("diff $Convdir/p4_changes_-l $Testdir/p4_changes_-l.good") ||
&s("diff $Convdir/p4_describe $Testdir/p4_describe.good")))
{ print "$Myname: *** dochanges bad results\n"; exit 1; }
print "$Myname: ok\n";
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #22 | 5654 | Richard Geiger | Take care of David Birkhead's first two problem children :-) | ||
| #21 | 5601 | Richard Geiger | Integrate 3.0 changes, preparing to publish. | ||
| #20 | 5599 | Richard Geiger | About to unleash 3.0 upon an unsuspecting world... | ||
| #19 | 5591 | Richard Geiger |
Reverse the order of all diff args, so that "<" is the .good and ">" is what was observed in the test execution. Seems to read more intuitively that way. |
||
| #18 | 5575 | Richard Geiger | split config file. | ||
| #17 | 5531 | Richard Geiger |
A significant checkpoint commit, with new improved handling of import vendor branches, and revisions present in main by virtue of multiple vendor drops to a file with no local mods. test/runtest works, with new refernece results pretty well scrutinized. |
||
| #16 | 5467 | Richard Geiger |
checkpoint. Need to update the docs prior to release! |
||
| #15 | 5465 | Richard Geiger | Add exclude list for tags & branches. | ||
| #14 | 5448 | Richard Geiger |
Let's work with Perforce BETA servers... :-) |
||
| #13 | 5426 | Richard Geiger | Add compilation of the tags and branch tags encountered. | ||
| #12 | 5271 | Richard Geiger |
Sleep in runtest to make it work more reliably on fast machines; And write to "p4 -jr -" instead of "p4root/dblabels", to save space and maybe go faster... "for now, at least". |
||
| #11 | 4270 | Richard Geiger | Handle symbols name starting with a leading "num". | ||
| #10 | 3708 | Richard Geiger | Changes for 2.3.6 | ||
| #9 | 3596 | Richard Geiger |
Oops. Not so simple; the diff behavior changed with 2002.2, not 2003.1. So, we handle it. |
||
| #8 | 3594 | Richard Geiger | Changes for 2.3.5 | ||
| #7 | 1781 | Richard Geiger |
This change reintegrates cvs2p4 2.0 developement work (through 2.0b6) back into my mainline development. |
||
| #6 | 1185 | Richard Geiger |
Changes for 1.3 (Labels!) |
||
| #5 | 791 | Richard Geiger |
Update for a new release; my change-of-venue noted; desensitized to conflicting P4CONFIG. |
||
| #4 | 398 | Richard Geiger | Skip (and note) ,v files with nonprintable characters in the fileame. | ||
| #3 | 249 | Richard Geiger |
Changes in preparation for supporting spaces in filenames. (In fact, this may work as of this change, but is not yet tested.) Also, add "runtest -gengood" to allow easier generatino of new *.good files. (It just doesn't quick on a miscompare!). |
||
| #2 | 240 | Richard Geiger |
Version 1.2.5, to account for post-1999 RCS behavior. (Courtesy of David Simon, Goldman Sachs) |
||
| #1 | 130 | Richard Geiger |
CVS-to-Perforce converter. This is release 1.2.2 (first submit to the Perforce Public Depot) |