summaryrefslogtreecommitdiffstats
path: root/misc/output_test.py
diff options
context:
space:
mode:
authorvon Heydebrand Julian <j.heydebrand@de.ccv.eu>2024-03-13 15:21:22 (GMT)
committervon Heydebrand Julian <j.heydebrand@de.ccv.eu>2024-03-21 08:17:28 (GMT)
commit878aa468d144d854005a6d4f0c7785a5185f0bf9 (patch)
treebe43c707969567078eca6336e38272b0bf7b6ac8 /misc/output_test.py
parent9279832b28f2a7be30245d503b2ba974c3487a48 (diff)
downloadNinja-878aa468d144d854005a6d4f0c7785a5185f0bf9.zip
Ninja-878aa468d144d854005a6d4f0c7785a5185f0bf9.tar.gz
Ninja-878aa468d144d854005a6d4f0c7785a5185f0bf9.tar.bz2
Gracefully handle outdated .ninja_log during '-t recompact'
When we explicitly unlink the file we should return LOAD_NOT_FOUND instead of LOAD_SUCCESS
Diffstat (limited to 'misc/output_test.py')
-rwxr-xr-xmisc/output_test.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/misc/output_test.py b/misc/output_test.py
index 78848cb..13b0926 100755
--- a/misc/output_test.py
+++ b/misc/output_test.py
@@ -127,6 +127,29 @@ build a: cat
self.assertEqual(run('', flags='-t recompact'), '')
self.assertEqual(run('', flags='-t restat'), '')
+ def test_issue_2048(self):
+ with tempfile.TemporaryDirectory() as d:
+ with open(os.path.join(d, 'build.ninja'), 'w'):
+ pass
+
+ with open(os.path.join(d, '.ninja_log'), 'w') as f:
+ f.write('# ninja log v4\n')
+
+ try:
+ output = subprocess.check_output([NINJA_PATH, '-t', 'recompact'],
+ cwd=d,
+ env=default_env,
+ stderr=subprocess.STDOUT,
+ text=True
+ )
+
+ self.assertEqual(
+ output.strip(),
+ "ninja: warning: build log version is too old; starting over"
+ )
+ except subprocess.CalledProcessError as err:
+ self.fail("non-zero exit code with: " + err.output)
+
def test_status(self):
self.assertEqual(run(''), 'ninja: no work to do.\n')
self.assertEqual(run('', pipe=True), 'ninja: no work to do.\n')