Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / tools / swarming_client / googletest / tests / gtest_fake / gtest_fake_crash_after_pass.py
1 #!/usr/bin/env python
2 # Copyright 2013 The Swarming Authors. All rights reserved.
3 # Use of this source code is governed under the Apache License, Version 2.0 that
4 # can be found in the LICENSE file.
5
6 """Simulate a crashing-after-pass google-test executable.
7
8 http://code.google.com/p/googletest/
9 """
10
11 import os
12 import sys
13
14 import gtest_fake_base
15
16
17 TESTS = {
18   'Foo': ['Bar1', 'Bar2'],
19 }
20
21
22 def main():
23   test_cases, args = gtest_fake_base.parse_args(TESTS, 1)
24   temp_dir = args[0]
25
26   result = 0
27   for test_case in test_cases:
28     filename = os.path.join(temp_dir, test_case)
29     # Fails on first run, succeeds on the second.
30     should_fail = not os.path.isfile(filename)
31     # But it still prints it succeeded.
32     print gtest_fake_base.get_test_output(test_case, False)
33     result = result or int(should_fail)
34     if should_fail:
35       with open(filename, 'wb') as f:
36         f.write('bang')
37   print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
38   if result:
39     print('OMG I crashed')
40     print('Here\'s a stack trace')
41   return result
42
43
44 if __name__ == '__main__':
45   sys.exit(main())