[buildd-tools-devel] [PATCH 11/17] [chroot] Protect set_run_setup_scripts

Jan-Marek Glogowski glogow at fbihome.de
Tue Jun 30 18:05:49 UTC 2009


---
 sbuild/sbuild-chroot.h             |    2 ++
 sbuild/sbuild-session.cc           |    4 ++--
 test/sbuild-chroot-block-device.cc |    7 +++++++
 test/sbuild-chroot-directory.cc    |    9 +++++++--
 test/sbuild-chroot-file.cc         |    7 +++++++
 test/sbuild-chroot-loopback.cc     |    7 +++++++
 test/sbuild-chroot-lvm-snapshot.cc |    7 +++++++
 test/sbuild-chroot-plain.cc        |    9 +++++++--
 test/sbuild-chroot.cc              |   10 ----------
 9 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/sbuild/sbuild-chroot.h b/sbuild/sbuild-chroot.h
index c9e7afc..e0a2431 100644
--- a/sbuild/sbuild-chroot.h
+++ b/sbuild/sbuild-chroot.h
@@ -373,6 +373,7 @@ namespace sbuild
     bool
     get_run_setup_scripts () const;
 
+protected:
     /**
      * Set whether chroot setup scripts will be run.
      *
@@ -382,6 +383,7 @@ namespace sbuild
     void
     set_run_setup_scripts (bool run_setup_scripts);
 
+public:
     /**
      * Get the script configuration file for the chroot.  This is a
      * filename, either relative to the configured pkgsysconfdir or an
diff --git a/sbuild/sbuild-session.cc b/sbuild/sbuild-session.cc
index 0cb96f5..8d46cc0 100644
--- a/sbuild/sbuild-session.cc
+++ b/sbuild/sbuild-session.cc
@@ -618,8 +618,8 @@ session::run_impl ()
 	     session id.  Only set for non-plain chroots which run
 	     setup scripts. */
 	  {
-	    chroot_plain *plain = dynamic_cast<chroot_plain *>(chroot.get());
-	    if (chroot->get_mount_location().empty() && plain == 0)
+	    if (chroot->get_mount_location().empty() 
+                && chroot->get_run_setup_scripts())
 	      {
 		log_debug(DEBUG_NOTICE) << "Setting mount location" << endl;
 		std::string location(std::string(SCHROOT_MOUNT_DIR) + "/" +
diff --git a/test/sbuild-chroot-block-device.cc b/test/sbuild-chroot-block-device.cc
index 1baa5fc..1fe6925 100644
--- a/test/sbuild-chroot-block-device.cc
+++ b/test/sbuild-chroot-block-device.cc
@@ -51,6 +51,7 @@ class test_chroot_block_device : public test_chroot_base<chroot_block_device>
   CPPUNIT_TEST(test_session_flags);
   CPPUNIT_TEST(test_print_details);
   CPPUNIT_TEST(test_print_config);
+  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -136,6 +137,12 @@ public:
     // TODO: Compare output.
     CPPUNIT_ASSERT(!os.str().empty());
   }
+
+  void test_run_setup_scripts()
+  {
+    CPPUNIT_ASSERT(chroot->get_run_setup_scripts());
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(test_chroot_block_device);
diff --git a/test/sbuild-chroot-directory.cc b/test/sbuild-chroot-directory.cc
index 970b060..8748256 100644
--- a/test/sbuild-chroot-directory.cc
+++ b/test/sbuild-chroot-directory.cc
@@ -51,6 +51,7 @@ class test_chroot_directory : public test_chroot_base<chroot_directory>
   CPPUNIT_TEST(test_session_flags);
   CPPUNIT_TEST(test_print_details);
   CPPUNIT_TEST(test_print_config);
+  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -70,14 +71,13 @@ public:
   {
     sbuild::chroot_directory *c = dynamic_cast<sbuild::chroot_directory *>(chroot.get());
     CPPUNIT_ASSERT(c);
-    chroot->set_run_setup_scripts(true);
     CPPUNIT_ASSERT(chroot->get_mount_location() == "/mnt/mount-location");
-    chroot->set_run_setup_scripts(false);
     c->set_directory("/mnt/mount-location/example");
     chroot->set_mount_location("/path");
     CPPUNIT_ASSERT(c->get_directory() == "/mnt/mount-location/example");
     CPPUNIT_ASSERT(chroot->get_path() == "/path");
     CPPUNIT_ASSERT(chroot->get_mount_location() == "/path");
+    CPPUNIT_ASSERT(chroot->get_run_setup_scripts());
   }
 
   void test_chroot_type()
@@ -149,6 +149,11 @@ public:
     CPPUNIT_ASSERT(!os.str().empty());
   }
 
+  void test_run_setup_scripts()
+  {
+    CPPUNIT_ASSERT(chroot->get_run_setup_scripts());
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(test_chroot_directory);
diff --git a/test/sbuild-chroot-file.cc b/test/sbuild-chroot-file.cc
index 815dc2a..095d8dc 100644
--- a/test/sbuild-chroot-file.cc
+++ b/test/sbuild-chroot-file.cc
@@ -50,6 +50,7 @@ class test_chroot_file : public test_chroot_base<chroot_file>
   CPPUNIT_TEST(test_session_flags);
   CPPUNIT_TEST(test_print_details);
   CPPUNIT_TEST(test_print_config);
+  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -121,6 +122,12 @@ public:
     // TODO: Compare output.
     CPPUNIT_ASSERT(!os.str().empty());
   }
+
+  void test_run_setup_scripts()
+  {
+    CPPUNIT_ASSERT(chroot->get_run_setup_scripts());
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(test_chroot_file);
diff --git a/test/sbuild-chroot-loopback.cc b/test/sbuild-chroot-loopback.cc
index 64e453f..a712ef2 100644
--- a/test/sbuild-chroot-loopback.cc
+++ b/test/sbuild-chroot-loopback.cc
@@ -57,6 +57,7 @@ class test_chroot_loopback : public test_chroot_base<chroot_loopback>
   CPPUNIT_TEST(test_session_flags);
   CPPUNIT_TEST(test_print_details);
   CPPUNIT_TEST(test_print_config);
+  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -163,6 +164,12 @@ public:
     // TODO: Compare output.
     CPPUNIT_ASSERT(!os.str().empty());
   }
+
+  void test_run_setup_scripts()
+  {
+    CPPUNIT_ASSERT(chroot->get_run_setup_scripts());
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(test_chroot_loopback);
diff --git a/test/sbuild-chroot-lvm-snapshot.cc b/test/sbuild-chroot-lvm-snapshot.cc
index 9d0c72c..b33b51d 100644
--- a/test/sbuild-chroot-lvm-snapshot.cc
+++ b/test/sbuild-chroot-lvm-snapshot.cc
@@ -52,6 +52,7 @@ class test_chroot_lvm_snapshot : public test_chroot_base<chroot_lvm_snapshot>
   CPPUNIT_TEST(test_session_flags);
   CPPUNIT_TEST(test_print_details);
   CPPUNIT_TEST(test_print_config);
+  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -144,6 +145,12 @@ public:
     // TODO: Compare output.
     CPPUNIT_ASSERT(!os.str().empty());
   }
+
+  void test_run_setup_scripts()
+  {
+    CPPUNIT_ASSERT(chroot->get_run_setup_scripts());
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(test_chroot_lvm_snapshot);
diff --git a/test/sbuild-chroot-plain.cc b/test/sbuild-chroot-plain.cc
index 746fb6c..396cd64 100644
--- a/test/sbuild-chroot-plain.cc
+++ b/test/sbuild-chroot-plain.cc
@@ -49,6 +49,7 @@ class test_chroot_plain : public test_chroot_base<chroot_plain>
   CPPUNIT_TEST(test_setup_env);
   CPPUNIT_TEST(test_print_details);
   CPPUNIT_TEST(test_print_config);
+  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -100,8 +101,6 @@ public:
   {
     CPPUNIT_ASSERT(chroot->get_session_flags() ==
 		   static_cast<sbuild::chroot::session_flags>(0));
-
-    chroot->set_run_setup_scripts(true);
     CPPUNIT_ASSERT(chroot->get_session_flags() ==
 		   sbuild::chroot::SESSION_NOFLAGS);
   }
@@ -123,6 +122,12 @@ public:
     // TODO: Compare output.
     CPPUNIT_ASSERT(!os.str().empty());
   }
+
+  void test_run_setup_scripts()
+  {
+    CPPUNIT_ASSERT(!chroot->get_run_setup_scripts());
+  }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(test_chroot_plain);
diff --git a/test/sbuild-chroot.cc b/test/sbuild-chroot.cc
index 111d9d0..3acce74 100644
--- a/test/sbuild-chroot.cc
+++ b/test/sbuild-chroot.cc
@@ -84,7 +84,6 @@ class test_chroot : public test_chroot_base<basic_chroot>
   CPPUNIT_TEST(test_aliases);
   CPPUNIT_TEST(test_environment_filter);
   CPPUNIT_TEST(test_active);
-  CPPUNIT_TEST(test_run_setup_scripts);
   CPPUNIT_TEST(test_chroot_type);
   CPPUNIT_TEST(test_setup_env);
   CPPUNIT_TEST(test_session_flags);
@@ -179,15 +178,6 @@ public:
     CPPUNIT_ASSERT(chroot->get_active() == false);
   }
 
-  void test_run_setup_scripts()
-  {
-    CPPUNIT_ASSERT(chroot->get_run_setup_scripts() == true);
-    chroot->set_run_setup_scripts(false);
-    CPPUNIT_ASSERT(chroot->get_run_setup_scripts() == false);
-    chroot->set_run_setup_scripts(true);
-    CPPUNIT_ASSERT(chroot->get_run_setup_scripts() == true);
-  }
-
   void test_chroot_type()
   {
     CPPUNIT_ASSERT(chroot->get_chroot_type() == "test");
-- 
1.6.3.2




More information about the Buildd-tools-devel mailing list