From: Arvin Schnell Date: Fri, 20 May 2011 13:19:41 +0000 (+0200) Subject: - extended testsuite X-Git-Tag: v0.1.3~376 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=800e0dfebeadd13b92cce392b9fe71ee10e4f7b6;p=thirdparty%2Fsnapper.git - extended testsuite --- diff --git a/snapper/File.cc b/snapper/File.cc index 65866b52..68fccaf5 100644 --- a/snapper/File.cc +++ b/snapper/File.cc @@ -533,7 +533,13 @@ namespace snapper unlink(getAbsolutePath(LOC_SYSTEM).c_str()); string tmp; readlink(getAbsolutePath(LOC_PRE), tmp); - symlink(tmp, getAbsolutePath(LOC_SYSTEM)); + if (symlink(tmp, getAbsolutePath(LOC_SYSTEM)) != 0) + { + y2err("symlink failed path:" << getAbsolutePath(LOC_SYSTEM) << + " errno:" << errno); + error = true; + } + lchown(getAbsolutePath(LOC_SYSTEM).c_str(), fs.st_uid, fs.st_gid); } break; } } diff --git a/testsuite-real/.gitignore b/testsuite-real/.gitignore index c0e93592..1d27f187 100644 --- a/testsuite-real/.gitignore +++ b/testsuite-real/.gitignore @@ -4,6 +4,7 @@ permissions1 permissions2 owner1 owner2 +owner3 missing-directory1 error1 error2 diff --git a/testsuite-real/Makefile.am b/testsuite-real/Makefile.am index 2acf42fd..8afc780a 100644 --- a/testsuite-real/Makefile.am +++ b/testsuite-real/Makefile.am @@ -10,7 +10,7 @@ LDADD = ../snapper/libsnapper.la noinst_SCRIPTS = run-all -noinst_PROGRAMS = simple1 permissions1 permissions2 owner1 owner2 \ +noinst_PROGRAMS = simple1 permissions1 permissions2 owner1 owner2 owner3 \ missing-directory1 error1 error2 error3 error4 simple1_SOURCES = simple1.cc common.h common.cc @@ -20,6 +20,7 @@ permissions2_SOURCES = permissions2.cc common.h common.cc owner1_SOURCES = owner1.cc common.h common.cc owner2_SOURCES = owner2.cc common.h common.cc +owner3_SOURCES = owner3.cc common.h common.cc missing_directory1_SOURCES = missing-directory1.cc common.h common.cc diff --git a/testsuite-real/owner3.cc b/testsuite-real/owner3.cc new file mode 100644 index 00000000..1b1c8326 --- /dev/null +++ b/testsuite-real/owner3.cc @@ -0,0 +1,35 @@ + +#include +#include + +#include "common.h" + +using namespace std; + + +int +main() +{ + setup(); + + run_command("ln --symbolic test1 link"); + run_command("chown --no-dereference nobody link"); + + first_snapshot(); + + run_command("rm link"); + run_command("ln --symbolic test2 link"); + run_command("chown --no-dereference nobody link"); + + second_snapshot(); + + check_rollback_statistics(0, 1, 0); + + rollback(); + + check_rollback_errors(0, 0, 0); + + check_first(); + + exit(EXIT_SUCCESS); +} diff --git a/testsuite-real/run-all b/testsuite-real/run-all index 5514c5cb..805ef8e5 100755 --- a/testsuite-real/run-all +++ b/testsuite-real/run-all @@ -25,6 +25,7 @@ run permissions2 run owner1 run owner2 +run owner3 run missing-directory1