def test_path_argument(self): # Absolute path p = PathArgument("/obj/foo", "/src", "/obj", "/src") self.assertEqual(p.relpath(), "foo") self.assertEqual(p.srcdir_path(), "/src/foo") self.assertEqual(p.objdir_path(), "/obj/foo") # Relative path within srcdir p = PathArgument("foo", "/src", "/obj", "/src") self.assertEqual(p.relpath(), "foo") self.assertEqual(p.srcdir_path(), "/src/foo") self.assertEqual(p.objdir_path(), "/obj/foo") # Relative path within subdirectory p = PathArgument("bar", "/src", "/obj", "/src/foo") self.assertEqual(p.relpath(), "foo/bar") self.assertEqual(p.srcdir_path(), "/src/foo/bar") self.assertEqual(p.objdir_path(), "/obj/foo/bar") # Relative path within objdir p = PathArgument("foo", "/src", "/obj", "/obj") self.assertEqual(p.relpath(), "foo") self.assertEqual(p.srcdir_path(), "/src/foo") self.assertEqual(p.objdir_path(), "/obj/foo") # "." path p = PathArgument(".", "/src", "/obj", "/src/foo") self.assertEqual(p.relpath(), "foo") self.assertEqual(p.srcdir_path(), "/src/foo") self.assertEqual(p.objdir_path(), "/obj/foo") # Nested src/obj directories p = PathArgument("bar", "/src", "/src/obj", "/src/obj/foo") self.assertEqual(p.relpath(), "foo/bar") self.assertEqual(p.srcdir_path(), "/src/foo/bar") self.assertEqual(p.objdir_path(), "/src/obj/foo/bar")