From 202d8d84a1549eb8eeff0739acfd7c9d15980db5 Mon Sep 17 00:00:00 2001 From: "Hongli Lai (Phusion)" Date: Tue, 17 Mar 2009 19:55:52 +0100 Subject: [PATCH] Fix some distribution problems. --- Rakefile | 2 +- test/UtilsTest.cpp | 16 +++++++++--- test/stub/symlinks/absolute_symlink | 1 - test/stub/symlinks/file | 1 - test/stub/symlinks/file2 | 1 - test/stub/symlinks/file3 | 1 - test/stub/symlinks/foo.txt | 0 test/support/Support.h | 40 +++++++++++++++++++++++++++++ 8 files changed, 53 insertions(+), 9 deletions(-) delete mode 120000 test/stub/symlinks/absolute_symlink delete mode 120000 test/stub/symlinks/file delete mode 120000 test/stub/symlinks/file2 delete mode 120000 test/stub/symlinks/file3 delete mode 100644 test/stub/symlinks/foo.txt create mode 100644 test/support/Support.h diff --git a/Rakefile b/Rakefile index 907a410757..9da096e4f0 100644 --- a/Rakefile +++ b/Rakefile @@ -432,7 +432,7 @@ Rake::RDocTask.new(:clobber_rdoc => "rdoc:clobber", :rerdoc => "rdoc:force") do rd.rdoc_files.include("README", "DEVELOPERS.TXT", "lib/phusion_passenger/*.rb", "lib/phusion_passenger/*/*.rb", - "lib/rake/extensions.rb", + "misc/rake/extensions.rb", "ext/phusion_passenger/*.c") rd.template = "./doc/template/horo" rd.title = "Passenger Ruby API" diff --git a/test/UtilsTest.cpp b/test/UtilsTest.cpp index dc9367bc38..e095ddf220 100644 --- a/test/UtilsTest.cpp +++ b/test/UtilsTest.cpp @@ -1,5 +1,6 @@ #include "tut.h" #include "Utils.h" +#include "support/Support.h" #include #include #include @@ -9,6 +10,7 @@ using namespace Passenger; using namespace std; +using namespace Test; namespace tut { struct UtilsTest { @@ -254,9 +256,15 @@ namespace tut { /***** Test resolveSymlink() *****/ TEST_METHOD(27) { - ensure_equals(resolveSymlink("stub/symlinks/file"), "stub/symlinks/foo.txt"); - ensure_equals(resolveSymlink("stub/symlinks/file2"), "stub/symlinks/file"); - ensure_equals(resolveSymlink("stub/symlinks/file3"), "stub/symlinks/file2"); - ensure_equals(resolveSymlink("stub/symlinks/absolute_symlink"), "/foo/bar"); + TempDir d("tmp.symlinks"); + system("touch tmp.symlinks/foo.txt"); + system("ln -s /usr/bin tmp.symlinks/absolute_symlink"); + system("ln -s foo.txt tmp.symlinks/file"); + system("ln -s file tmp.symlinks/file2"); + system("ln -s file2 tmp.symlinks/file3"); + ensure_equals(resolveSymlink("tmp.symlinks/file"), "tmp.symlinks/foo.txt"); + ensure_equals(resolveSymlink("tmp.symlinks/file2"), "tmp.symlinks/file"); + ensure_equals(resolveSymlink("tmp.symlinks/file3"), "tmp.symlinks/file2"); + ensure_equals(resolveSymlink("tmp.symlinks/absolute_symlink"), "/usr/bin"); } } diff --git a/test/stub/symlinks/absolute_symlink b/test/stub/symlinks/absolute_symlink deleted file mode 120000 index b638d5e32c..0000000000 --- a/test/stub/symlinks/absolute_symlink +++ /dev/null @@ -1 +0,0 @@ -/foo/bar \ No newline at end of file diff --git a/test/stub/symlinks/file b/test/stub/symlinks/file deleted file mode 120000 index 996f1789ff..0000000000 --- a/test/stub/symlinks/file +++ /dev/null @@ -1 +0,0 @@ -foo.txt \ No newline at end of file diff --git a/test/stub/symlinks/file2 b/test/stub/symlinks/file2 deleted file mode 120000 index 1a010b1c0f..0000000000 --- a/test/stub/symlinks/file2 +++ /dev/null @@ -1 +0,0 @@ -file \ No newline at end of file diff --git a/test/stub/symlinks/file3 b/test/stub/symlinks/file3 deleted file mode 120000 index 30d67d4672..0000000000 --- a/test/stub/symlinks/file3 +++ /dev/null @@ -1 +0,0 @@ -file2 \ No newline at end of file diff --git a/test/stub/symlinks/foo.txt b/test/stub/symlinks/foo.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/support/Support.h b/test/support/Support.h new file mode 100644 index 0000000000..34ebe66bca --- /dev/null +++ b/test/support/Support.h @@ -0,0 +1,40 @@ +#ifndef _TEST_SUPPORT_H_ +#define _TEST_SUPPORT_H_ + +#include +#include +#include +#include +#include +#include +#include + +namespace Test { + +using namespace std; + +class TempDir { +private: + string name; +public: + TempDir(const string &name) { + this->name = name; + if (mkdir(name.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) != 0) { + int e = errno; + cerr << "Cannot create directory '" << name << "': " << + strerror(e) <<" (" << e << ")" << endl; + throw exception(); + } + } + + ~TempDir() { + string command("rm -rf \""); + command.append(name); + command.append("\""); + system(command.c_str()); + } +}; + +} // namespace Test + +#endif /* _TEST_SUPPORT_H_ */