]>
Commit | Line | Data |
---|---|---|
23b5cae1 MG |
1 | # Common tests for the RWLockPrinter and RWLockAttributesPrinter classes. |
2 | # | |
dff8da6b | 3 | # Copyright (C) 2016-2024 Free Software Foundation, Inc. |
23b5cae1 MG |
4 | # This file is part of the GNU C Library. |
5 | # | |
6 | # The GNU C Library is free software; you can redistribute it and/or | |
7 | # modify it under the terms of the GNU Lesser General Public | |
8 | # License as published by the Free Software Foundation; either | |
9 | # version 2.1 of the License, or (at your option) any later version. | |
10 | # | |
11 | # The GNU C Library is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | # Lesser General Public License for more details. | |
15 | # | |
16 | # You should have received a copy of the GNU Lesser General Public | |
17 | # License along with the GNU C Library; if not, see | |
5a82c748 | 18 | # <https://www.gnu.org/licenses/>. |
23b5cae1 MG |
19 | |
20 | import sys | |
21 | ||
22 | from test_printers_common import * | |
23 | ||
24 | test_source = sys.argv[1] | |
25 | test_bin = sys.argv[2] | |
26 | printer_files = sys.argv[3:] | |
27 | printer_names = ['global glibc-pthread-locks'] | |
28 | ||
29 | try: | |
30 | init_test(test_bin, printer_files, printer_names) | |
31 | go_to_main() | |
32 | ||
33 | check_debug_symbol('struct pthread_rwlockattr') | |
34 | ||
35 | rwlock_var = 'rwlock' | |
36 | rwlock_to_string = 'pthread_rwlock_t' | |
37 | ||
38 | attr_var = 'attr' | |
39 | attr_to_string = 'pthread_rwlockattr_t' | |
40 | ||
41 | break_at(test_source, 'Set kind') | |
42 | continue_cmd() # Go to test_setkind_np | |
43 | next_cmd(2) | |
44 | test_printer(rwlock_var, rwlock_to_string, {'Prefers': 'Readers'}) | |
45 | test_printer(attr_var, attr_to_string, {'Prefers': 'Readers'}) | |
46 | next_cmd(2) | |
47 | test_printer(rwlock_var, rwlock_to_string, {'Prefers': 'Writers'}) | |
48 | test_printer(attr_var, attr_to_string, {'Prefers': 'Writers'}) | |
cc25c8b4 TR |
49 | next_cmd(2) |
50 | test_printer(rwlock_var, rwlock_to_string, {'Prefers': 'Writers no recursive readers'}) | |
51 | test_printer(attr_var, attr_to_string, {'Prefers': 'Writers no recursive readers'}) | |
23b5cae1 MG |
52 | |
53 | break_at(test_source, 'Set shared') | |
54 | continue_cmd() # Go to test_setpshared | |
55 | next_cmd(2) | |
56 | test_printer(rwlock_var, rwlock_to_string, {'Shared': 'Yes'}) | |
57 | test_printer(attr_var, attr_to_string, {'Shared': 'Yes'}) | |
58 | next_cmd(2) | |
59 | test_printer(rwlock_var, rwlock_to_string, {'Shared': 'No'}) | |
60 | test_printer(attr_var, attr_to_string, {'Shared': 'No'}) | |
61 | ||
62 | continue_cmd() # Exit | |
63 | ||
64 | except (NoLineError, pexpect.TIMEOUT) as exception: | |
65 | print('Error: {0}'.format(exception)) | |
66 | result = FAIL | |
67 | ||
68 | except DebugError as exception: | |
69 | print(exception) | |
70 | result = UNSUPPORTED | |
71 | ||
72 | else: | |
73 | print('Test succeeded.') | |
74 | result = PASS | |
75 | ||
76 | exit(result) |