]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: wait until the unit finishes before checking the log
authorFrantisek Sumsal <frantisek@sumsal.cz>
Fri, 30 Sep 2022 07:31:47 +0000 (09:31 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 30 Sep 2022 09:47:09 +0000 (18:47 +0900)
Otherwise we might read an incomplete log and fail:

```
test_added_after (__main__.ExecutionResumeTest) ... FAIL
test_added_before (__main__.ExecutionResumeTest) ... ok
test_interleaved (__main__.ExecutionResumeTest) ... ok
test_issue_6533 (__main__.ExecutionResumeTest) ... ok
test_no_change (__main__.ExecutionResumeTest) ... ok
test_removal (__main__.ExecutionResumeTest) ... ok
test_swapped (__main__.ExecutionResumeTest) ... ok

======================================================================
FAIL: test_added_after (__main__.ExecutionResumeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/build/./test/test-exec-deserialization.py", line 152, in test_added_after
    self.check_output(expected_output)
  File "/build/./test/test-exec-deserialization.py", line 107, in check_output
    self.assertEqual(output, expected_output)
AssertionError: 'foo\n' != 'foo\nbar\n'
  foo
+ bar

----------------------------------------------------------------------
Ran 7 tests in 27.470s
```

test/test-exec-deserialization.py

index eea7ddc8b359cc17d6d873b3a1d7bb9108566d09..06a7d369f6e13bc5489340bbba77ddc2410790fa 100755 (executable)
@@ -101,6 +101,10 @@ class ExecutionResumeTest(unittest.TestCase):
 
     def check_output(self, expected_output):
         for _ in range(15):
+            # Wait until the unit finishes so we don't check an incomplete log
+            if subprocess.call(['systemctl', '-q', 'is-active', self.unit]) == 0:
+                continue
+
             try:
                 with open(self.output_file, 'r', encoding='utf-8') as log:
                     output = log.read()