aboutsummaryrefslogtreecommitdiff
path: root/run_unittests.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2020-01-23 23:47:03 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2020-01-24 02:53:34 +0530
commite99e7424547f96d0e41416e13702a642a152f2fe (patch)
tree80a432923c46c2b587e7bfa87a256a50f6674622 /run_unittests.py
parenta78f90c3f8c6eb17d70b02636ebd2cb878cb3198 (diff)
downloadmeson-e99e7424547f96d0e41416e13702a642a152f2fe.zip
meson-e99e7424547f96d0e41416e13702a642a152f2fe.tar.gz
meson-e99e7424547f96d0e41416e13702a642a152f2fe.tar.bz2
summary: Ensure that output is deterministic
Use OrderedDict instead of dict() to ensure that the order is the same every time, and change the unit test to check for that.
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-xrun_unittests.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/run_unittests.py b/run_unittests.py
index d6d5208..9008f17 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -4219,13 +4219,20 @@ recommended as it is not supported on some platforms''')
A number: 1
yes: YES
no: NO
+
+ Subprojects
+ sub: YES
+ sub2: NO
''')
- # Dict ordering is not guaranteed and an exact string comparison randomly
- # fails on the CI because lines are reordered.
expected_lines = expected.split('\n')[1:]
out_start = out.find(expected_lines[0])
out_lines = out[out_start:].split('\n')[:len(expected_lines)]
- self.assertEqual(sorted(expected_lines), sorted(out_lines))
+ if sys.version_info < (3, 7, 0):
+ # Dictionary order is not stable in Python <3.7, so sort the lines
+ # while comparing
+ self.assertEqual(sorted(expected_lines), sorted(out_lines))
+ else:
+ self.assertEqual(expected_lines, out_lines)
class FailureTests(BasePlatformTests):