diff options
author | von Heydebrand Julian <j.heydebrand@de.ccv.eu> | 2024-03-13 15:21:22 (GMT) |
---|---|---|
committer | von Heydebrand Julian <j.heydebrand@de.ccv.eu> | 2024-03-21 08:17:28 (GMT) |
commit | 878aa468d144d854005a6d4f0c7785a5185f0bf9 (patch) | |
tree | be43c707969567078eca6336e38272b0bf7b6ac8 /misc/output_test.py | |
parent | 9279832b28f2a7be30245d503b2ba974c3487a48 (diff) | |
download | Ninja-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-x | misc/output_test.py | 23 |
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') |