def test_objdir_clobber_older(self): """If CLOBBER in topobjdir is older, we clobber.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass dummy_path = os.path.join(c.topobjdir, 'foo') with open(dummy_path, 'a'): pass self.assertTrue(os.path.exists(dummy_path)) old_time = os.path.getmtime(c.src_clobber) - 60 os.utime(c.obj_clobber, (old_time, old_time)) self.assertTrue(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(os.getcwd(), True) self.assertTrue(required) self.assertTrue(performed) self.assertFalse(os.path.exists(dummy_path)) self.assertTrue(os.path.exists(c.obj_clobber)) self.assertGreaterEqual(os.path.getmtime(c.obj_clobber), os.path.getmtime(c.src_clobber))
def test_cwd_is_topobjdir(self): """If cwd is topobjdir, we can still clobber.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass dummy_file = os.path.join(c.topobjdir, 'dummy_file') with open(dummy_file, 'a'): pass dummy_dir = os.path.join(c.topobjdir, 'dummy_dir') os.mkdir(dummy_dir) self.assertTrue(os.path.exists(dummy_file)) self.assertTrue(os.path.isdir(dummy_dir)) old_time = os.path.getmtime(c.src_clobber) - 60 os.utime(c.obj_clobber, (old_time, old_time)) self.assertTrue(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(c.topobjdir, True) self.assertTrue(required) self.assertTrue(performed) self.assertFalse(os.path.exists(dummy_file)) self.assertFalse(os.path.exists(dummy_dir))
def test_objdir_clobber_older(self): """If CLOBBER in topobjdir is older, we clobber.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass dummy_path = os.path.join(c.topobjdir, 'foo') with open(dummy_path, 'a'): pass self.assertTrue(os.path.exists(dummy_path)) old_time = os.path.getmtime(c.src_clobber) - 60 os.utime(c.obj_clobber, (old_time, old_time)) self.assertTrue(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(os.getcwd(), False) self.assertTrue(required) self.assertFalse(performed) self.assertIn('Automatic clobbering has been disabled', reason) # Now let's actually do it. required, performed, reason = c.maybe_do_clobber(os.getcwd()) self.assertTrue(required) self.assertTrue(performed) self.assertFalse(os.path.exists(dummy_path)) self.assertTrue(os.path.exists(c.obj_clobber)) self.assertGreaterEqual(os.path.getmtime(c.obj_clobber), os.path.getmtime(c.src_clobber))
def test_objdir_is_srcdir(self): """If topobjdir is the topsrcdir, refuse to clobber.""" tmp = self.get_topsrcdir() c = Clobberer(tmp, tmp) self.assertFalse(c.clobber_needed())
def test_cwd_is_topobjdir(self): """If cwd is topobjdir, we can still clobber.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass dummy_file = os.path.join(c.topobjdir, 'dummy_file') with open(dummy_file, 'a'): pass dummy_dir = os.path.join(c.topobjdir, 'dummy_dir') os.mkdir(dummy_dir) self.assertTrue(os.path.exists(dummy_file)) self.assertTrue(os.path.isdir(dummy_dir)) old_time = os.path.getmtime(c.src_clobber) - 60 os.utime(c.obj_clobber, (old_time, old_time)) self.assertTrue(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(c.topobjdir) self.assertTrue(required) self.assertTrue(performed) self.assertFalse(os.path.exists(dummy_file)) self.assertFalse(os.path.exists(dummy_dir))
def test_objdir_clobber_newer(self): """If CLOBBER in topobjdir is newer, do nothing.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass required, performed, reason = c.maybe_do_clobber(os.getcwd(), True) self.assertFalse(required) self.assertFalse(performed) self.assertIsNone(reason)
def test_objdir_clobber_newer(self): """If CLOBBER in topobjdir is newer, do nothing.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass required, performed, reason = c.maybe_do_clobber(os.getcwd()) self.assertFalse(required) self.assertFalse(performed) self.assertIsNone(reason)
def test_objdir_no_clobber_file(self): """If CLOBBER does not exist in topobjdir, treat as empty.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) self.assertFalse(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(os.getcwd(), True) self.assertFalse(required) self.assertFalse(performed) self.assertIsNone(reason) self.assertTrue(os.path.exists(os.path.join(c.topobjdir, 'CLOBBER')))
def test_objdir_no_clobber_file(self): """If CLOBBER does not exist in topobjdir, treat as empty.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) self.assertFalse(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(os.getcwd()) self.assertFalse(required) self.assertFalse(performed) self.assertIsNone(reason) self.assertTrue(os.path.exists(os.path.join(c.topobjdir, 'CLOBBER')))
def test_no_objdir(self): """If topobjdir does not exist, no clobber is needed.""" tmp = os.path.join(self.get_tempdir(), 'topobjdir') self.assertFalse(os.path.exists(tmp)) c = Clobberer(self.get_topsrcdir(), tmp) self.assertFalse(c.clobber_needed()) required, performed, reason = c.maybe_do_clobber(os.getcwd(), True) self.assertFalse(required) self.assertFalse(performed) self.assertIsNone(reason) self.assertFalse(os.path.isdir(tmp)) self.assertFalse(os.path.exists(os.path.join(tmp, 'CLOBBER')))
def test_no_objdir(self): """If topobjdir does not exist, no clobber is needed.""" tmp = os.path.join(self.get_tempdir(), 'topobjdir') self.assertFalse(os.path.exists(tmp)) c = Clobberer(self.get_topsrcdir(), tmp) self.assertFalse(c.clobber_needed()) # Side-effect is topobjdir is created with CLOBBER file touched. required, performed, reason = c.maybe_do_clobber(os.getcwd()) self.assertFalse(required) self.assertFalse(performed) self.assertIsNone(reason) self.assertTrue(os.path.isdir(tmp)) self.assertTrue(os.path.exists(os.path.join(tmp, 'CLOBBER')))
def test_cwd_under_topobjdir(self): """If cwd is under topobjdir, we can't clobber.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass old_time = os.path.getmtime(c.src_clobber) - 60 os.utime(c.obj_clobber, (old_time, old_time)) d = os.path.join(c.topobjdir, 'dummy_dir') os.mkdir(d) required, performed, reason = c.maybe_do_clobber(d, True) self.assertTrue(required) self.assertFalse(performed) self.assertIn('Cannot clobber while the shell is inside', reason)
def test_cwd_under_topobjdir(self): """If cwd is under topobjdir, we can't clobber.""" c = Clobberer(self.get_topsrcdir(), self.get_tempdir()) with open(c.obj_clobber, 'a'): pass old_time = os.path.getmtime(c.src_clobber) - 60 os.utime(c.obj_clobber, (old_time, old_time)) d = os.path.join(c.topobjdir, 'dummy_dir') os.mkdir(d) required, performed, reason = c.maybe_do_clobber(d) self.assertTrue(required) self.assertFalse(performed) self.assertIn('Cannot clobber while the shell is inside', reason)