[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