]> git.donarmstrong.com Git - debhelper.git/blobdiff - t/dh_link
r1843: * dh_link: add special case handling for paths to a directory containing the
[debhelper.git] / t / dh_link
index 3ab345e8b4d48cb31b8e518bfbd4f39597f77ab7..daeb209b9b3ad9a3d315e3f983b95db80ee7292d 100755 (executable)
--- a/t/dh_link
+++ b/t/dh_link
@@ -1,16 +1,41 @@
 #!/usr/bin/perl
 use Test;
-plan(tests => 3);
+plan(tests => 12);
 
 # It used to not make absolute links in this situation, and it should.
 # #37774
 system("./dh_link","etc/foo","usr/lib/bar");
-ok("/etc/foo",readlink("debian/debhelper/usr/lib/bar"));
+ok(readlink("debian/debhelper/usr/lib/bar"), "/etc/foo");
 
 # let's make sure it makes simple relative links ok.
 system("./dh_link","usr/bin/foo","usr/bin/bar");
-ok("foo",readlink("debian/debhelper/usr/bin/bar"));
+ok(readlink("debian/debhelper/usr/bin/bar"), "foo");
+system("./dh_link","sbin/foo","sbin/bar");
+ok(readlink("debian/debhelper/sbin/bar"), "foo");
 
 # ok, more complex relative links.
 system("./dh_link","usr/lib/1","usr/bin/2");
-ok("../lib/1",readlink("debian/debhelper/usr/bin/2"));
+ok(readlink("debian/debhelper/usr/bin/2"),"../lib/1");
+
+# Check conversion of relative symlink to different top-level directory
+# into absolute symlink. (#244157)
+system("mkdir -p debian/debhelper/usr/lib; mkdir -p debian/debhelper/lib; touch debian/debhelper/lib/libm.so; cd debian/debhelper/usr/lib; ln -sf ../../lib/libm.so");
+system("./dh_link");
+ok(readlink("debian/debhelper/usr/lib/libm.so"), "/lib/libm.so");
+
+# Check links to the current directory and below, they used to be
+# unnecessarily long (#346405).
+system("./dh_link","usr/lib/geant4","usr/lib/geant4/a");
+ok(readlink("debian/debhelper/usr/lib/geant4/a"), ".");
+system("./dh_link","usr/lib","usr/lib/geant4/b");
+ok(readlink("debian/debhelper/usr/lib/geant4/b"), "..");
+system("./dh_link","usr","usr/lib/geant4/c");
+ok(readlink("debian/debhelper/usr/lib/geant4/c"), "../..");
+system("./dh_link","/","usr/lib/geant4/d");
+ok(readlink("debian/debhelper/usr/lib/geant4/d"), "/");
+
+# Make sure the link conversion didn't change any of the previously made
+# links.
+ok(readlink("debian/debhelper/usr/lib/bar"), "/etc/foo");
+ok(readlink("debian/debhelper/usr/bin/bar"), "foo");
+ok(readlink("debian/debhelper/usr/bin/2"),"../lib/1");