QA output created by 738
=== Usage, no input files, incomplete input archive ===
Usage: pmlogmv [options] oldname newname

Options:
  -f, --force           force changes, even if they look unsafe
  -N, --showme          perform a dry run, showing what would be done
  -V, --verbose         increase diagnostic verbosity
  -?, --help            show this usage message and exit
exit status 1
Usage: pmlogmv [options] oldname newname

Options:
  -f, --force           force changes, even if they look unsafe
  -N, --showme          perform a dry run, showing what would be done
  -V, --verbose         increase diagnostic verbosity
  -?, --help            show this usage message and exit
exit status 1
pmlogmv: Cannot open archive "foo": No such file or directory
exit status 1
pmlogmv: Cannot open archive "foo": Missing PCP archive log file
exit status 1
pmlogmv: Cannot open archive "foo": Missing PCP archive log file
exit status 1

=== non-pcp archives and output files already exist ===
link ./foo.0 -> bar.0
link ./foo.index -> bar.index
link ./foo.meta -> bar.meta
remove ./foo.0
remove ./foo.index
remove ./foo.meta
bar.0
bar.index
bar.meta
foo.frog
--- bar.0 already exists ---
pmlogmv: bar.0: already exists
exit status 1
bar.0
foo.0
foo.index
foo.meta
--- bar.index already exists ---
link ./foo.0 -> bar.0
pmlogmv: bar.index: already exists
cleanup: remove bar.0
exit status 1
bar.index
foo.0
foo.index
foo.meta
--- bar.meta already exists ---
link ./foo.0 -> bar.0
link ./foo.index -> bar.index
pmlogmv: bar.meta: already exists
cleanup: remove bar.index
cleanup: remove bar.0
exit status 1
bar.meta
foo.0
foo.index
foo.meta

=== simplest case ===
+ ln ./foo.0 bar.0
+ ln ./foo.index bar.index
+ ln ./foo.meta bar.meta
+ rm ./foo.0
+ rm ./foo.index
+ rm ./foo.meta
link ./foo.0 -> bar.0
link ./foo.index -> bar.index
link ./foo.meta -> bar.meta
remove ./foo.0
remove ./foo.index
remove ./foo.meta
ls: cannot access foo*: No such file or directory
bar.0
bar.index
bar.meta

=== single oldfile name cases ===
--- foo.meta ---
link ./foo.0 -> bar.0
link ./foo.index -> bar.index
link ./foo.meta -> bar.meta
remove ./foo.0
remove ./foo.index
remove ./foo.meta
ls: cannot access foo*: No such file or directory
bar.0
bar.index
bar.meta
--- foo.0 ---
link ./foo.0 -> bar.0
link ./foo.index -> bar.index
link ./foo.meta -> bar.meta
remove ./foo.0
remove ./foo.index
remove ./foo.meta
ls: cannot access foo*: No such file or directory
bar.0
bar.index
bar.meta
--- foo.index ---
link ./foo.0 -> bar.0
link ./foo.index -> bar.index
link ./foo.meta -> bar.meta
remove ./foo.0
remove ./foo.index
remove ./foo.meta
ls: cannot access foo*: No such file or directory
bar.0
bar.index
bar.meta

=== multi-volume case ===
link ./mv-foo.0 -> bar.0
link ./mv-foo.1 -> bar.1
link ./mv-foo.2 -> bar.2
link ./mv-foo.123 -> bar.123
link ./mv-foo.index -> bar.index
link ./mv-foo.meta -> bar.meta
remove ./mv-foo.0
remove ./mv-foo.1
remove ./mv-foo.2
remove ./mv-foo.123
remove ./mv-foo.index
remove ./mv-foo.meta
ls: cannot access foo*: No such file or directory
bar.0
bar.1
bar.123
bar.2
bar.index
bar.meta

=== old and new in different directories ==
link ./mv-foo.0 -> new/mv-foo.0
link ./mv-foo.1 -> new/mv-foo.1
link ./mv-foo.2 -> new/mv-foo.2
link ./mv-foo.index -> new/mv-foo.index
link ./mv-foo.meta -> new/mv-foo.meta
remove ./mv-foo.0
remove ./mv-foo.1
remove ./mv-foo.2
remove ./mv-foo.index
remove ./mv-foo.meta
ls: cannot access foo*: No such file or directory
new/mv-foo.0
new/mv-foo.1
new/mv-foo.2
new/mv-foo.index
new/mv-foo.meta

=== error case for ln failing ===
link ./mv-foo.0 -> new/mv-foo.0
pmlogmv: link ./mv-foo.0 -> new/mv-foo.0 failed: Permission denied
exit status 1
ls: cannot access new/*: No such file or directory
mv-foo.0
mv-foo.1
mv-foo.2
mv-foo.index
mv-foo.meta

=== error case for rm failing ===
link ./mv-foo.0 -> new/mv-foo.0
link ./mv-foo.1 -> new/mv-foo.1
link ./mv-foo.2 -> new/mv-foo.2
link ./mv-foo.index -> new/mv-foo.index
link ./mv-foo.meta -> new/mv-foo.meta
remove ./mv-foo.0
pmlogmv: unlink ./mv-foo.0 failed: Permission denied
remove ./mv-foo.1
pmlogmv: unlink ./mv-foo.1 failed: Permission denied
remove ./mv-foo.2
pmlogmv: unlink ./mv-foo.2 failed: Permission denied
remove ./mv-foo.index
pmlogmv: unlink ./mv-foo.index failed: Permission denied
remove ./mv-foo.meta
pmlogmv: unlink ./mv-foo.meta failed: Permission denied
mv-foo.0
mv-foo.1
mv-foo.2
mv-foo.index
mv-foo.meta
new/mv-foo.0
new/mv-foo.1
new/mv-foo.2
new/mv-foo.index
new/mv-foo.meta

=== Frank's error case rm failing after first file (can't happen anymore) ===
link ./mv-foo.0 -> mv-bar.0
link ./mv-foo.1 -> mv-bar.1
link ./mv-foo.2 -> mv-bar.2
link ./mv-foo.index -> mv-bar.index
link ./mv-foo.meta -> mv-bar.meta
remove ./mv-foo.0
remove ./mv-foo.1
remove ./mv-foo.2
remove ./mv-foo.index
remove ./mv-foo.meta
ls: cannot access mv-foo*: No such file or directory
mv-bar.0
mv-bar.1
mv-bar.2
mv-bar.index
mv-bar.meta
