[Box Backup-commit] COMMIT r1643 - box/chris/general/test/bbackupd

boxbackup-dev at fluffy.co.uk boxbackup-dev at fluffy.co.uk
Wed May 9 11:36:13 BST 2007


Author: chris
Date: 2007-05-09 11:36:13 +0100 (Wed, 09 May 2007)
New Revision: 1643

Modified:
   box/chris/general/test/bbackupd/testbbackupd.cpp
Log:
Read-only restore test fix (merges [1627])


Modified: box/chris/general/test/bbackupd/testbbackupd.cpp
===================================================================
--- box/chris/general/test/bbackupd/testbbackupd.cpp	2007-05-09 10:34:20 UTC (rev 1642)
+++ box/chris/general/test/bbackupd/testbbackupd.cpp	2007-05-09 10:36:13 UTC (rev 1643)
@@ -1134,6 +1134,56 @@
 		if (!ServerIsAlive(bbackupd_pid)) return 1;
 		if (!ServerIsAlive(bbstored_pid)) return 1;
 
+
+		printf("\n==== Check that read-only directories and "
+			"their contents can be restored.\n");
+
+		{
+			#ifdef WIN32
+				TEST_THAT(::system("chmod 0555 testfiles/"
+					"TestDir1/x1") == 0);
+			#else
+				TEST_THAT(chmod("testfiles/TestDir1/x1",
+					0555) == 0);
+			#endif
+
+			wait_for_sync_end(); // too new
+			wait_for_sync_end(); // should be backed up now
+
+			compareReturnValue = ::system(BBACKUPQUERY " "
+				"-c testfiles/bbackupd.conf "
+				"-q \"compare -cEQ Test1 testfiles/TestDir1\" " 
+				"quit");
+			TEST_RETURN(compareReturnValue, 1);
+			TestRemoteProcessMemLeaks("bbackupquery.memleaks");
+
+			// check that we can restore it
+			compareReturnValue = ::system(BBACKUPQUERY " "
+				"-c testfiles/bbackupd.conf "
+				"-q \"restore Test1 testfiles/restore1\" "
+				"quit");
+			TEST_RETURN(compareReturnValue, 0);
+			TestRemoteProcessMemLeaks("bbackupquery.memleaks");
+
+			// check that it restored properly
+			compareReturnValue = ::system(BBACKUPQUERY " "
+				"-c testfiles/bbackupd.conf "
+				"-q \"compare -cEQ Test1 testfiles/restore1\" " 
+				"quit");
+			TEST_RETURN(compareReturnValue, 1);
+			TestRemoteProcessMemLeaks("bbackupquery.memleaks");
+
+			// put the permissions back to sensible values
+			#ifdef WIN32
+				TEST_THAT(::system("chmod 0755 testfiles/"
+					"TestDir1/x1") == 0);
+			#else
+				TEST_THAT(chmod("testfiles/TestDir1/x1",
+					0755) == 0);
+			#endif
+
+		}
+
 #ifdef WIN32
 		printf("\n==== Check that filenames in UTF-8 "
 			"can be backed up\n");
@@ -2268,6 +2318,15 @@
 				true /* print progress dots */) 
 				== Restore_Complete);
 
+			// Compare it
+			compareReturnValue = ::system(BBACKUPQUERY " -q "
+				"-c testfiles/bbackupd.conf "
+				"-l testfiles/query10.log "
+				"\"compare -cE Test1 testfiles/restore-Test1\" "
+				"quit");
+			TEST_RETURN(compareReturnValue, 1);
+			TestRemoteProcessMemLeaks("bbackupquery.memleaks");
+
 			// Make sure you can't restore a restored directory
 			TEST_THAT(BackupClientRestore(protocol, restoredirid, 
 				"testfiles/restore-Test1", 




More information about the Boxbackup-commit mailing list