]> err.no Git - dpkg/commitdiff
Add non-regression tests for Dpkg::Path
authorRaphael Hertzog <hertzog@debian.org>
Thu, 13 Dec 2007 18:22:38 +0000 (19:22 +0100)
committerRaphael Hertzog <hertzog@debian.org>
Thu, 13 Dec 2007 18:22:38 +0000 (19:22 +0100)
ChangeLog
scripts/Makefile.am
scripts/t/500_Dpkg_Path.t [new file with mode: 0644]

index a01243094eebe8eb516500d864ee15c746accd60..e37452a8cf95895ec62a646a0d14167a9e71185b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-13  Raphael Hertzog  <hertzog@debian.org>
+
+       * scripts/t/500_Dpkg_Path.t, scripts/Makefile.am: Add new
+       non-regression tests for functions provided by the Dpkg::Path
+       module.
+
 2007-12-12  Guillem Jover  <guillem@debian.org>
 
        * scripts/dpkg-genchanges.pl: Fix typo (syserror() -> syserr()).
index 4a7ca23c091b1093237e694d4a578bdc7c70ecc7..f52457ed84e335b39b633d92855b780530a41d85 100644 (file)
@@ -68,7 +68,8 @@ EXTRA_DIST = \
        t/200_Dpkg_Shlibs/objdump.dbd-pg \
        t/200_Dpkg_Shlibs/objdump.ls \
        t/300_Dpkg_BuildOptions.t \
-       t/400_Dpkg_Deps.t
+       t/400_Dpkg_Deps.t \
+       t/500_Dpkg_Path.t
 
 CLEANFILES = \
        $(bin_SCRIPTS) $(sbin_SCRIPTS) $(changelog_SCRIPTS) \
diff --git a/scripts/t/500_Dpkg_Path.t b/scripts/t/500_Dpkg_Path.t
new file mode 100644 (file)
index 0000000..0d20edd
--- /dev/null
@@ -0,0 +1,45 @@
+# -*- mode: cperl;-*-
+
+use Test::More tests => 16;
+
+use strict;
+use warnings;
+
+use_ok('Dpkg::Path', 'canonpath', 'resolve_symlink',
+       'check_files_are_the_same', 'get_pkg_root_dir',
+       'guess_pkg_root_dir', 'relative_to_pkg_root');
+
+mkdir "t.tmp/a";
+mkdir "t.tmp/a/b";
+mkdir "t.tmp/a/b/c";
+mkdir "t.tmp/a/DEBIAN";
+mkdir "t.tmp/debian";
+mkdir "t.tmp/debian/a";
+mkdir "t.tmp/debian/a/b";
+mkdir "t.tmp/debian/a/b/c";
+symlink "a/b/c", "t.tmp/cbis";
+symlink "/this/does/not/exist", "t.tmp/tmp";
+symlink ".", "t.tmp/here";
+
+is(canonpath("t.tmp/./a///b/c"), "t.tmp/a/b/c", "canonpath basic test");
+is(canonpath("t.tmp/a/b/../../a/b/c"), "t.tmp/a/b/c", "canonpath and ..");
+is(canonpath("t.tmp/a/b/c/../../"), "t.tmp/a", "canonpath .. at end");
+is(canonpath("t.tmp/cbis/../"), "t.tmp/cbis/..", "canonpath .. after symlink");
+
+is(resolve_symlink("t.tmp/here/cbis"), "t.tmp/here/a/b/c", "resolve_symlink");
+is(resolve_symlink("t.tmp/tmp"), "/this/does/not/exist", "resolve_symlink absolute");
+is(resolve_symlink("t.tmp/here"), "t.tmp", "resolve_symlink .");
+
+ok(!check_files_are_the_same("t.tmp/here", "t.tmp"), "Symlink is not the same!");
+ok(check_files_are_the_same("t.tmp/here/a", "t.tmp/a"), "Same directory");
+
+is(get_pkg_root_dir("t.tmp/a/b/c"), "t.tmp/a", "get_pkg_root_dir");
+is(guess_pkg_root_dir("t.tmp/a/b/c"), "t.tmp/a", "guess_pkg_root_dir");
+is(relative_to_pkg_root("t.tmp/a/b/c"), "b/c", "relative_to_pkg_root");
+
+chdir("t.tmp");
+
+ok(!defined(get_pkg_root_dir("debian/a/b/c")), "get_pkg_root_dir undef");
+ok(!defined(relative_to_pkg_root("debian/a/b/c")), "relative_to_pkg_root");
+is(guess_pkg_root_dir("debian/a/b/c"), "debian/a", "guess_pkg_root_dir fallback");
+